TaiTrien / geo-app

Geo app with Getx architecture

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction 💬

Geo-App is the platform that help user can track their pickup location and tracking the path.

Features

  • 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)

Configuration

Setup mapbox

  • Mapbox original guides
  • Integrate secret key for your location machine
  • Create .env file at project path by using structure at .env.example

Setup Amplify

User guide

Screenshot 2023-04-02 at 00 40 34

Project architecture

Screenshot 2023-04-02 at 01 20 44

  • 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.

Design pattern used

Dependecy Injection

  • 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.

Factory

  • Use to create data models

Folder overview

Screenshot 2023-04-02 at 00 56 51

Dependencies

Thanks to:

About

Geo app with Getx architecture


Languages

Language:Dart 57.8%Language:C++ 19.5%Language:CMake 16.0%Language:Ruby 2.4%Language:HTML 1.8%Language:C 1.2%Language:Swift 1.2%Language:Kotlin 0.1%Language:Objective-C 0.0%