A web application that helps drivers record fuel fill-ups and analyze consumption and costs over time.
Built as an MVP to demonstrate clean architecture, usability, and maintainability.
Goal: Provide individual drivers with a simple tool to:
- Record each fuel fill-up (station, fuel brand/grade, total paid, liters, odometer)
- Track history and calculate key efficiency metrics
- Compare consumption and costs by brand, period, or vehicle
Primary user: Individual driver (multi-car supported)
Assumptions:
- All fuel-ups are full fuel-ups
- Odometer values increase monotonically per vehicle
- Base units are metric (km, L, currency entered by user)
Out of scope: OCR, fleet management, trip logging, or tax reports
| Role | Capabilities |
|---|---|
| Anonymous | View landing page, sign up / sign in |
| Authenticated User | Full CRUD on their vehicles and fuel entries, view dashboards |
| Admin (future) | Developer-only tools, not included in MVP |
- Sign up / Sign in with email + password
- Password policy: 8+ chars, at least 1 letter + 1 number
- Session-based authentication (cookies)
- Fields: display name, currency, unit preferences, timezone
- Unit conversions at view time (data stored in metric)
- Add / edit / delete vehicles
- Fields: name, make/model, year, fuel type
- Add / edit / delete fill-ups
- Fields: date, odometer, station, brand, grade, liters, total, notes
- Validation: no negative or zero values, odometer > previous
- Distance since last fill-up
- Price per liter
- Efficiency: L/100km or MPG
- Cost per km/mi
- Rolling averages (30 days) and all-time stats
- Overview cards: avg. consumption, total spend, distance, cost per km
- Line charts: cost per liter and consumption over time
- Brand/grade comparison table
- Password hashing (strong one-way)
- HTTPS + Secure cookies
- User data isolation
- Pages render < 2s on broadband
- DB queries (≤5k entries) complete < 500ms
- GDPR: data export (CSV) & delete on request
- Supports latest Chrome (desktop + mobile)
| Layer | Technology |
|---|---|
| Frontend | ReactJS or Angular 2+, responsive design |
| Backend | Java (Spring Boot) / Node.js (NestJS) / .NET |
| Database | PostgreSQL |
| DevOps | Docker, docker-compose |
| Migrations | Liquibase (or equivalent) |
✅ All MVP screens implemented:
Landing, Sign Up/In, Dashboard, Vehicle Management, Fill-Up Form, History, Statistics, Settings, Legal, Error Page
✅ Core flows covered by integration tests
✅ Validation, performance & data isolation verified
✅ Runs after clean clone:
git clone <repo-url>
docker compose up