amjadlle/Busnap

A Flutter app that alerts you when you’re approaching your bus stop or destination.

Dart

1

8 commits

updated Sep 15, 2026

See the code

See what people are saying

SourceMessageScoreDate

Built an app that wakes you up before you miss your bus/train stop — now live on Play Store (r/SideProject)

I'm a daily commuter (calicut route) and I kept falling asleep on the bus and missing my stop. Cost me time and money more times than I'd like to admit. So I built busnap — set a trigger distance (5km, 2km, 1km) from your destination, and when you hit it, your phone vibrates and rings an alarm.…

1

Sep 23, 2026

README

Busnap

Busnap Logo

A smart, privacy-first proximity alarm Flutter app that wakes you up before reaching your bus stop.

Google Play APK Download MIT License


✨ Features

  • 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.

📱 Google Play Store

Get Busnap on Android directly from Google Play: 👉 Download on Google Play


📂 Project Structure

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

🚀 Getting Started with the Mobile App

flutter pub get
flutter run

Requires an Android device (Android 8.0+) or emulator with location services enabled.


🌐 Landing Page Website

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 dev

To build for Cloudflare Pages:

npm run build

🔐 Permissions Required

  • ACCESS_FINE_LOCATION — Precise GPS tracking during active journeys
  • ACCESS_BACKGROUND_LOCATION — Proximity tracking while the screen is locked
  • FOREGROUND_SERVICE — Persistent background tracking service
  • POST_NOTIFICATIONS — Proximity notifications (Android 13+)

🔒 Privacy Policy

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.


👨‍💻 Author

Amjad P A


📜 License

This project is open source and licensed under the MIT License.

android
android-app
android-application
bus
dart
flutter
flutter-app
gps
gps-tracking
ios
location-tracking
open-source
public-transport
travel-app

Contributors

amjadlle

8 commits

amjadlle/Busnap

A Flutter app that alerts you when you’re approaching your bus stop or destination.

Dart

1

8 commits

updated Sep 15, 2026

See the code

See what people are saying

SourceMessageScoreDate

Built an app that wakes you up before you miss your bus/train stop — now live on Play Store (r/SideProject)

I'm a daily commuter (calicut route) and I kept falling asleep on the bus and missing my stop. Cost me time and money more times than I'd like to admit. So I built busnap — set a trigger distance (5km, 2km, 1km) from your destination, and when you hit it, your phone vibrates and rings an alarm.…

1

Sep 23, 2026

README

Busnap

Busnap Logo

A smart, privacy-first proximity alarm Flutter app that wakes you up before reaching your bus stop.

Google Play APK Download MIT License


✨ Features

  • 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.

📱 Google Play Store

Get Busnap on Android directly from Google Play: 👉 Download on Google Play


📂 Project Structure

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

🚀 Getting Started with the Mobile App

flutter pub get
flutter run

Requires an Android device (Android 8.0+) or emulator with location services enabled.


🌐 Landing Page Website

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 dev

To build for Cloudflare Pages:

npm run build

🔐 Permissions Required

  • ACCESS_FINE_LOCATION — Precise GPS tracking during active journeys
  • ACCESS_BACKGROUND_LOCATION — Proximity tracking while the screen is locked
  • FOREGROUND_SERVICE — Persistent background tracking service
  • POST_NOTIFICATIONS — Proximity notifications (Android 13+)

🔒 Privacy Policy

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.


👨‍💻 Author

Amjad P A


📜 License

This project is open source and licensed under the MIT License.

android
android-app
android-application
bus
dart
flutter
flutter-app
gps
gps-tracking
ios
location-tracking
open-source
public-transport
travel-app

Contributors

amjadlle

8 commits

Languages

Dart

44.7%

Vue

43.0%

Kotlin

6.9%

HTML

1.9%

TypeScript

1.6%

CSS

1.4%