/taxi-booking-framework

Simple software architectures project to design a taxi booking framework.

Primary LanguageJavaMIT LicenseMIT

Taxi Booking Framework

Simple software architectures project to design a taxi booking framework.

Table of Contents

Team Members

  • Farbod Nazari Montazer
  • Mahshad Salimi
  • Amin Hassan Zarei
  • Taha Khani Almoti

Description

The prerequisites to designing the framework as requested by the projects are defined as follows.

Prioritised Feature List

A defined ranked list of features required for a basic taxi reservation system with a description.

Priority Feature Description
1 Booking Management Taxi availability search
Taxi selection based on criteria (e.g., location, type)
Pickup and drop-off location selection
Confirmation and cancellation of bookings
2 Taxi Dispatching Assigning nearest available taxi to passenger
Dispatching algorithm
3 Fleet Management Vehicle registration and management
Real-time tracking of vehicle locations
Vehicle availability status management
Vehicle maintenance scheduling
Optimizing vehicle utilization
4 User Registration and Authentication User registration (passengers and drivers)
Login authentication (passengers and drivers)
5 Driver Management Driver registration and onboarding
Availability status management
Booking assignment to drivers
Real-time location tracking of driversReal-time location tracking of drivers
Navigation assistance for drivers
6 Payment Processing Multiple payment method support (debit cards, cash)
Fare calculation based on distance, time, and additional charges
Invoice generation
Refunds and dispute handling
7 Notification Management Booking confirmation notifications
Driver assignment notifications
Estimated arrival time notifications
Ride completion notifications
Payment confirmation notifications to drivers
8 Profile Management User profile creation and editing (passengers and drivers)
Driver document verification (e.g., license, vehicle registration)
9 Feedback and Rating System Passenger rating of drivers
Driver rating of passengers
Feedback submission for rides
10 Admin Dashboard System configuration management
Handling user complaints/disputes
Managing driver accounts
Generating reports and analytics
Feedback review
11 Analytics and Reporting System performance analytics
User behavior analytics
Booking trend analysis
Driver productivity analysis
Revenue generation reports
12 Promotions and Discounts Generating and applying promotion codes
Offering discounts for specific users or rides
Managing promotional campaigns
13 Localization and Multi-language Support Supporting multiple languages for users
Localization of content based on user location
14 Accessibility Features Support for visually impaired users
User interface adjustments for accessibility
15 Regulatory Compliance Enforcement Compliance with local transportation regulations
Fine for bad actors
16 Integration with External Services Integration with mapping services (e.g., Google Maps)
Integration with bank payment gateways
Integration with sms services

Framework Architecture

The framework is designed using a service oriented architecture with each service using a layered architecture, with a focus on scalability and adaptability.

Project Architecture

getLnguageTypes

Description

get all language that application support
Route
api/translation/languageTypes

Method : GET

Header :--

Request Payload :

{
   
}

Success Response

{
   [
      "id": 1,
      "language": "United States"
    ]
}

getTranslationBylanguage

Description

get translation of one content by language name
Route
api/translation/v2

Method : GET

Header :--

Request Payload :

{
    "contentId":1,
    "languageType":"United States"
}

Success Response

{
   "contentId": 1,
   "translationText": "Hello"
}

getTranslation

Description

get translation of one content by language id
Route
api/translation

Method : GET

Header :--

Request Payload :

{
   "contentId":1,
   "languageTypeId":1
}

Success Response

{
   "contentId": 1,
   "translationText": "Hello"
}

getTranslationByIP

Description

get translation of one content by ip
Route
api/translation/ip

Method : GET

Header :--

Request Payload :

{
   "contentId":1
}

Success Response

{
   "contentId": 1,
   "translationText": "Hello"
}

getSectionTranslationByIP

Description

get translation of one section by ip
Route
api/translation/section/ip

Method : GET

Header :--

Request Payload :

{
   "section":"home"
}

Success Response

{
  [
    "contentId": 1,
    "translationText": "Hello"
  ]
}

addContent

Description

creating new contact
Route
api/translation/content

Method : POST

Header :--

Request Payload :

{
   "text":"salam",
   "section":"home"
}

Success Response

{
   "succeeded": "true"
}

addLanguageType

Description

creating new languageType
Route
api/translation/languageType

Method : POST

Header :--

Request Payload :

{
   "language":"Iran"
}

Success Response

{
   "succeeded": "true"
}

addTranslation

Description

creating new Translation
Route
api/translation

Method : POST

Header :--

Request Payload :

{
   "contentId": 1,
  "languageTypeId": 1,
  "translationText": "hello"
}

Success Response

{
   "succeeded": "true"
}

Framework Services:

Handles bookings made by users, manages assignments, states of the user, and assigned driver's location.

Handles finding users based on proximity to the driver, using the locations from fleet management.

Handles drivers registered and looking for users, keeps an updated location of each driver.

Handles pricing calculation for a user based on different variables like traffic, rain, and distance.

Pre-made endpoints, DTOs, and service interface for user management.

Handles translation base on user ip

Component, and Class Diagram

To view the enforced architecture diagram please check the UML.drawio file inside the repository (The classes provided by the framework are colored blue, while the classes that are supposed to be made by the developer are coloured purple).