🚕 Real-Time GPS Tracking (Vehicles send location data continuously)
🚕 WebSockets for Instant Updates (No polling, low latency)
🚕 Historical Route Storage & Playback
🚕 Geofencing & Alerts (Triggers events when vehicles enter/exit zones)
🚕 Dashboard for Visualization
🚕 Scalable API for High Load (Thousands of concurrent vehicle updates)
🚕 Efficient Data Processing
- Receives location changes via REST/Websockets from vehicles.
- Data stored in PostgreSQL and PostGIS (for GeoSpatial data)
Tech Stack:
- Python 3.12
- FastAPI
- Pydantic
- For local development setup: use> requirements/local.txt
- For testing setup: use> requirements/testing.txt
- For production development setup: use> requirements/production.txt
-
Clone the repo.
-
Create virtual env and activate it.
python -m venv .venv
-
Create a .env file and add the following (at root):
ENV=local SQLALCHEMY_DATABASE_URI=postgresql+asyncpg://[username]:[password]@localhost:5432/[db name] DEBUG=True SECRET_KEY=mySecretkeY
-
If you are using VS code, there is config already provided. Press F5.
-
Else, use uvicorn
uvicorn app.main:app
Visit the url host:8001/docs and host:8001/redoc
There are CLI commands availaible for certain actions You can find them by:
python -m app.cli --help