/Safraa-Passenger

An Android application that allows passengers to easily book travel bus tickets, providing a convenient and hassle-free experience

Primary LanguageKotlinGNU General Public License v3.0GPL-3.0

Safraa

Safraa is a product that provides travel bus tickets booking service. It’s on a mission to enable digital transformation in the Sudanese bus travel sector by making bus travel easy, safe, and affordable.

The product consists of two integrated applications, namely:

  • Safraa Passenger, where travelers browse, book, and pay for bus tickets
  • Safraa Bus, where bus company agents manage trips, review bookings, and confirm payments.

Safraa Passenger

App Features

  • Find Trips: Browse and filter trips of different destinations and dates.
  • Book a Seat: Book and reserve your preferable seat(s).
  • Get Tickets: Pay to confirm reservation and receive your e-ticket.

App architecture

The app adopts a MVVM (Model-View-Viewmodel) clean architecture with unidirectional data flow. Model layer consists of data repositories and use-cases when needed. Viewmodels are utlilized per app screen. Presentation (View) layer incorporates a single Activity scheme with multiple fragment management using navigational components.

Components, Libraries, and Tools:

  • Android Navigation.
  • Andriod Workmanager.
  • Room Database.
  • Kotlin Coroutines.
  • Hilt Dependency Injection.
  • Firebase (Authentication, Firestore, Messaging).
  • Facebook Shimmer.
  • GSON.
  • Timber.
  • Mixpanel.