31748 / 32516 Internet Programming
An Online Car Rental System using AJAX and JSON
Due 11:59 pm, Friday 14 May 2021
In this assignment, you are required to develop a simplified on-line business portal (website)
for a Car Rental Company: “Hertz-UTS”. The objectives of this assignment are as follows:
- Learn how to design your own data structure, by which, you could form your own
database using JSON Object
- Learn how to use AJAX technique to send and retrieve data from the web server
asynchronously without interfering with the display and behaviour of the existing
- Learn how to parse a JSON file, extract the node values/attributes and store them in
session arrays of your DHTML pages.
- Learn the usage of session: how to set, update, delete and destroy the session.
- This assignment is done individually and it counts as 35% towards your final assessment.
- The website should be dynamic which means all the data are loaded dynamically from the
JSON file. If the contents in the JSON file change (e.g., the mileage changes to 12354 for
id=1), the pages should change as well.
- The vehicles available for renting can be divided into three categories: Sedan, Wagon and
SUV. Each car to be stored in a JSON file is associated with the following 10 attributes:
Category Availability Brand Model Model
sedan Y/N Toyota Camry 2013 10000 petrol 5 $120 xxxxxxx
- Car image samples are provided on the CANVAS
You need to create a folder “images” stores the pictures for the cars. Each image is named
according to the model of the car and the image types all are “jpg”.
Figure 1. The screenshot of the folder “images”.
This assignment requires that you do the following steps.
- Design a JSON file “cars.json” with the structure specified in requirement 3 and store at
least 10 + car data items in the JSON file. Set up the availability state to “True” for 70%of
cars in the Warehouse, and a “False” state to the other 30%. (80 marks).
- Use AJAX to load the JSON file “cars.json” and extract the data and save it as arrays in
your webpage. (50 marks).
- Display the cars in a nice tabular format using the above arrays on your webpage for users
to select. (50 marks)
Figure 2. An example of displaying cars for selection on the webpage.
- Provide a “button” to add the car to the reservation “shopping cart”. Use AJAX to check the
availability of the car after clicking the button (the field “availability” is included in
cars.json). If the availability is “True” then add the car to the reservation shopping cart
and prompt success; If the availability is “False” then alert that “Sorry, the car is not
available now. Please try other cars”. (50 marks)
Figure 3. Information prompted after clicking the “Add to cart” button.
- Provide a button/link to view the reservation shopping cart. Display the cars which have
been added into the reservation shopping cart (hint: use session to store the data). Users
can set the “rent days” or delete cars in the shopping cart. (50 marks).
Figure 4. An example of the reservation shopping cart.
- Provide the checkout button to check if there are cars in the shopping cart. If no, then alert
“No car has been reserved.” and jump to the first page. If yes, validate the “rental
- Design the checkout page which displays a purchase form asking the user to fill in their
delivery details (name, email address, mailing address, city, state, post-code and payment
type). All these fields must be completed for the order to go ahead. Validate the format of
the email address. If all details are filled correctly, then direct the user to a page showing
the delivery details and the cost. (40 marks)
Figure 5. An example of the checkout page.
You will submit the assignment details, including URL of the website and a
compressed file containing all your source code through CANVAS after the submission
link is activated, but prior to the due date.
Note that you need to submit both a live link (URL) pointing to your running system as
well as all your source code stored in a compressed file (.zip).
After the indicated deadline submissions will not be accepted!
Students are reminded of the principles laid down in the "Statement of Good Practice and
Ethics in Informal Assessment" in the Faculty Handbook. Assignments in this subject
should be your own original work. Any collaboration with another participant should be
limited to those matters described in the "Acceptable Behaviour" section. Similarly, any
group work should be the result of collaboration only within the group. Any
infringement by a participant will be considered a breach of discipline and will be dealt
with in accordance with the Rules and By-Laws the University. The Faculty penalty for
proven misconduct of
this nature is zero marks for the subject. For more information, see:
Further, copying of resources (e.g. images, blocks of HTML) from other web sites without
acknowledgement of the source constitutes plagiarism, and is considered as unacceptable
behaviour. While you should feel free to use other web sites for inspiration, you should not
cut-and-paste "source code".
The exception to the above rule is web sites which make available free-to-download
archives of images, scripts, etc. You should check any restrictions before using such
material (e.g. many image sites require you to include a link back to their home page if you
use their images). Further, for the purposes of this subject, you should also acknowledge the
source of any such material by using a comment in your HTML file. For more