Está en la página 1de 12

For this Final Project you are expected to implement a Rental Car App following all the

specifications in this document. The features to be implemented are divided into 2


categories: Base features and Extra features.

Before implement any Extra feature it is mandatory that you have implemented all the base
features beforehand.

Scenario
OSF has a new project to implement for a Rental Car company named RentC. At this
moment, the company only has a simple web site and does all its management and control
using excel files. This solution worked fine for the first years when they didn’t have a lot of
data to store, but now they have just too much data and lost control of it.

Your job is to create a console application that will replace those messy excel files giving
RentC a better control over their assets.

Technical Requirements
Programming Language: C#
Database Engine: SQL Server 2016 Express
WebServices
Specifications
Base features
Welcome Screen

In the welcome screen, you just need to present the welcoming message as
shown below and implement to 2 functionalities:

 If ENTER is pressed, go to the next screen


 If ESC is pressed, close the app
Menu Screen
In the Menu screen you should list all the functionalities that are available. You
should expect the user to type the number associated with the option he want.

When he types a valid menu option and presses ENTER you should go to the desired
screen. If a valid number is entered, display an error message saying:
This is not a valid option.
Register new Cart Rent Screen
In this screen you will insert the data necessary to register a new car rent
All the fields are mandatory.
After the user submits the data, before saving it into the database you must validate:
 If the Car Model exists and is available
 If the Client ID exists
 If the cart is available in the city for the user.
 If End Date is equal or bigger than Start Date.

If the data passes all the validation, save it do the database as a new cart rent record and
send the user to the Menu Screen

If some of the data is not valid, display an error message to the user.
Register new Customer
In this screen you will insert the data necessary to register a new customer
All the fields are mandatory except ZIP Code.
After the user submits the data, before saving it into the database you must validate:
 If the Client ID is not being used
 If ZIP Code is in the correct US format: XXXXX
 If Birth Date was informed, validate if it is in the correct format: dd-MM-yyyy

If the data passes all the validation, save it do the database as a new customer record and
send the user to the Menu Screen

If some of the data is not valid, display an error message to the user.
Update Cart Rent Screen
In this screen you will have the option to modify the data from a car rent record
Use the same validations from the Register new Cart Rent Screen
Update Customer
In this screen you will have the option to modify the data from a customer record
Use the same validations from the Register New Customer Screen
List Rents
In this screen you will list all the rents.
List Available Cars
In this screen you will list all the available cars.
This feature must querie a webservice which will be provided by the instructor
List Customers
In this screen you will list all the customers saved n our database.
Extra features
Below you will find a list of possible extra features that can be implemented once all
base features have been implemented.

Unit Testing
Implement a test suite for your methods to ensure quality.

Records Sorting Options


Implement sorting for all fields in screen that list records
It is considered 1 extra feature per screen with sorting options
Per default, records come sort by the ID in Ascending Order.
If the same sorting option is entered 2x, then sort in the Descending order

Database Normalization
Modify your data tables so they are normalized.
Reports Screen
Create a new screen with one menu option per report. Each report will be
considered as an extra feature

 Gold and Silver Customers rented a car at least 4x(Gold) or 2x(Silver) in the
last 30 days
 Most recent rented cars
 Most rented carts in a given month
 Less rented carts in a given month

También podría gustarte