Java Car Rental System
Introduction
This repository will be used for developing the Car Rental System for our OOD with Java module
Current Idea of the Flow
- A Dealership class will contain a list of Dealers (the workers) and a list of cars that can be rented.
- Cars have more than one type, like 6 seaters, sedans, SUVs, etc. We will create a class for each of this (at least 3) and make them inherit from the Car class
- Dealers will be separated into normal Dealers and admin Dealers, where admin Dealers can edit Car information and read Reports generated by the Dealership class.
- Customers will need to enter basic personal information when they first register and can edit these information after registration.
- Customers will first book the car that they want to rent by browsing through the catalog. The catalog will only show Cars that can be booked.
- Dealers will need to approve the booking in order for the customer to collect the car in the appointed date. Once approved, the customer will receive a notification (either via email or text message) about the approval or rejection.
- I think approval will be changed to be done automatically instead of being done by an admin/dealer. If the car is already booked, then the system will not show the car at all in the catalog.
- When customers return the rented car, the dealer will also need to approve the return. If approved, a notification is sent only. If rejected, a notification is sent and a fine is imposed on the customer.
Collaborators
- Bryan Hor Jin Hao
- Lim Phin Shuen
TODOS
- Prepare UML Use Case and Class Diagrams
- Edit the UML based on completed code afterwards
- Prepare UML descriptions
- Write out code for all the classes
- Dealership/Store class
- Car class, with inheritors
- Customer class
- Dealer/Worker class
- Add a Test.java file to run tests for the functions of each class
- Join all classes in the Main class
- Write out Documentation
Notes
- Should do Test Driven Development, prepare separate Test cases based on the functions that are developed for each class.
Text file formats
- They will be stored as JSON strings, achieved by using GSON library
Users data storage formats
-
Information about admins are stored in this order:
- Fullname
- Identification Card no. (listed as Identification)
- Contact number (Phone number)
- Username
- Password
-
Any extra information will be stored after the first 6 listed as above, the constructor method can be inherited from the User class.
Car data storage formats
- Information about cars (include price per day, number of seats)
- Hatchback
- Perodua Myvi (150, 5)
- Perodua Axia (140, 5)
- Proton Iriz (170, 5)
- Toyota Yaris (200, 5)
- Minivan
- Toyota Hiace (450, 10)
- Proton Exora (370, 7)
- Toyota Inova (400, 7)
- Hyundai Starex (500, 8)
- Sedan
- Perodua Bezza (200, 5)
- Honda City (260, 5)
- Toyota Camry (320, 5)
- Nissan Almera (250, 5)
- SUV
- Proton X50 (350, 5)
- Honda CX-5 (500, 5)
- Honda HR-V (390, 5)
- Nissan X-Trail (370, 5)
- Hatchback
Customer Change Personal info
This will be done directly in the controller using getter and setter methods