TransportEase претставува апликација за наоѓање на превоз, односно транспорт и е слична на Uber и Lyft која овозможува барање на превоз до одредена дестинација со избор од повеќе типови на превозници.
Две апликации:
- Корисничка апликација – за оние на кои што им е потребен превоз
- Апликација за превозници – за оние кои што нудат превоз, пр. индивидуални лица и такси компании
Двете апликации имаат заеднички Laravel backend кој што се користи како веб сервис. Дополнителен веб сервис кој што го користат апликациите е Google Maps Platform API. Се користат и локациски сервиси и сензор, акцелерометар за приказ на моменталната брзина на превозникот.
Репозиториумот е структуриран во три дела:
- src_frontend - тука се наоѓаат Flutter и Dart апликациите, односно frontend-от за двете посебни апликации
- src_backend - тука се наоѓа Laravel backend апликацијата која што претставува REST сервис
- docs - тука се наоѓа документацијата за проектот
Покрај во овој репозиториум, апликацииите се достапни и на посебни GitHub репозиториуми
Апликациите применуваат неколку шаблони за развој на софтвер, од кои некои се специфични за Flutter и тоа:
- Provider Pattern - за чување и споделување на заеднички податоци низ целата апликација така што имаме Provider за класа со потребните податоци кои што треба да се споделуваат и Consumers на кои што Provider-от им ги споделува овие податоци
- Singleton - за креирање на само една инстанца од AppData класата за податоците кои се споделуваат низ целата апликација, како и објектот за конекција со базата на податоци во backend-от и Firebase инстанцата за автентикација во моменталната верзија од проектот и ConfigMap-от
- Factory - factory методи за креирање на објекти, односно инстанци од моделите: Address, AppUser, DirectionDetails, PlacePrediction, Driver, TripHistory преку користење на JSON податоци и Data Snapshots
- Малку модифицирана MVVM (Model-View-ViewModel) архитектура - каде што апликацијата е структурирана на начин на кој што се одвојува програмската логика од корисничкиот интерфејс - Models во апликацијата си претставуваат модели и се наоѓаат во lib/Models, Views во апликацијата се наречени Screens и се наоѓаат во lib/Screens, а пак ViewModels се посебните модели како што се RegistrationPageModel, LoginPageModel, SearchDestinationModel кои што служат за примање на корисничката интеракција и ажурирање на погледите и исто така се наоѓаат во lib/Models
Различните UI елементи како што се дијалогот за пребарување на дестинација, приказот на информациите за превозникот, приказот на историјата на патувања за превозник, приказ на барањата за превоз и сите останати се поделени во посебни реискористливи компоненти, а со тоа на некој начин се применува и Component-based архитектура.
Некои од карактеристиките кои ги поседува оваа платформа се:
- Барање на превоз
- Прифаќање на барање за превоз
- Приказ на статус на патување
- Рецензии за превозници
- Контакт со превозник
- Недостапност на превозници
- Регистрација како превозник
- Промена на статус на достапност на превозник
- Приказ на потребни детали кај превозник
- Ажурирање на рутата на мапата кај превозникот
- Пристигање на дестинација
- Различни погледи за превозници
Детален опис на секоја од карактеристиките е достапна во прикачената документација во docs делот.
Горги Лазарев
201042