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 …