A premium, open-source, privacy-first Android application designed with Google's latest Material 3 (Material You) guidelines, optimized for Android 15. The application dynamically monitors and maps road conditions (potholes, speedbreakers, and swerves) using physics-based motion sensors while strictly preserving user privacy.
Unlike legacy road-tracking applications, Pothole Tracker is fully offline and privacy-respecting. It strictly excludes camera, microphone, and internet network access permissions, operating entirely on-device using physical motion dynamics:
- Linear Accelerometer (Z-Axis): Detects abrupt vertical displacements and impact forces (potholes, severe bumps).
- Gyroscope (Roll/Pitch/Yaw): Identifies vehicle rotational tilt to differentiate straight bumps from sharp turns/swerves.
- Barometer (Pressure Sensor): Tracks micro-level atmospheric air pressure fluctuations to capture rapid elevation hops (bumping up or dropping down).
-
GPS (Coarse/Fine Location): Logs precise coordinates (
$latitude, longitude$ ) and speed strictly locally at the exact millisecond an anomaly triggers.
The application features a modern, fluid user interface designed using Jetpack Compose and Material 3 design tokens:
- Live Wave Graph (Canvas): A real-time Compose
Canvasdrawing showing a fluid wave representing your phone's Z-axis vibrations. - Privacy Shield Guard: Explicit visual indicators confirming that camera/microphone permissions are excluded.
- Live Telemetry HUD: Cards indicating vehicle speed (km/h) and a running counter of mapped potholes.
- Scrolling Anomaly Log: Cards that dynamically color-code severity (Severe = Red, Medium = Orange, Low = Yellow) with precise speeds and timestamps.
- Language: Kotlin (
100%) - UI Framework: Jetpack Compose (Material 3)
- Architecture: Clean Architecture (MVI / MVVM pattern)
- SDK Target: Android 15 (API 36)
- Min SDK: API 24 (Android 7.0)
- System Tools: Android Sensor Manager, Location Service API
- Room Database Integration: Persist detected road anomalies locally so they remain visible across device restarts.
- Offline Maps Visualizer: Integrate OpenStreetMap or MapLibre for offline mapping, allowing users to view all their detected potholes directly on an interactive map locally without sending data to servers.
- Export Formats: Add local export capabilities for
.gpx,.kml, or.csvfiles so users can share their mapped roads with city planning departments.
-
TensorFlow Lite Integration: Replace static threshold triggers (
$Z > 4.5 \text{ m/s}^2$ ) with a lightweight, trained on-device Neural Network to dramatically reduce false positives (e.g. distinguishing a pothole from a standard expansion joint or rail track crossing). - Vehicle-Type Profiles: Calibrate sensor sensitivity based on vehicle types (Compact car, SUV, Motorcycle, Bicycle) since suspension systems impact sensor inputs differently.
- LocalSync / Syncthing API: Allow users to securely sync their local pothole databases directly to their private computers (using local Wi-Fi protocols, fully offline).
- Crowd-Sourced P2P Map: A decentralized, peer-to-peer mapping system where users can anonymously share road condition heatmaps without relying on centralized corporate cloud servers.
- Clone the repository:
git clone https://github.com/oldregime/PotholeTracker.git
- Open the project in Android Studio (Ladybug or newer).
- Connect your Android device (ensure USB/Wireless debugging is active).
- Hit Run / Compile to deploy!
This project is open-source and licensed under the MIT License.