
Project
NovaDrive
About the Project
NovaDrive is the backend for a fictional autonomous robotaxi company. Passengers book and pay for rides, administrators manage the fleet, and every vehicle continuously reports its position, battery level and sensor data to the cloud. I designed and built the whole system on my own as the final project for the Back-End Development course.
Core Features
- Three APIs, each used where it fits best: REST for everyday operations, GraphQL for the dashboard's nested data and gRPC for high-frequency vehicle telemetry.
- Two databases: PostgreSQL for relational data such as passengers, rides and payments, and MongoDB for the large stream of telemetry and sensor diagnostics.
- Security: JWT authentication with admin and passenger roles, ASP.NET Core Identity, API keys for vehicles and rate limiting on login and registration.
- Dynamic pricing engine: distance and time, vehicle type, night rate, loyalty points, discount codes and VAT, with a minimum fare.
- PDF invoices generated on the server and sent to the passenger.
- A Next.js dashboard with a live map and charts for administrators, and a passenger app to book rides and view invoices.
How I Built This
I structured the API in layers: endpoints, services with the business logic, and repositories for data access, with validation and DTO mapping in between. A separate simulator application acts as a fleet of driving vehicles and streams telemetry to the API over gRPC, so the dashboard shows realistic live data.
Result
The whole platform starts with a single Docker Compose command. 37 automated tests cover the pricing engine, the ride logic and the main endpoints, with integration tests running against real PostgreSQL and MongoDB containers. A GitHub Actions pipeline builds, tests and publishes a Docker image on every push.
What I Learned
Choosing the right protocol and database for each kind of data, securing an API with roles and API keys, and writing tests that give real confidence before deploying.