A smart, privacy-first proximity alarm Flutter app that wakes you up before reaching your bus stop.
- Multi-Stage Progressive Alarms: Plays an alarm and triggers notifications at 5 km (heads-up), 2 km (preparation), and 1 km (wake-up) from your destination.
- 100% On-Device & Zero Tracking: No accounts, no ads, no telemetry, no backend tracking. GPS math stays strictly on your device.
- True Road Route Distances: Calculates turn-by-turn road route distances and accurate ETA using OpenStreetMap (Nominatim, Valhalla, OSRM).
- Battery-Optimized Background GPS: Uses native Foreground Services with distance throttling to keep battery drain well under 1%.
- Custom Wakeup Tones: Pick your favorite audio file (MP3, WAV, OGG, M4A) from your device storage.
Get Busnap on Android directly from Google Play: 👉 Download on Google Play
busnap/
├── lib/
│ ├── main.dart # App entry, theme
│ ├── home_page.dart # Main screen (search + journey)
│ ├── alarm_settings_screen.dart # Custom alarm sound picker
│ └── services/
│ ├── background_location_service.dart # Background GPS tracking
│ ├── connectivity_service.dart # Internet check + dialog
│ ├── distance_service.dart # OpenStreetMap routing services
│ └── place_search_service.dart # Nominatim place search
├── assets/
│ ├── alarm.mp3 # Default alarm sound
│ └── logo.png # App icon
└── website/ # Official Landing Page (Vue 3 + Vite)
├── src/ # Single File Components & Simulator
└── public/ # Website assets
flutter pub get
flutter runRequires an Android device (Android 8.0+) or emulator with location services enabled.
The official landing page is built with Vue 3 (Composition API), Vite, TypeScript, and Tailwind CSS in the website/ directory:
cd website
npm install
npm run devTo build for Cloudflare Pages:
npm run buildACCESS_FINE_LOCATION— Precise GPS tracking during active journeysACCESS_BACKGROUND_LOCATION— Proximity tracking while the screen is lockedFOREGROUND_SERVICE— Persistent background tracking servicePOST_NOTIFICATIONS— Proximity notifications (Android 13+)
Busnap does not collect, sell, or upload your location data. Recent destinations and alarm sound choices are stored locally on your device. During a journey, distance calculations are performed locally on your phone.
Amjad P A
- 🌐 Portfolio: amjad.mapki.in
- 🐙 GitHub: @amjadlle
- 💼 LinkedIn: in/amjadlle
- ✉️ Email: hire.amjad@gmail.com
This project is open source and licensed under the MIT License.
