Assignment 2: An Online Car Rental System using AJAX and JSON


Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due


Assignment 2:
An Online Car Rental System using AJAX and JSON

Introduction

In this assignment, you are required to develop a dynamic website with interactive features for a car rental company. The website should provide a streamlined online car renting experience for potential users. It should be able to handle various exceptions, such as input validation and change in car availability.

The website should enable users (i.e., potential customers) to

• Browse cars by type or brand,
• Search for cars using keywords,
• Check basic info and availability of a car,
• Make a rental request (reservation) for an available car,
• Cancel or confirm a rental order.
This assignment accounts for 35% of the total mark in the subject. You are required to complete this assignment individually.

Objectives

  • Learn about design of practical websites with rich interactive features for a specific application.
  • Learn how to design customised data structures using JSON.
  • Learn how to load, parse, and store JSON files using JavaScript.
  • Learn how to set, update, and delete cookie and/or session.
  • Learn how to use AJAX technique to send and retrieve data from the web server asynchronously without interfering with the display and behaviour of existing web pages.

Visual Components

1) Website logo

There should be a logo for the website. The logo should appear on all pages of the website.

2) Search box

There should be a search box allowing users to look up cars by using keywords.

3) Car categories

Cars should categorised by type (e.g., Sedan, Wagon, SUV) and brand (e.g., Ford, Mazda, BMW).

Users can click a category (if non-empty) to view all the cars in the category.

Search box and car categories should appear on all except the reservation and order confirmation pages.

4) A grid view of cars

When multiple cars are shown on a page (e.g., the homepage, the page showing cars by category, or search results), the cars should be aligned to grid (i.e., a nice tabular format).

Each car should show the key information, e.g., car model, image, price per day, and availability.

Beside each car, there is a button named “rent” through which users can enter the reservation.

5) Reservation

User can view the car that she/he intends to ren (car model, price per day) and edit the quantity to rent, start date and end date of the renting, and the total price for the rental duration.

User can 1) cancel this reservation, 2) proceed to place an order for the car, or 3) simply leave this page.In the third case, the reservation information will be kept in Cookie/Session; so, the user can later resume the previous reservation. When the user presses the “rent” button next to another car, the reservation will change for making the rental booking for the new car.

User must provide name, mobile number, email address and valid driver’s license available to place an order. All are compulsory for the order to be placed.

User can only rent one car model at a time.

6) Order confirmation
Once an order is placed, the page shows a web link which the user can click to confirm the order. The rental order is not placed until the user clicks the Web link.

This confirmation will trigger an update of the JSON file and MySQL database.

Data Structures

• Design a JSON file “cars.json” to store information about cars. There should be at least 30 cars in the JSON file. Each car should have at least 10 attributes (as shown in the table below). For each car, the availability status should show to the user as either ‘Yes’ or ‘No’.
- The website should show car information by loading data from the JSON file.

- The total number of cars available for each car model should be 1, 2 or 3 by default.

Type
Brand
Car Model
Image
Mileage
Fuel type
Seats
Quantity
Price/day
Description
sedan
Toyota
Camry 2013
xxx
10000
petrol
5
2
$120
xxxxxxx

• Design a MySQL table named “orders” to keep track of all rental orders. The table should consist of at least such basic information as “user_email”, “rent_start_date”, “rent_end_date (inclusive)”, “price”, and “status” to indicate whether the order has been confirmed by user.

Requirements

• Use HTML, CSS, JavaScript, AJAX and PHP to make an interactive website.
• Use Cookie, Session, JSON and MySQL to store information either temporarily or permanently.
• Use PHP to interactive with MySQL – You decide where to store images (database or the file system).
• We recommend that you use Cloud9 or a local IDE (e.g., Visual Studio Code) for development.
• You are required to deploy your website to Elastic Beanstalk for marking purposes.
Submission Process

1) Upload a zip file of your source code to Canvas, then click “Submit Assignment”.

2) Provide the URL of your website as a comment to your submission.

发表评论

电子邮件地址不会被公开。 必填项已用*标注