Simple software architectures project to design a taxi booking framework.
- Farbod Nazari Montazer
- Mahshad Salimi
- Amin Hassan Zarei
- Taha Khani Almoti
The prerequisites to designing the framework as requested by the projects are defined as follows.
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 |
The framework is designed using a service oriented architecture with each service using a layered architecture, with a focus on scalability and adaptability.
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.
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).