Below are screenshots demonstrating key features and recent changes. Please ensure you add relevant screenshots for every pull request as per the Contributing Guidelines.
| Login Screen | All Routes Map Screen | Route Details Screen |
|---|---|---|
User authentication via phone number |
Overview of all user routes on the map |
Detailed view of a selected route |
Flutter Map Trip Planner is a mobile application that helps users plan, manage, and get reminders for their trips and routes. It integrates with Firebase for authentication and data storage, and uses local notifications to remind users about upcoming trips.
- User authentication via phone number (Firebase Auth)
- View, add, and manage multiple routes
- Route details with dates and locations
- Local notifications for upcoming trips
- Persistent user sessions and data storage (Firebase Firestore)
- Responsive UI with Material Design
- Overlay support for quick access (optional/experimental)
This project is structured to separate concerns between UI, state management, and backend integration. Here’s a high-level overview:
- lib/: Main source code for the Flutter app.
- models/: Data models (e.g.,
event.dart). - providers/: State management using Provider (e.g.,
event_provider.dart,route_provider.dart). - screens/: UI screens (e.g.,
all_routes.dart,login.dart,route_display_screen.dart). - widgets/: Reusable UI components (e.g.,
local_notifications.dart,route_table.dart).
- models/: Data models (e.g.,
- screenshots/: Screenshots for documentation and PRs.
- firebase_options.dart: Firebase configuration (auto-generated).
- pubspec.yaml: Project dependencies and assets.
- main.dart: Entry point, app initialization, notification logic, and route setup.
- firebase_options.dart: Firebase setup (do not edit manually).
- pubspec.yaml: Lists dependencies and assets.
- Frontend: Built with Flutter, using Provider for state management.
- Backend: Firebase Auth for authentication, Firestore for data storage.
- Notifications: Local notifications for reminders, with permission handling.
- Data Flow: User actions trigger provider updates, which update Firestore and UI. Notifications are scheduled based on route dates.
- User logs in → Auth state managed by Firebase Auth.
- Routes loaded from Firestore based on user ID.
- Providers manage app state and notify UI of changes.
- Notifications scheduled if a route is due today.
- Flutter SDK
- Dart SDK
- A Firebase project (with Auth and Firestore enabled)
- Android/iOS device or emulator
-
Clone the repository:
git clone https://github.com/yourusername/flutter-map-trip-planner.git cd flutter-map-trip-planner -
Install dependencies:
flutter pub get
-
Configure Firebase:
- Download your
google-services.json(Android) and/orGoogleService-Info.plist(iOS) from the Firebase Console. - Place them in the appropriate platform folders (
android/app/,ios/Runner/).
- Download your
-
Run the app:
flutter run
-
(Optional) Set up local notifications permissions:
- Grant notification permissions on your device/emulator when prompted.
- Add support for collaborative trip planning
- Integrate map-based route editing
- Improve offline support
- Add more notification customization
- Enhance UI/UX for accessibility
We welcome contributions! Please follow these steps:
-
Fork the repository and create your branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit:
- Ensure your code follows the existing style and conventions.
- Add or update tests if applicable.
-
Add relevant screenshots:
- Take screenshots showing your changes.
- Save them in the
screenshots/folder. - Name them clearly (e.g.,
feature-login.png,fix-navbar-bug.png).
-
Update the Screenshots section in the README:
- Add your new screenshots to the table with appropriate captions/context.
-
Open a pull request:
- Describe your changes and reference any related issues.
- Ensure your PR includes the updated screenshots.
-
Wait for review and feedback.
See Contributing Guidelines above for detailed instructions.
This project is licensed under the GNU Affero General Public License v3.0.
| Phone Number | OTP |
|---|---|
| +91 12345 67890 | 111111 |
| +91 98765 43210 | 111111 |
- Copy .env.example file as .env
- If you need GOOGLE_PLACES_API_KEY or GRAPHHOPPER_API_KEY message author in whatsapp
dart run build_runner build
- https://developers.google.com/android/guides/client-auth
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
- send your SHA1 key in whatsapp to repo author to add your device to company firebase account for debugging.


