- My Task is to build two apps ... Client app and a driver app.
- I created the features as Flutter packages to be reusable in any project.
- I used Melos to handle the mono repo logic and implement two apps in the same repo.
- I used Open Map Street API to get the location and details I needed to store.
- I used Firebase Firestore to store the data.
- I separate the login logic if the user is a client or a driver.
- I used cloud functions to handle the logic of sending a notification when doing a specific action in both apps.
- I used a mix of Firebase messaging and Flutter local notification to implement the notification logic in the app.
- Allow the client and driver to have a chat with each other.
- I used easy localization to change the locale of the app.
- Free & Open Source
- Very Easy to use
- Amazing UI
- Validation
- Firebase Authentication (Login, Register & Logout)
- Email & Password(Sign-in & sign-up method)
- Firebase Firestore
- Search for location & get current Location.
- Bloc (State Mangement)
- Melos - To handle mono repos concept
- Cloud Functions
- Firebase Messaging
- Flutter Local Notifications.
- Flutter Packages.
- Easy Localization.
- Separate Notification Logic.
- Reflect the driver's and client's location as markers on the map.
- Refactor code.
- Finialize app.





















