A mobile-first, open-source fuel tracking app for your vehicles. Log refuels, monitor consumption, track expenses, and stay on top of maintenance deadlines — all in one place.
Built as a Progressive Web App (PWA) so it works offline and can be installed on any device.
- Fuel log — record refuels with date, fuel type, liters, price, and odometer
- Dashboard — monthly spend, average consumption, and a quick overview at a glance
- History — timeline of all refuels grouped by week or month
- Statistics — charts and trends for spend and consumption over time
- Deadlines — track insurance, road tax, MOT, oil changes, and any custom reminders
- Multi-vehicle — manage multiple vehicles from one account
- Dark / Light theme — respects system preference, switchable at any time
- PWA — installable, works offline with a Service Worker cache
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript 5 |
| UI | React 19 |
| Database ORM | Prisma 7 |
| Database | PostgreSQL |
| Styling | CSS Modules + CSS custom properties |
| PWA | Next.js native PWA (Service Worker) |
git clone https://github.com/your-username/carburapp.git
cd carburapp
pnpm installCreate a .env file in the project root:
DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE"# Apply the schema and generate the Prisma client
pnpm exec prisma migrate dev --name initpnpm devOpen http://localhost:3000 in your browser.
| Command | Description |
|---|---|
pnpm dev |
Start the development server (Turbopack) |
pnpm build |
Build for production |
pnpm start |
Start the production server |
pnpm exec prisma studio |
Open Prisma Studio to inspect the database |
carburapp/
├── app/ # Next.js App Router (pages, API routes, layout)
│ ├── api/ # REST API endpoints (vehicles, refuels, dashboard)
│ ├── layout.tsx # Root layout with theme provider
│ └── page.tsx # Entry point
├── components/ # Shared UI components
│ └── screens/ # Full-screen views (Dashboard, History, Stats, Deadlines)
├── contexts/ # React contexts (ThemeContext)
├── lib/ # Shared utilities and TypeScript types
├── prisma/ # Database schema and migrations
├── public/ # Static assets and Service Worker
└── docs/ # Design references and project background
Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request.
This project is licensed under the MIT License.
