Обзор
An on-demand taxi service: passengers order rides from a mobile app, drivers take them, and dispatchers, accountants, HR and mechanics run the fleet behind it. The schema covers orders with status history and GPS track points, tariffs, payments and ratings, client coin wallets and promo codes, cars and handovers, shifts and attendance, and incidents.
Мой вклад
Team of five; 57 of 141 commits are mine.
- Mobile app-open flow: passwordless SMS sign-in, app version check with forced updates, and FCM token registration.
- Finance module, backend and dispatcher frontend: payments, coin transactions and revenue summaries.
- Fleet: car custody invariants enforced in the database, fleet history endpoints, and a first-in-first-out mobile car queue.
- Incidents: crew reports of defects and emergencies from the field, with a centralised media system and a Leaflet map picker.
- API messages in all three languages and a fully translated Swagger.
- Removed per-row queries from the promo-code and tariff endpoints; a re-runnable demo seed.
Архитектура
- Django + DRF with drf-spectacular; PostgreSQL with UUID keys and soft delete; drf-gis for geo fields.
- Django Channels on Daphne with Redis; Celery with celery-beat, monitored with Flower.
- SimpleJWT for the mobile clients, Unfold for the operator admin; React + Vite + shadcn/ui dispatcher panel.
- Docker Compose for the stack.