Skip to content

Repository files navigation

Kilomètre

A privacy-respecting Android app for tracking conduite accompagnée driving sessions.

License: AGPL-3.0 Platform: Android 11+ Kotlin Jetpack Compose Latest release Privacy: on-device

Status: Active development (0.3.1 — public beta, opened at 0.3.0; still pre-1.0). Phase 1 (session engine) and Phase 2 (route map) are complete; signing and integrity (Phase 3) are next.

What it is

Kilomètre is a logbook for the French AAC (apprentissage anticipé de la conduite) and conduite supervisée driving schemes. After completing instructor-led lessons, learners must drive a minimum number of kilometres with a parent or accompanying adult before taking the permit exam.

Since 2024, French learners are required to use Kopilote, a regulator-mandated digital livret that uploads driving data to the publisher's servers and shares it with the auto-école. The most visible alternative, Coach AAC, is published by an insurance group and requests always-on location for opaque automatic detection. Both produce data the user does not control and cannot meaningfully export. Kilomètre is a parallel personal record that does not replace either, but does what neither does: it stays on the phone.

The app, today:

  • Records GPS routes locally during driving sessions, with live distance and speed, pause/resume, and reliable foreground-service capture.
  • Shows each drive on a map with a gradient route line and a scrubbable drive replay.
  • Tracks progress toward the AAC goal, including the rendez-vous-pédagogique milestones.
  • Exports a session as GPX (share or save to a folder).
  • Works offline; the only network call is a user-initiated update check.

Planned (the full vision — see docs/ROADMAP.md):

  • Capture the accompagnateur's signature on the device at the end of each session.
  • Maintain a tamper-evident hash chain across sessions so the record is verifiably intact.
  • Auto-classify road type and fetch weather/day-night in the background when a network appears.
  • Export CSV and JSON, and an optionally-encrypted backup ZIP.

What it is not

  • Not a legal replacement for the paper livret d'apprentissage. The official booklet remains the document the examiner sees. Kilomètre is a parallel record for accuracy, backup, and progress visibility.
  • Not anti-cheat software. The integrity features make tampering visible to anyone reading the export. They do not prevent a determined user from editing their own data on their own device. That problem is not solvable on an open-source app and is not the intent.
  • Not a cloud service. All data lives on the user's phone. The user owns their data; nothing leaves the device unless the user explicitly exports it.

Status

Working Android app, tested on physical Android devices. GPS session recording, route map with gradient polyline, session list with thumbnails, progress tracker, AAC milestone reminders, and a full Settings screen with an in-app update check. Signed APKs are published via GitHub Releases and can be installed directly or through Obtainium.

See docs/ARCHITECTURE.md for the structure.

Distribution

  • Source: this repository (GitHub).
  • Mirror: Codeberg, added at v1.0.
  • Release channel for testers: GitHub APK releases.
  • Stable release: F-Droid, after v1.0 ships.

License

AGPL-3.0. See LICENSE. Anyone may read, modify, and redistribute this software. Modifications used to provide a service over a network must publish their source.

Contributing

This is a solo project until v1.0. After release, contributions are welcome. Before then, please open an issue rather than a pull request - the architecture is still being shaped.

Author

Built by melcodesdev. It began as a personal need for a driving-log tool that respects privacy, works offline, and produces data the user actually owns.

About

Privacy-respecting Android app for tracking French AAC conduite accompagnée driving sessions. Local-only, FOSS (AGPL-3.0).

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages