Geo-App is the platform that help user can track their pickup location and tracking the path.
- Authentication with Amplify (signup, signin and signout)
- Integrated Mapbox as Map provider
- Highighted pickup location (draw a polygon by lines)
- Tracking path between 2 locations (destination is fixed now)
- Mapbox original guides
- Integrate secret key for your location machine
- Create .env file at project path by using structure at .env.example
- UIs: Widgets and Pages folder contains reusable UI element.
- Controller: Will be handled business logic. Controller's responsibilities are receiving data from UI, validate and send to repo, also receiving data from repo then send to UIs.
- Repo: Responsible are receiving data from controller, send to data layer (local storage, server, cloud, etc) and clean data before send it back to controller if repo receives data from data layer.
- Model: Responsible to converting from json to class instancee that can help develop more efficient.
- Explanation: Each controller will be put in binding through dependencies function. Every time, you need controller to handle data just injecting the binding that put controller through AppPage. Then using Get.find() to get the controller instance
- Advantage: If there are more one places need using controller, just need inject its instance not create a new one.
- Use to create data models
Thanks to:
- Cupertino icons
- Getx for state & routes management
- Geojson for geofencing
- Amplify general
- Amplify auth cognito for authentication
- Amplify datastore for local storage
- Amplify api for setup API gateway
- Flutter config for env config
- Flutter animator for setup Splash logo animation
- Form validator for validating form
- Geolocator for get current location and setup locationOnChanged listener
- Flutter toast for local notification
- Flutter map for rendering Map
- Latlong2 for LatLng model
- Dio for API calling