HabitatX, Mars uzerinde kalici yerlesim planlamasi icin tasarlanmis bir karar destek ve simulasyon arayuzudur. Proje; uygun bolge secimi, gorev parametrelerinin tanimlanmasi, saha analizi, habitat plani, alternatif senaryolar ve AI destekli rapor olusturma adimlarini tek bir oturum akisi icinde birlestirir.
Bu depo iki ana parcadan olusur:
frontend: React + TypeScript + Vite ile gelistirilmis kontrol panelibackend: FastAPI + SQLAlchemy tabanli analiz, planlama ve raporlama servisi
HabitatX'in hedefi yalnizca gorsel bir demo sunmak degil; kullanici girdilerini tutarli bir planning session modeli etrafinda toplayip, bu girdilerden tekrar uretilebilir teknik ciktılar elde etmektir.
- Proje Ozeti
- Neler Sunar
- Kullanici Akisi
- Teknik Mimari
- Teknoloji Yigini
- Klasor Yapisi
- Kurulum
- Ortam Degiskenleri
- Calistirma Komutlari
- API Ozeti
- Domain Mantigi
- Test ve Dogrulama
- Gelisim Notlari
- Yol Haritasi
Mars'ta yasam icin dogru lokasyon secimi; radyasyon, toz, inis guvenligi, buz erisimi, enerji verimi, genisleme alani ve insa edilebilirlik gibi birden fazla metriğin birlikte degerlendirilmesini gerektirir. HabitatX bu problemi asagidaki katmanlara ayirir:
- Saha secimi
- Hizli gorev parametreleri
- Detayli mission brief
- Analiz motoru
- Sehir plani ve fazlama
- Senaryo karsilastirma
- AI destekli teknik rapor
Bu akisin tamami backend tarafinda session bazli saklanir. Boylece kullanici girdileri ekranlar arasinda kopmaz, yeniden analiz ve plan olusturma deterministik hale gelir, gelecekte export veya sunum entegrasyonlari daha kolay kurulur.
- Mars kure modeli uzerinden aday bolgelerin secimi
- Kutuplar ve yuksek enlem koridorlarina odakli saha katalogu
- Her bolge icin ozet arazi ve kaynak karakteristigi
- Ekip buyuklugu
- Gorev suresi
- Risk profili
- Gorev amaci
- Enerji stratejisi
- Su stratejisi
- Secili bolgeye gore uygunluk skoru
- Risk indeksi
- Genisleme skoru
- Lojistik skoru
- Turetilmis saha metrikleri
- Kritik kirmizi bayraklar
- Faz I / Faz II / Faz III sehir kurulum akisi
- Modul bazli oneriler
- Kapasite ve enerji yuku yorumlari
- Darbogazlar ve ust seviye tavsiyeler
- Korunakli plan
- Dengeli plan
- Agresif buyume plani
- Executive summary
- Technical summary
- Basliklandirilmis rapor bolumleri
- Sonraki adimlar listesi
- Sunum veya export icin kullanilabilecek yapilandirilmis payload
Uygulama arayuzu asagidaki sirada ilerler:
Kullanici secili Mars sahasini, ekip buyuklugunu, gorev suresini ve risk profilini belirler.
Detayli mission brief parametreleri tanimlanir:
- mission purpose
- energy strategy
- water strategy
- kapasite ve otonomi etkileri
Secili saha icin:
- analiz ozeti
- kaynak metrikleri
- risk ve lojistik yorumlari
- mission input'larina gore etki metrikleri
Backend plan motoru:
- fazlari olusturur
- modulleri secer
- top recommendations listesi uretir
- senaryolari karsilastirilabilir hale getirir
Session altinda biriken tum veri; yonetici ozeti, teknik ozet ve sonraki adimlar halinde raporlanir.
Sistem, tek dogruluk kaynagi olacak sekilde tasarlanmis bir planning session modeli etrafinda kurulur.
Frontend (React/Vite)
-> /regions
-> /planning-sessions
-> /planning-sessions/:id/quickstart
-> /planning-sessions/:id/mission-brief
-> /planning-sessions/:id/analyze-region
-> /planning-sessions/:id/generate-plan
-> /planning-sessions/:id/generate-scenarios
-> /planning-sessions/:id/generate-report
Backend (FastAPI)
-> API routers
-> domain services
-> engine katmanlari
-> SQLAlchemy models / SQLite persistence
- Kullanici deneyimi ve ekran akisi
- Session yasam dongusunu tetikleme
- Backend payload'larini UI modellerine map etme
- Senaryo, metrik ve rapor sonucunu gorsellestirme
- Oturum olusturma ve guncelleme
- Saha katalogu saglama
- Bolge analizi hesaplama
- Plan ve skor karti uretme
- Senaryo varyantlari olusturma
- AI rapor payload'i uretme
- React 18
- TypeScript
- Vite
- Three.js
@google/model-viewer
- FastAPI
- SQLAlchemy 2
- Pydantic 2
- Pytest
- SQLite
habitatx/
backend/
app/
api/
domains/
analysis/
planning/
regions/
reports/
scenarios/
scoring/
sessions/
config.py
db.py
main.py
tests/
requirements.txt
habitatx.db
marsmodeli/
src/
app/
components/
data/
features/
lib/
styles/
types/
.env.example
start-dev.ps1
package.json
vite.config.ts
src/app/state/useMissionPlanner.ts: frontend session orkestrasyonusrc/lib/api.ts: API istemcisibackend/app/main.py: FastAPI giris noktasibackend/app/api/planning_sessions.py: temel planning endpoint'leribackend/app/domains/analysis/: saha analiz motorubackend/app/domains/planning/: modul ve faz planlama motorubackend/app/domains/reports/: AI rapor payload olusturma katmani
- Node.js 18+
- npm 9+
- Python 3.11+
- Windows PowerShell veya benzeri bir terminal
git clone <repo-url>
cd habitatxcmd /c npm installcd backend
pip install -r requirements.txt
cd ..Kok dizinde .env dosyasi olusturun:
VITE_API_BASE_URL=http://127.0.0.1:8000Varsayilan API tabani src/lib/api.ts icinde yine ayni adrese dusmektedir; ancak net ve tasinabilir bir kurulum icin .env kullanmaniz onerilir.
HABITATX_APP_ENV=development
HABITATX_DATABASE_URL=sqlite:///./habitatx.db
HABITATX_CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000| Anahtar | Aciklama | Varsayilan |
|---|---|---|
HABITATX_APP_ENV |
uygulama ortami | development |
HABITATX_DATABASE_URL |
SQLAlchemy baglanti adresi | sqlite:///./habitatx.db |
HABITATX_CORS_ORIGINS |
izin verilen origin listesi | http://localhost:3000,http://127.0.0.1:3000 |
cd backend
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Saglik kontrolu:
http://127.0.0.1:8000/health
Beklenen cevap:
{
"status": "ok",
"environment": "development"
}cmd /c npm run devVarsayilan gelistirme adresi:
http://localhost:3000
Proje kokunde hazir gelen script:
cmd /c npm run dev:allBu komut:
- backend'i yeni bir PowerShell penceresinde baslatir
- frontend'i mevcut terminalde acik tutar
Alternatif olarak script dogrudan da cagrilabilir:
powershell -ExecutionPolicy Bypass -File .\start-dev.ps1cmd /c npm run buildNot: Bu komutun basarili olmasi icin once npm install calistirilmis olmalidir.
Tum aday bolgeleri listeler.
Ornek alanlar:
iddisplay_namesectorice_probabilitylanding_safetyconstruction_feasibility
Yeni bir oturum olusturur.
Ornek istek:
{
"selected_region_id": "arcadia_planitia",
"crew_size": 24,
"mission_duration_months": 48,
"risk_profile": "dengeli"
}Ana ekran parametrelerini gunceller:
- secili bolge
- ekip buyuklugu
- gorev suresi
- risk profili
Gelismis planlama alanlarini kaydeder:
mission_purposetarget_populationenergy_strategywater_strategyautonomy_levelrobot_countrisk_tolerancegrowth_target
Secili bolge icin yorumlanmis analiz uretir.
Asagidaki ciktilari uretir:
planscore_cardphasesmodules
Standart olarak 3 varyant dondurur:
- korunakli
- dengeli
- agresif buyume
Executive summary, technical summary ve yapilandirilmis rapor payload'i olusturur.
Frontend'in tum ekranlarini besleyen birlestirilmis payload'i dondurur:
- session
- quickstart
- mission_brief
- region
- analysis
- plan
- score_card
- scenarios
- report
Varsayilan sahalar:
planum_boreumarcadia_planitiadeuteronilus_mensae
Bu katalog uygulama ayaga kalktiginda veritabani bos ise otomatik seed edilir.
Bolge motoru, saha verisinden yorumlu skorlara gider:
site_suitability_scorerisk_indexexpansion_scorelogistics_score
Ayrica:
strengthsred_flagsderived_metricsanalysis_summary
gibi insan tarafindan okunabilir ciktılar da olusturulur.
Plan motoru mission brief + analiz sonucunu birlestirerek:
- uygun modulleri secer
- modulleri fazlara yerlestirir
- constraint ve bottleneck listesi uretir
score_cardhesaplar
Modul katalogunda ornek olarak su yapilar bulunur:
- Yasam Cekirdegi
- Yasam Destegi Yedegi
- ISRU Su Tesisi
- Enerji Omurgasi
- Regolit Kalkan Hatti
- Mobil Bakim Hangari
- Uretim Podu
- Tarim Halkasi
Ayni session icin farkli optimizasyon hedefleriyle alternatif plan varyantlari olusturulur.
Rapor katmani; session, mission brief, analysis, plan, score card ve scenario verilerini bir araya getirip yapilandirilmis bir rapor payload'ina donusturur. Bu yapi ileride:
- LLM entegrasyonu
- PDF export
- sunum olusturma
- jurilere yonelik otomatik ozetler
icin iyi bir temel saglar.
Bu depoda backend icin Pytest tabanli testler bulunur:
backend/tests/test_sessions.pybackend/tests/test_analysis.pybackend/tests/test_planning.py
Calistirmak icin:
cd backend
pytestKapsanan basliklar:
- session olusturma ve patch akisi
- analiz uretimi ve session status guncellemesi
- plan, senaryo ve rapor olusturma zinciri
cmd /c npm run buildEger tsc is not recognized benzeri bir hata aliyorsaniz, tipik neden frontend bagimliliklarinin henuz yuklenmemis olmasidir. Once cmd /c npm install calistirin.
Bu projenin en guclu yani, veri akisini ekran bazli degil oturum bazli kurgulamasidir. Bu sayede:
- autosave mantigi kurulabilir
- ekranlar arasi veri tutarliligi korunur
- ayni session tekrar yuklenebilir
- gelecek export isleri ayni payload ile calisabilir
Frontend acilista:
- bolge listesini ceker
- varsayilan session olusturur
- mission brief yazar
- analiz, plan, senaryo ve rapor endpoint'lerini tetikler
- donen envelope verisini UI state'e hydrate eder
Kullanici parametreleri degistirdiginde belirli bir debounce sonrasinda ayni zincir yeniden calistirilir.
Varsayilan veritabani SQLite'tir:
- gelistirme icin hizli
- demos ve hackathon akisi icin pratik
- kurulum esigini dusuk tutar
Ihtiyac halinde PostgreSQL'e gecis icin HABITATX_DATABASE_URL yeterli bir baslangic noktasi saglar.
Projeyi bir sonraki seviyeye tasimak icin mantikli gelisim adimlari:
- Gercek LLM entegrasyonu ile rapor katmanini zenginlestirmek
- Session gecmisi ve kayitli calisma ekranlari eklemek
- PDF / PPTX export ciktilari eklemek
- Gercek bilimsel veri setleriyle region seed katalogunu genisletmek
- Kimlik dogrulama ve ekip bazli ortak calisma akisi eklemek
- Asenkron job queue ile agir planlama islerini arka plana almak
- Gercek zamanli durum guncellemesi icin progress event sistemi kurmak
HabitatX, gorsel olarak etkileyici bir Mars kolonizasyon demosunun otesinde; karar destek mantigi, session bazli veri modeli ve fazli planlama kurgusuyla urunlestirilmeye uygun bir temel ortaya koyar. Bu depo; sunum, demo, teknik prototip ve ileride daha ciddi analiz pipeline'lari icin iyi bir baslangic noktasi sunar.