Personal decision-support desktop app for researching, comparing, scoring, and shortlisting vehicles for purchase. Local-first JSON persistence — no cloud, no database.
- Java 21 or later
- Maven 3.9+
# Compile
mvn compile
# Run tests
mvn test
# Run from source
mvn exec:java -Dexec.mainClass="za.driver.Application"
# Build runnable fat JAR
mvn package
java -jar target/driver-1.1.jarOn first run, Driver creates a data/ directory in the current working directory (gitignored):
data/vehicles/{uuid}.json— vehicle recordsdata/profiles/{uuid}.json— scoring profiles (metric weights and aggregate composition)data/app-config.json— active scoring profile iddata/garage-config.json— garage dimensions for clearance checks
Back up data/ to preserve your research. Run the JAR from a directory where you want data/ to live.
- Import vehicles from JSON or CSV; export fleet to CSV
- Export selected vehicles to an offline Reveal.js marketing presentation (File → Export Presentation…)
- Filter and sort by price, body type, fuel type, scores, and garage clearance
- Multiple scoring profiles with toolbar selector; create, duplicate, edit, and delete via Config → Manage Profiles…
- Configurable top metrics, aggregate name/weight, and aggregate composition per profile
- Star ratings and scatter plot for fleet comparison
- Freeform notes per vehicle
| Document | Purpose |
|---|---|
| docs/design_spec.md | Functional requirements and architecture |
| docs/data_dictionary.md | Entity fields, enums, import schema |
| docs/scoring_spec.md | Scoring formulae and weights |
| docs/backlog.md | Deferred features and future work |
| Asset | File | Usage |
|---|---|---|
| Logo | docs/logo.png | About dialog, documentation |
| Icon | docs/icon.png | Window and taskbar icon |
Branding files in docs/ are copied into the application JAR at build time.
Copyright (C) 2026 Alan McL
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See https://www.gnu.org/licenses/agpl-3.0.html.
