Term
Project - Car Rental Company
1. Goal
You will develop a database system to
automate the administrative and customer service functions of an automobile
rental firm.
2. Application Overview
The car rental company allows customers to
reserve rental cars over the internet, the company also allows customers to
rent cars by calling up car rental personnel or by walking up to the rental
counter.
The rental car company has a number of
branches and each car is assigned to a home branch. Cars are always rented from
the home branch but may be returned to a different branch. Cars are sometimes
shifted from location to location – i.e. the home branch location of a given
car can be changed.
The company offers various types of cars and
various price plans. Cars are grouped into the following classes: Subcompact,
Compact, Midsized, Full sized, Luxury. Pricing varies by class of car, duration
of rental. The company periodically offers special deals, e.g. one week rental
of midsized car for $150. The company also offers discounts for organizational
memberships, e.g. AAA, AARP. There is a separate set of fees when a car is not
returned to the car’s home branch – this fee will depend on the identity of the
home branch and the branch to which the car is returned, e.g. the fee might
depend on the distance between the home branch and the return location.
We assume that a customer must register
before he or she rents a car. Once the customer is registered, the registration
data stays in the system.
3. Application Requirements
3.1 Data:
Car data: Information about each rental car including manufacturer, model,
year, type, state in which car is registered, registration number, mileage,
location (branch of rental company to which car is assigned, repair record.
Customer data: Name of each member, driver’s license
number, address, gender, home phone number, work phone number, credit card
number, record of all rental activity including reservations made, specific
cars rented, types of cars rented, rental locations, mileage driven during
rental, any damages to rental cars, organizational memberships.
Other data: Any other data necessary to support tasks described in next section.
3.2 Tasks:
Registration: Customer registers with system.
Update customer: Customer information can be modified in
case of change of address, credit card,
driver’s license information etc.
Drop customer: Delete information if customer does not
want his or her information recorded in the system. This is only allowed if a
customer has no pending reservations and if the customer has returned all cars
rented and fully paid any charges.
New car: Records information pertaining to new cars added to the fleet
Drop car: Car is taken out of service
Car query: Query for cars by model, brand, color, registration number, class,
rental fee rate, damage record, mileage etc.
Make reservation: A customer reserves a car. For each
reservation, the customer show be able to specify class of car, pick-up
location and time, return location and time, any special requirements, whether
customer wants to buy rental insurance. Customers should be able to view lists
of available classes of cars and prices. The customer should be provided with a
confirmation number after the reservation has been made. The system should make
sure that there will always be appropriate cars available to customers who have
made reservations.
Update/cancel reservation: A customer can update/cancel reservations.
Rent car: Customer picks up a car. Record
relevant information such as pick-up time, mileage when car is picked up etc.
Return car: A car is returned Record relevant
information such as mileage upon return, return time, return location, damages.
Note that rental fee will be adjusted if the return time and date are different
from what was reserved. Charges for damages will also be assessed.
Decision support: The system should be able to answer the
following questions:
Rules of the
game
· Groups: The project is to be done in groups of 2-3 students. A roster for each group must be submitted to the professor by the date specified in the "Due Dates'' section of this assignment. The groups are "selfpolicing'' , e.g., each group is responsible for its own division of labor, scheduling, etc.. Note: If an unreconcilable problem arises in your group, it is your responsibility to contact the professor as soon as possible. After the project is due, it will be too late.
· Assumptions: In cases where the above description of the application is incomplete, it is acceptable to make assumptions about the application providing that: 1) they are explicitly stated in the report, 2) they don't conflict with any of the requirements specified above, and 3) they are ''reasonable'' , e.g., it is not reasonable to assume that the rental car company has only one customer, and that the customer has never rented a car. If you have a question about the acceptability of any of your assumptions, check with the professor or TA.
· Reports: A report should be handed in for grading at the end of each phase. The report must be formatted in a reasonable manner (i.e., using a text processor and a decent printer). Reports are due during class on the date specified in the "Due Dates'' section of this assignment.
· Implementation: The final phase of the project requires a working implementation of the system to be built, tested, and demonstrated. A large part of the project grade depends on the quality of this implementation. The implementation will be carried out using the ORACLE database system, using SQL along with C, C++ and/or Java. A portion of the project grade will be based on the user interface. A portion of the grade will also depend on the quality of error detection and management, i.e., your system should be robust to data entry errors, etc.
5. Project
Phases
The three phases of the project cover the following work processes:
Phase I: Requirements Analysis and Conceptual Modeling
Phase II: Conceptual Modeling and Task Emulation
Phase III: Implementation and Testing
6. Reports
The Phase I report must contain:
1. A short description of the purpose of the project
2. The assumptions that you have made about the car rental company
3. A description of the business rules and procedures associated with the car rental company
4. Describe the different categories of users who will interact with the system
5. Ten use-cases that describe scenarios that arise in the operation of the rental car company. These use cases should cover a wide range of conceptually different scenarios.
6. A draft conceptual schema using the ER model. This should capture the overall functioning of the organization but does not have to include an exhaustive list of attributes
7. Description of forms and documents that will be presented to various categories of users
The Phase II report must contain:
1. A short description of the purpose of this phase of the project.
2. A revised version of the Phase I report that takes into account design changes.
3. A description of the problems encountered in this phase and justification for the solutions.
4. The documentation produced in this phase, i.e.,
· A detailed schema using the ER model,
· list of the attributes for each entity and relationship,
· explanations of the nonobvious entities and relationships,
· the relational schema in 3rd or BCNF form. Or the DDL statements to create the relational schema.
· explanations (e.g., primary keys, etc.),
· the code for each task: Pseudocode and the embedded DML code.
The Phase III report must contain:
1. A description of the purpose of this phase of the project,
2. A description of the problems encountered in this phase and justification for the solutions.
3. Any revisions made to the relational schema definition from Phase II,
4. The documentation produced in this phase, i.e.:
· a source program listing.
· a users manual for the system.
· your testing efforts: erroneous cases, that your system can detect and handle reasonably.
· a description of the system's limitations and the possibilities for improvements.
5. In addition, a demo of the implemented system is required. All members of the group should attend this demo, to explain the aspects of the project for which they were responsible.
6. Due Dates
|
Project Starts |
2/23 |
|
Group rosters due |
2/27 |
|
Phase I due |
3/15 |
|
Phase II due |
4/5 |
|
Phase III due |
5/10 |
|
Demos |
5/10,11 |