Flutter application for tracking the delivery of your orders or delivering the orders to the customers. Main focus was on location tracking and exchanging location data between devices.
The main focus of this project was on location tracking and exchanging location data between devices. The application connects two users and enables the exchange of their current locations with one another. Main communication between devices is achieved with the help of Firebase services. Firebase stores the current location of the delivery every few seconds after it has started and shares it with it's customer whose ID is recorded in the order's information. Connecting with Firebase is done with the cloud_firestore package. Cloud_firestore makes accessing data from Firebase simple by using built in methods that provide Stream objects which yield requested data. State management used in this project is Provider with ChangeNotifier.
- provider - state management
- firebase_auth - working with Firebase Authentication API
- cloud_firestore - working with Cloud Firestore API
- geolocator - platform specific location services
- geodesy - geodesic and trigonometric calculations
- flutter_map - provides a widget for displaying a map
- wakeclock - preventing the screen from sleeping
- Selection between delivery or order
- Order selection
- Finding current location
- Once the order is accepted by the delivery, live tracking of the delivery
- Confirming the successful delivery
- Selection between all available orders
- Display of order's distance
- Once the order is selected, display of the delivery location
- Clone the repository using the link below:
https://github.com/kforjan/delivery-app.git
- Go to the project root and execute the following commands:
flutter pub get
flutter run
The 2 phones are running at the same time, phone on the left is ordering and the phone on the right is delivering.
note: distance from delivery and delivery location is 0.00km because emulators always have the same coordinates
- Separation in 2 applications
- Recommended route for the delivery
- Location fetching interval regulation
- User account implementation
- Better map providing service