UrbanDrive Wheels
UrbanDrive Wheels Car Rental Backend System
Overview
Welcome to the UrbanDrive Wheels Car Rental Backend System project documentation! This project offers a comprehensive console-based backend system for managing car rentals. Developed by Pramod Kumar Jangid during the Construct Week at Masai School, this project provides efficient tools for administrators, and customers to handle various car rental tasks.
Author
Pramod Kumar Jangid
Introduction
The UrbanDrive Wheels Car Rental Backend System project is built using Java to provide users in the car rental industry with a streamlined solution for data management and processing. This documentation will guide you through the features, functionalities, and usage of the system.
Getting Started
The UrbanDrive Wheels Car Rental Backend System is designed to cater to two primary roles:
- Administrator
- Customer
Roles and Functionalities
Admin Role
- Manage customers
- Maintain and update vehicle information
- Monitor reservations and transactions
- Add new vehicles to the inventory
- Update vehicle details
- Delete vehicles from the inventory
- View all reservations and transactions
- Calculate total revenue
Customer Role
- Signup for an account
- Log in to the platform
- Search available vehicles
- View vehicle details
- Make reservations
- Cancel reservations
- Provide feedback
- View past reservations
- Sort Vehicles by rental rate
Entity-Relationship (ER) Diagram for Car Rental Backend System
Entities:
- Customer
- Vehicle
- Reservation
- Transaction
Relationships:
-
Customer - Vehicle (One-to-Many):
- A customer can have multiple reservations (one-to-many).
- Each reservation is associated with a vehicle.
-
Customer - Reservation (One-to-Many):
- A customer can make multiple reservations (one-to-many).
- Each reservation belongs to a customer.
-
Reservation - Vehicle (Many-to-One):
- Multiple reservations can be made for vehicles (many-to-one).
- Each reservation is associated with a vehicle.
-
Reservation - Transaction (One-to-One):
- Each reservation can have one transaction (one-to-one).
- Each transaction is associated with a reservation.
-
Customer - Transaction (One-to-Many):
- A customer can have multiple transactions (one-to-many).
- Each transaction is associated with a customer.
Entities Attributes:
-
Customer:
- customerId (Primary Key)
- firstName
- lastName
- email
- username
- password
- phoneNumber
- address
- isDeleted
-
Vehicle:
- vehicleId (Primary Key)
- brand
- model
- year
- mileage
- availability
- seatingCapacity
- rentalRate
-
Reservation:
- reservationId (Primary Key)
- customer (Foreign Key: customerId)
- vehicle (Foreign Key: vehicleId)
- startDate
- endDate
- isDeleted
-
Transaction:
- transactionId (Primary Key)
- customer (Foreign Key: customerId)
- reservation (Foreign Key: reservationId)
- transactionDate
- amount
- isDeleted
Tech Stack
The UrabanDrive Wheels Car Rental Backend System is developed using Java, a versatile programming language known for its performance and flexibility.
Tools
Various tools and technologies were employed during the development of the Car Rental System.
Learnings
Throughout this project, I encountered challenges that led to valuable learnings:
- Writing efficient and maintainable code
- Structuring a project and planning its execution
- Handling exceptions and error scenarios
Source Code
The source code for the Car Rental System project is available on GitHub. You can explore the code, contribute to its development, and use it as a foundation for similar projects.
GitHub Repository
Thank you for your interest in the UrabanDrive Wheels Car Rental Backend System!