CIS 3342 Project 2 – New Car Builder /Computer Science

CIS 3342 Project 2 – New Car Builder

 

1. Create a table named “Cars” in your database with the following fields:

Field Data Type
CarID int
CarMake varchar(MAX)
CarModel varchar(MAX)
CarYear int
BasePrice float
TotalSales float
TotalQuantitySold int

2. Create a table named “Packages” in your database with the following fields:

Field Data Type
CarID int
PackageDescription varchar(MAX)
Price float
TotalQuantitySold int

3. Design the user interface (input form)

a. Add form controls for the user to enter their information name, address, and phone number.

b. Add a form control that allows the user to choose the option to buy or lease the car they build.

c. Add a form control that allows the user to choose the option to have a dealership contact them or they would rather visit a dealership.

d. Use a drop-down box or list to display a list of car makes.

e. Use a drop-down box or list to display a list of car models for a previously selected make. The items in this list are tied to the selection in the car makes drop-down list. This means this drop-down box’s values should change anytime the user chooses another make.

f. Add a form control that allows the user to choose a color for the car.

g. Put a GridView control on your form that will be used to display all the available packages for a particular car make and model and it will allow the user to select packages that will be added to the car they are building. This input GridView display will be dynamic with 3 columns. Each row in the GridView will correspond to a Package option stored in the database for a particular car’s Make and Model.

i. First column displays the PackageDescription coming from the database.

ii. Second column displays the Price of the Package.

iii. Third column contains a checkbox for the user to select the item to add to the car they are building.

4. Use server-side input validation

a. The name, address, and phone number textboxes cannot be blank.

b. The user must select an option to either buy or lease.

c. The user must select an option to have a dealership contact them or not.

d. The user must choose a make and model before they can submit the form to buy/lease a new car.

5. Server-side processing

a. Create a separate ClassLibrary project that contains 3 classes. Name the library project CarLibrary

b. The first class Car represents a newly built car. It should contain 5 elements, as class properties, to be displayed in the output GridView (in Part 6). The 5 elements pertain to a single car that was built.

i. Make, Model, Year, Color, TotalCost (base price plus all packages added to the newly built car), and a collection of packages chosen by the user.

ii. The class should contain methods to add and remove packages along with any other class members that may be necessary. The packages added to the Car object are simply instances of the CarOption class..

c. The second class CarOption should contain elements and properties to store information about a package that was chosen.

d. The third class should contain functions that deal with processing the newly built car and any other operations that may be necessary:

i. You need one function that receives a Car object that represents a newly built car, and updates the TotalSales and TotalQuantitySold fields in the Cars table for the specific Car Make and Model in the database. This function should also update the TotalQuantitySold field in the Packages table.

ii. One function that computes the TotalCost of a Car which is based on the Car object’s BasePrice (from the database) and all the options added to the Car object.

6. Display car build output

a. Display the name, address, phone number, buy/lease choice, and dealership contact choice.

b. Display the car’s make, model, and color.

c. Display a dynamic GridView as Illustrated below. It needs to display the car options (packages) that were ordered for the newly built car. The GridView must display the ArrayList of car options (packages) from part 5b; this is what should be bound to this GridView in order to display the newly build car.

d. “Total Cost” is calculated using the base price of the car and all the packages added to the base model.

e. The last row of the GridView should display the totals for the Quantity column, and the Total Cost column. You need to implement this as a footer of the GridView.

Output GridView

Package Description Price
Total Cost $ …

7. Management report

a. Create a management report that will display the TotalSales and TotalQuantityOrder for each Car in the database.

b. The data should be displayed in descending order.

c. This information could be displayed on the same page or on a separate ASPX page.

8. Visibility control

a. Control the visibility of both the input GridView and the output GridView displays. You want to show the input GridView when building a new car to order and hide the output Gridview. Then, you want to show the output GridView and hide the input GridView after the build was processed.

9. Good Design:

a. Use server-side input validation.

b. Implement exception handling, so your programs don’t crash for any reason.

c. Provide a consistent and logical navigation system. The user should never have to use the browser’s Back and Forward buttons to move between pages.

d. Make your presentation clear to the user, providing on-screen instructions wherever needed both for data entry and error correction. If required data is omitted or entries are incorrect, the user should not have to re-enter data that is already correct.

e. Create a good data model and implement the data model by creating the necessary tables in the database. You will be graded on the implementation of your data model.

f. You need to use a proper naming convention for all controls and in your code. I expect you to properly name your classes, variables, functions, etc…

g. You cannot use the SQLDataSource control or any other controls to work with the database. You need to handle the code manually using ADO.NET programming.

h. You must use component-based software design. This means writing as much code in classes and functions of classes instead of in the GUI.

Submission: You need to publish your web application project to the cis-iis2 web server, upload your code to Blackboard, and provide the URL to your web application’s start page (Table of Contents page). Make sure a current version of your solution is located in your G:\cis3342 folder. Projects that are not submitted properly will not be graded. The grade for the required elements will be based on the published version of your web application. This means the elements must work from the published web application, not just the solution submitted through Blackboard. It’s important to make sure your published web application is the current version and that everything works. You shouldn’t publish to the Project2 folder after the project has been submitted. Otherwise, it will be considered late or may not be accepted if it’s after the deadline. If you make changes to your project, you will need to republish and resubmit the project. Generally, you shouldn’t publish or make changes until after you receive a grade. You need to zip the root folder for your solution into a single zip file and submit the assignment in Blackboard. To submit the assignment, you need to click the Assignment’s Title “Project 2” to view the submission form and upload the file.

Make sure you properly submit your assignment and that it works. Programs that don’t run or don’t contain all the necessary files will not be graded and marked late.

Please be sure to save your work periodically as you proceed and also back it up. You may want to store it on your flash drive. If you are going to zip an application in order to store it, BE SURE TO FIRST CLOSE Visual Studio. If you do store information on your flash drive be sure to copy it to a hard drive on your computer before working with the project.

Order from us and get better grades. We are the service you have been looking for.