Logo Lanfrica

Osama-SysEng/mawasilati-transport-os

Domaine:

mobilitynatural language processing

Type de record:

projectsoftware
Créateur:
Osa
Hôte:
National Intelligent Transport Super App — 7 modes + Arabic NLP + AI traffic prediction | Best Social Impact Egypt AI Conference ITIDA 2026 # Mawasilati Mawasilati is a multimodal transport platform for Egypt with: - FastAPI backend with real JWT authentication and PostgreSQL persistence - PostgreSQL schema managed with Alembic migrations - Flutter mobile app with state management, secure token storage, live location, and real-time trip tracking - AI trip parsing and planning foundation - Driver heatmap and real-time location tracking over WebSocket ## What is included - Authentication: register/login with hashed passwords (bcrypt) and real JWT access tokens - Trip planning, booking, tracking, and history — all persisted to PostgreSQL - Route search and realtime data endpoints - Payment initiate/confirm/history flow — persisted to PostgreSQL (gateway integration still mocked, see Notes) - AI chat and trip parsing endpoints, with conversations saved to the database - Driver location updates (persisted) and a `/ws/trip/{trip_id}` WebSocket for live tracking - Docker Compose for local Postgres/Redis - Alembic migrations + pytest test suite (SQLite in-memory) wired into CI ## Quick start ### Backend ```bash cd backend python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt cp ../.env.example ../.env # then edit values uvicorn app.main:app --reload ``` In development (`ENVIRONMENT=development`, the default), tables are created automatically on startup. For anything beyond local hacking, use Alembic instead — see `database/README.md`. Run the test suite: ```bash cd backend python -m pytest ``` ### Frontend ```bash cd frontend flutter pub get flutter run ``` Set the API/WebSocket base URLs for your environment in `lib/core/constants/app_constants.dart` (defaults point at `localhost`). ### Local infrastructure ```bash docker compose up -d postgres redis ``` ## Environment variables Copy `.env.example` to `.env` and fill in: - `DATABASE_URL`, `REDIS_URL`, `SECRET_KEY`, `ACCESS_TOKEN_EXPIRE_MINUTES`, `CORS_ORIGINS`, `ENVIRONMENT` - `GOOGLE_MAPS_API_KEY` — needed …