Bakı şəhərinin nəqliyyat şəbəkəsini real vaxt rejimində izləyən, proqnozlaşdıran və təhlil edən ağıllı mobillik platforması.
Urbanity — Bakı şəhərinin 14 müxtəlif nəqliyyat növünü (metro, avtobus, mikroavtobus, taksi, velosiped, piyada və s.) izləyən və 13 data provayderindən məlumat toplayan şəhər mobillik kəşfiyyat platformasıdır.
| Xüsusiyyət | Təsvir |
|---|---|
| 🗺️ İnteraktiv Xəritə | Leaflet əsaslı xəritə ilə transit şəbəkəsinin vizuallaşdırılması |
| 📊 İcmal Dashboard | Gündəlik səfər sayı, xəbərdarlıqlar və provayder sağlamlığı |
| 🚇 Transit Şəbəkəsi | Metro xətləri, avtobus marşrutları və stansiya əhatəsi |
| 🛣️ Multimodal Routing | Vaxt, xərc, emissiya və əlçatanlığa görə marşrut müqayisəsi |
| 📈 Tıxac Proqnozu | ML əsaslı tıxac proqnozları, etibarlılıq intervalları ilə |
| Data mənşəyi göstəricili aktiv xəbərdarlıqlar | |
| ♿ Bərabərlik Təhlili | Rayon səviyyəsində əlçatanlıq və bərabərlik indeksləri |
| 🛰️ Peyk Müşahidəsi | Sentinel-2 peyk verilənləri ilə ekoloji kontekst |
| 🔍 Provayder Mənşəyi | Bütün data provayderləri və onların etibarlılıq statusu |
| 🌓 Light/Dark Tema | Landing page üçün açıq, dashboard üçün tünd tema |
Platformada 5 müxtəlif istifadəçi rolu mövcuddur:
- 👑 Executive / Jury — Strateji icmal, ən güclü sübut nöqtələri
- 🏛️ B2G / Public Sector — Dayanıqlılıq, bərabərlik, ictimai nəqliyyat
- 🖥️ B2B / Operator — Operativ dashboard, provayder sağlamlığı
- 📱 B2C / Rider — Səyahət planlaması, marşrut aydınlığı
- ⚙️ Technical / System — Provayderilər, API hazırlığı, sistem sağlamlığı
Urbanity/
├── backend/ # FastAPI Backend Server
│ ├── server.py # Əsas API serveri (bütün endpointlər)
│ ├── requirements.txt # Python asılılıqları
│ └── .env # Mühit dəyişənləri
│
├── frontend/ # React Frontend Tətbiqi
│ ├── src/
│ │ ├── App.js # Router və əsas tətbiq
│ │ ├── context/
│ │ │ └── AppContext.js # Qlobal state (tema, istifadəçi, rollar)
│ │ ├── components/
│ │ │ ├── Logo.jsx # Urbanity loqosu
│ │ │ ├── MapComponent.js # Leaflet xəritə komponenti
│ │ │ ├── ModeDetailPanel.js # Nəqliyyat növü detalları
│ │ │ └── ui/ # shadcn/ui komponentləri
│ │ └── pages/
│ │ ├── LandingPage.js # Ana səhifə (açıq tema)
│ │ ├── LoginPage.js # Giriş / Rol seçimi
│ │ ├── Dashboard.js # Dashboard layout (tünd tema)
│ │ └── dashboard/ # Dashboard alt-səhifələri
│ │ ├── Overview.js # İcmal (statistika, qrafiklər)
│ │ ├── TransitNetwork.js # Transit şəbəkəsi xəritəsi
│ │ ├── Routing.js # Multimodal marşrutlama
│ │ ├── Forecasting.js # Tıxac proqnozu
│ │ ├── Alerts.js # Xəbərdarlıqlar
│ │ ├── Equity.js # Bərabərlik təhlili
│ │ ├── EarthObservation.js # Peyk müşahidəsi
│ │ ├── Provenance.js # Provayder mənşəyi
│ │ └── DemoGuide.js # Demo bələdçi
│ ├── package.json # Node.js asılılıqları
│ ├── craco.config.js # CRACO konfiqurasiyası (path aliases)
│ ├── tailwind.config.js # TailwindCSS konfiqurasiyası
│ └── public/ # Statik fayllar
│
├── vercel.json # Vercel deployment konfiqurasiyası
├── design_guidelines.json # Dizayn qaydaları və rəng paletası
└── tests/ # Test faylları
| Texnologiya | Versiya | Məqsəd |
|---|---|---|
| React | 19.0 | UI framework |
| React Router | 7.5 | Səhifə naviqasiyası |
| TailwindCSS | 3.4 | Utility-first CSS |
| Framer Motion | 12.x | Animasiyalar |
| Recharts | 3.6 | Qrafiklər və diaqramlar |
| React Leaflet | 5.0 | İnteraktiv xəritə |
| Lucide React | 0.507 | İkon kitabxanası |
| shadcn/ui | — | UI komponent kitabxanası |
| Axios | 1.8 | API sorğuları |
| CRACO | 7.1 | CRA konfiqurasiyası |
| Texnologiya | Versiya | Məqsəd |
|---|---|---|
| FastAPI | 0.110 | REST API framework |
| Uvicorn | 0.25 | ASGI server |
| Motor | 3.3 | Async MongoDB driver |
| PyJWT | 2.10+ | JWT autentifikasiya |
| Pydantic | 2.6+ | Data validasiya |
| MongoDB | — | Verilənlər bazası |
Aşağıdakıların sisteminizdə quraşdırılmış olduğundan əmin olun:
- Node.js (v18+ tövsiyə olunur) — nodejs.org
- Python (v3.10+) — python.org
- MongoDB (opsional, demo data backend-də hardcoded-dir) — mongodb.com
- Git — git-scm.com
git clone <repo-url>
cd Urbanity# Virtual environment yaradın
cd backend
python -m venv .venv
# Virtual environment-i aktivləşdirin
# Windows:
.venv\Scripts\activate
# macOS/Linux:
# source .venv/bin/activate
# Asılılıqları quraşdırın
pip install -r requirements.txt
# .env faylını yoxlayın/düzəldin (lazım gələrsə)
# Standart olaraq aşağıdakı parametrlər var:
# MONGO_URL=mongodb://localhost:27017
# DB_NAME=urbanivity
# CORS_ORIGINS=http://localhost:3000
# SECRET_KEY=s0m3_s3cr3t_k3y_h3r3_f0r_jwt
# Serveri işə salın
uvicorn server:app --reload --host 0.0.0.0 --port 8000Backend http://localhost:8000 ünvanında işə düşəcək.
💡 Qeyd: MongoDB quraşdırılmamış olsa belə, backend işləyəcək — bütün demo data
server.pyfaylında hardcoded şəkildə mövcuddur. MongoDB yalnız istifadəçi məlumatlarının saxlanması üçün lazımdır.
# Yeni terminal açın
cd frontend
# Asılılıqları quraşdırın
npm install
# Development serverini işə salın
npm startFrontend http://localhost:3000 ünvanında açılacaq.
- Brauzerinizdə
http://localhost:3000ünvanına daxil olun - Landing Page açılacaq — platformanın xüsusiyyətləri ilə tanış olun
- "Explore Dashboard" düyməsinə basın və ya
/loginsəhifəsinə keçin - Adınızı, e-poçtunuzu daxil edin və istifadəçi rolunu seçin
- Dashboard-a yönləndirilirsiniz — sol panelden bölmələri araşdırın
Backend http://localhost:8000/api prefiksi altında işləyir.
| Metod | Endpoint | Təsvir |
|---|---|---|
| GET | /api/ |
API status yoxlanması |
| GET | /api/auth/roles |
Mövcud istifadəçi rollarını gətir |
| POST | /api/auth/login |
Daxil ol (ad, email, rol göndər) → JWT token al |
| Metod | Endpoint | Təsvir |
|---|---|---|
| GET | /api/dashboard/overview |
Dashboard icmal statistikası |
| GET | /api/mobility-modes |
14 nəqliyyat növü siyahısı |
| GET | /api/mobility-modes/{id}/detail |
Xüsusi nəqliyyat növü detalları |
| GET | /api/providers |
13 data provayderi siyahısı |
| GET | /api/transit/network |
Transit şəbəkəsi (xətlər, stansiyalar) |
| GET | /api/routing/demo |
Demo marşrut seçimləri |
| GET | /api/forecasting/congestion |
Tıxac proqnozu |
| GET | /api/alerts |
Xəbərdarlıqlar (filtr: ?status=active&severity=warning) |
| GET | /api/equity/districts |
Rayon bərabərlik verilənləri |
| GET | /api/earth-observation |
Peyk müşahidə verilənləri |
| GET | /api/demo/guide |
Demo bələdçi addımları |
| POST | /api/demo/reset |
Demo vəziyyəti sıfırla |
# Daxil ol və token al
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"name": "Test User", "email": "test@example.com", "role": "executive"}'
# Token ilə dashboard icmalını gətir
curl http://localhost:8000/api/dashboard/overview \
-H "Authorization: Bearer <your_token>"| Element | Detal |
|---|---|
| Şriftlər | Outfit (başlıqlar), Public Sans (mətn), JetBrains Mono (kod) |
| Əsas Rəng | Electric Blue #2563EB |
| Aksent Rəng | Flame Amber #F97316 (Bakı aksenti) |
| Landing Tema | Açıq (Light) — bg-slate-50 |
| Dashboard Tema | Tünd (Dark) — bg-[#0B0E14] |
| İkonlar | Lucide React (stroke-width=1.5) |
| Animasiyalar | Framer Motion |
Layihə Vercel-ə deploy olunmağa hazırdır:
# Vercel CLI ilə deploy:
npx vercel
# Və ya avtomatik deploy üçün GitHub repo-nu Vercel-ə bağlayınvercel.json artıq konfiqurasiya olunub:
- Build əmri:
cd frontend && npm run build - Output qovluğu:
frontend/build
⚠️ Qeyd: Vercel yalnız frontend-i deploy edir. Backend üçün ayrıca bir PaaS (Render, Railway, Fly.io) istifadə etməniz tövsiyə olunur.
# Backend testlərini işə sal
cd backend
python -m pytest ../backend_test.py -v
# Frontend testlərini işə sal
cd frontend
npm test| Fayl | Təsvir |
|---|---|
backend/server.py |
Bütün API endpointləri, demo data, autentifikasiya |
frontend/src/App.js |
Router, qorunan marşrutlar |
frontend/src/context/AppContext.js |
Qlobal state: tema, istifadəçi, rol, dark/light mode |
frontend/src/pages/LandingPage.js |
Ana səhifə — platformanın tanıtımı |
frontend/src/pages/LoginPage.js |
Giriş və rol seçimi |
frontend/src/pages/Dashboard.js |
Dashboard layout — sidebar, header, content |
frontend/src/components/MapComponent.js |
Leaflet xəritə (Bakı: 40.4093°N, 49.8671°E) |
design_guidelines.json |
Rəng paletası, tipografiya, komponent qaydaları |
Bu layihə hackathon məqsədləri üçün hazırlanmışdır.
Urbanity ilə Bakının nəqliyyat gələcəyini kəşf edin 🚀