Cars Manager is a local-first vehicle companion for tracking fuel, maintenance, insurance, taxes, fines, repairs, deadlines, and ownership costs from one calm dashboard.
- Features
- Screenshots
- Architecture
- Getting Started
- Builds and Release
- Configuration
- Project Structure
- License
- Vehicle dashboard β active car hero, monthly summary, recent activity, quick actions, and upcoming deadlines.
- Garage management β add, edit, delete, and switch vehicles with image-led cards and status indicators.
- Vehicle detail pages β overview, fuel, expenses, and timeline tabs for each car.
- Fuel tracking β fuel entries, total spend, liters/kWh, average prices, and year-based charts.
- Expense tracking β insurance, inspection, tax, repair, and fine records with category-specific views.
- Reminders β local notifications for insurance, inspection, and tax due dates.
- Analytics β total cost overview, category breakdown, cost per car, monthly trend table, and CSV export.
- Search β global search across vehicles and tracked records.
- Settings β theme, language, units, currency, notification preferences, export, reset, and app info.
- Internationalisation β English and Italian UI through Flutter gen-l10n.
- Responsive layout β bottom navigation on mobile, navigation rail on tablet, sidebar on desktop.
- Cross-platform β Android, iOS, web, Windows, macOS, and Linux project targets.
| Dashboard | Garage | Analytics |
|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
βββββββββββββββββββββββ
β Flutter App β
β Material + Router β
ββββββββββ¬βββββββββββββ
β GoRouter routes
ββββββββββΌββββββββββ ββββββββββββββββββββββ
β Feature Screens β βββββΊ β Riverpod Providers β
β Home/Garage/etc.β β App state + logic β
ββββββββββ¬ββββββββββ βββββββββββ¬βββββββββββ
β β
ββββββββββΌββββββββββ βββββββββββΌβββββββββββ
β Shared UI System β β Local Persistence β
β Widgets + tokens β β JSON / localStorageβ
ββββββββββββββββββββ ββββββββββββββββββββββ
Cars Manager keeps the app local-first: vehicle data is stored on-device, while the UI is built around Riverpod state, GoRouter navigation, Freezed models, and shared design tokens.
| Tool | Version |
|---|---|
| Flutter | stable channel |
| Dart | bundled with Flutter |
| Node.js | >= 20, only for repository tooling |
| npm | >= 10, only for repository tooling |
git clone https://github.com/thisispivi/CarsManager.git
cd CarsManager
npm install
cd cars_manager
flutter pub get
flutter runFor web:
cd cars_manager
flutter run -d chrome# From repository root
npm run verify
npm run analyze
npm run test
npm run build:android
npm run build:web# From cars_manager/
flutter pub get
flutter gen-l10n
dart run build_runner build --delete-conflicting-outputs
flutter analyze
flutter testBuild release APKs split by device architecture:
cd cars_manager
flutter build apk --release --split-per-abiOutput files:
| ABI | APK |
|---|---|
| ARM 64-bit | build/app/outputs/flutter-apk/app-arm64-v8a-release.apk |
| ARM 32-bit | build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk |
| x86 64-bit | build/app/outputs/flutter-apk/app-x86_64-release.apk |
Build one universal APK instead:
cd cars_manager
flutter build apk --releaseUniversal APK output:
build/app/outputs/flutter-apk/app-release.apk
cd cars_manager
flutter build web --releaseOutput:
build/web/
The repository has a release workflow that runs tests, builds APKs, builds web, and publishes APK files to a GitHub Release when a version tag is pushed.
# 1. Update version in cars_manager/pubspec.yaml
# Example:
# version: 2.0.1+2
git add cars_manager/pubspec.yaml CHANGELOG.md
git commit -m "chore(release): v2.0.1"
git tag v2.0.1
git push origin main --tagsBeta tags are supported:
git tag v2.0.1-beta.1
git push origin main --tagsAfter the workflow finishes, download APKs from the GitHub Release page or from the workflow artifacts.
| File | Purpose |
|---|---|
cars_manager/pubspec.yaml |
Flutter dependencies, assets, version, package metadata |
cars_manager/flutter_launcher_icons.yaml |
Launcher icon generation settings |
cars_manager/flutter_native_splash.yaml |
Native splash screen generation settings |
cars_manager/l10n.yaml |
Localization generation settings |
cars_manager/assets/data/cars.json |
Seed/sample vehicle data |
cars_manager/lib/l10n/app_en.arb |
English strings |
cars_manager/lib/l10n/app_it.arb |
Italian strings |
Regenerate launcher icons:
cd cars_manager
dart run flutter_launcher_iconsRegenerate splash screens:
cd cars_manager
dart run flutter_native_splash:create --path=flutter_native_splash.yamlCarsManager/
βββ .github/
β βββ workflows/ # CI, release, and web deploy workflows
βββ cars_manager/
β βββ android/ # Android runner project
β βββ ios/ # iOS runner project
β βββ linux/ # Linux runner project
β βββ macos/ # macOS runner project
β βββ web/ # Web runner assets and manifest
β βββ windows/ # Windows runner project
β βββ assets/
β β βββ data/ # Seed data
β β βββ icons/ # App logo and SVG category icons
β βββ lib/
β β βββ app/ # App root, router, app-level state
β β βββ core/ # Theme, services, storage, utilities
β β βββ design_system/ # Shared atoms, molecules, charts, organisms
β β βββ features/ # Home, garage, analytics, settings, onboarding
β β βββ l10n/ # ARB files and generated localizations
β β βββ models/ # Domain models
β β βββ presentation/ # Shared presentation widgets and migrated pages
β β βββ main.dart # Application bootstrap
β βββ test/ # Unit and widget tests
β βββ integration_test/ # Integration smoke tests
βββ scripts/ # Repository helper scripts
βββ package.json # Root automation scripts
βββ README.md
MIT - Copyright (c) 2025 Andrea Piras





