WakeRide is a mobile application that functions as a location-aware alarm for commuters, allowing you to set a destination and receive an audible alert as you approach it. The app is perfect for those who tend to doze off during long journeys on buses, metros, or cabs :p
- Location-Based Alarms: Set your destination on the map, and the app will track your location to alert you when you are nearby.
- Live Location Tracking: OpenStreetMap to provide real-time location tracking on an interactive map.
- Customizable Ringtones: Choose from your device's native ringtones to personalise your arrival alert. This is handled through a native Android method channel.
- Multiple Transport Modes: The user interface is designed to accommodate different modes of transport, such as Bus/Metro and Cab/Auto Rickshaw.
- Framework: Flutter
- Language: Dart
- Mapping:
flutter_mapfor OpenStreetMap integration.flutter_map_location_markerfor displaying the user's location.
- Location Services:
locationpackage for tracking GPS data. - UI & Animations:
lottieandanimate_dofor animations. - Native Integration: A custom MethodChannel in
MainActivity.ktto access and play Android system ringtones.
To get a local copy up and running, follow these simple steps.
- Flutter SDK: Installation Guide
- An IDE like Android Studio or VS Code with Flutter plugins.
- A connected device or emulator.
-
Clone the repository:
git clone https://github.com/thisisselva18/WakeRide.git
-
Navigate to the project directory:
cd WakeRide -
Install dependencies:
flutter pub get
-
Run the application:
flutter run
Note: The application requires location permissions to function correctly. Please grant them when prompted.
The project is structured to separate concerns, making it easier to navigate and maintain.
lib/main.dart: The entry point for the Flutter application.lib/pages/: Contains all the main screens (widgets) of the app.home.dart: The main landing page with transport mode selection.openstreetmap.dart: The screen that displays the map, user location, and handles location tracking.bus_metro.dart&cab_auto.dart: UI pages for specific transport modes.ringtones.dart: The page for listing and selecting system ringtones.
android/app/src/main/kotlin/com/example/bus_app/MainActivity.kt: Native Android code responsible for fetching, playing, and stopping system ringtones via a method channel.assets/: Includes the Lottie JSON animation (Bell_anim.json) and custom fonts (Gilroy).pubspec.yaml: Defines project dependencies, assets, and custom fonts.