Uber-like Cab Service Website
Budget: $30 – $250 USD
Overview:
We need to develop a 3-tier distributed system that simulates the functionality of Uber's cab services. This includes features like dynamic pricing, ride management, billing, and user interaction with scalability, performance, and reliability as primary goals. The system must integrate RESTful APIs, Kafka for messaging, Redis caching for optimization, and deployment on AWS Kubernetes.
Scope of Work
1. Functional Requirements
The system will manage and implement the following key entities with full CRUD capabilities:
Drivers:
Store personal information, car details, ratings, reviews, multimedia introductions (images/videos), and ride history.
Features: Add, edit, delete, search, and display drivers.
Driver ID [SSN Format]
⇒ First Name
⇒ Last Name
⇒ Address
⇒ City
⇒ State
⇒ Zip Code
⇒ Phone number
⇒ Email
⇒ Car details
⇒ Rating
⇒ Reviews
⇒ Own introduction in the form of images and video.
⇒ Rides history
Customers:
Store personal details, payment information, ratings, reviews, multimedia uploads, and ride history.
Features: Add, edit, delete customers, book rides, and locate nearby drivers (within 10 miles).
⇒ Customer ID [SSN Format]
⇒ First Name
⇒ Last Name
⇒ Address
⇒ City
⇒ State
⇒ Zip Code
⇒ Phone number
⇒ Email
⇒ Credit Card details
⇒ Rides History
⇒ Rating
⇒ Reviews
Billing:
Manage predicted and real-time billing based on dynamic pricing.
Features: Add, delete, and search bills.
⇒ Billing ID [SSN Format]
⇒ Date
⇒ Pickup time
⇒ Drop off time
⇒ Distance covered
⇒ Total amount for ride
⇒ Source location
⇒ Destination location
⇒ Driver ID
⇒ Customer ID
Administrator:
Manage drivers, customers, and accounts.
Generate statistics (e.g., revenue/day, rides per area).
Features: Analyze data and create reports.
⇒ Admin ID [SSN Format]
⇒ First Name
⇒ Last Name
⇒ Address
⇒ City
⇒ State
⇒ Zip Code
⇒ Phone number
⇒ Email
Rides:
Log ride details such as locations, timestamps, and associated driver/customer IDs.
Features: Add, edit, delete, and list rides by driver or customer.
⇒ Ride ID [SSN Format]
⇒ Pickup location (Latitude, Longitude)
⇒ Drop off location (Latitude, Longitude)
⇒ Date/Time
⇒ Customer ID
⇒ Driver ID
2. Technical Requirements
Middleware:
Implement RESTful APIs for all functionalities.
Use Kafka as a messaging platform for communication between the front-end and back-end.
Dynamic Pricing Algorithm:
Use a custom algorithm based on supply-demand balance, leveraging the https://www.kaggle.com/datasets/yasserh/uber-fares-dataset for fare prediction.
Integrate machine learning models for dynamic pricing predictions.
Database:
Use MongoDB for structured and unstructured data storage.
Ensure the system supports at least:
10,000 drivers
10,000 customers
100,000 billing records
Client Interface:
Develop a user-friendly Node.js-based GUI.
Enable interaction with the system and display error feedback intuitively.
Performance Optimization:
Implement Redis caching for frequently accessed data.
Focus on efficient handling of database connections and scalability.
Scalability:
Ensure the system can handle 100,000+ records and simultaneous operations without degrading performance.
Load testing with Apache JMeter for scalability assessment.
Deployment:
Use Docker for containerization and deploy on AWS Kubernetes.
I have given a Document with the API Documentation needed.
Please provide explanation and steps of the deployment so I can deploy it on our own end
We need to develop a 3-tier distributed system that simulates the functionality of Uber's cab services. This includes features like dynamic pricing, ride management, billing, and user interaction with scalability, performance, and reliability as primary goals. The system must integrate RESTful APIs, Kafka for messaging, Redis caching for optimization, and deployment on AWS Kubernetes.
Scope of Work
1. Functional Requirements
The system will manage and implement the following key entities with full CRUD capabilities:
Drivers:
Store personal information, car details, ratings, reviews, multimedia introductions (images/videos), and ride history.
Features: Add, edit, delete, search, and display drivers.
Driver ID [SSN Format]
⇒ First Name
⇒ Last Name
⇒ Address
⇒ City
⇒ State
⇒ Zip Code
⇒ Phone number
⇒ Car details
⇒ Rating
⇒ Reviews
⇒ Own introduction in the form of images and video.
⇒ Rides history
Customers:
Store personal details, payment information, ratings, reviews, multimedia uploads, and ride history.
Features: Add, edit, delete customers, book rides, and locate nearby drivers (within 10 miles).
⇒ Customer ID [SSN Format]
⇒ First Name
⇒ Last Name
⇒ Address
⇒ City
⇒ State
⇒ Zip Code
⇒ Phone number
⇒ Credit Card details
⇒ Rides History
⇒ Rating
⇒ Reviews
Billing:
Manage predicted and real-time billing based on dynamic pricing.
Features: Add, delete, and search bills.
⇒ Billing ID [SSN Format]
⇒ Date
⇒ Pickup time
⇒ Drop off time
⇒ Distance covered
⇒ Total amount for ride
⇒ Source location
⇒ Destination location
⇒ Driver ID
⇒ Customer ID
Administrator:
Manage drivers, customers, and accounts.
Generate statistics (e.g., revenue/day, rides per area).
Features: Analyze data and create reports.
⇒ Admin ID [SSN Format]
⇒ First Name
⇒ Last Name
⇒ Address
⇒ City
⇒ State
⇒ Zip Code
⇒ Phone number
Rides:
Log ride details such as locations, timestamps, and associated driver/customer IDs.
Features: Add, edit, delete, and list rides by driver or customer.
⇒ Ride ID [SSN Format]
⇒ Pickup location (Latitude, Longitude)
⇒ Drop off location (Latitude, Longitude)
⇒ Date/Time
⇒ Customer ID
⇒ Driver ID
2. Technical Requirements
Middleware:
Implement RESTful APIs for all functionalities.
Use Kafka as a messaging platform for communication between the front-end and back-end.
Dynamic Pricing Algorithm:
Use a custom algorithm based on supply-demand balance, leveraging the https://www.kaggle.com/datasets/yasserh/uber-fares-dataset for fare prediction.
Integrate machine learning models for dynamic pricing predictions.
Database:
Use MongoDB for structured and unstructured data storage.
Ensure the system supports at least:
10,000 drivers
10,000 customers
100,000 billing records
Client Interface:
Develop a user-friendly Node.js-based GUI.
Enable interaction with the system and display error feedback intuitively.
Performance Optimization:
Implement Redis caching for frequently accessed data.
Focus on efficient handling of database connections and scalability.
Scalability:
Ensure the system can handle 100,000+ records and simultaneous operations without degrading performance.
Load testing with Apache JMeter for scalability assessment.
Deployment:
Use Docker for containerization and deploy on AWS Kubernetes.
I have given a Document with the API Documentation needed.
Please provide explanation and steps of the deployment so I can deploy it on our own end