Final Project
Due: 11:00pm, Wednesday May 11, 2022
Description
The goal of this project is to develop a basic data driven web application. The theme of your project is up to you, but it must meet the following criteria:
The backend implementation must use ExpressJS.
The application must run on port 3000.
The application data must be stored in a Sqlite database.
All user defined data that can be validated, must be validated before accessing the database.
All access to the database must use prepared statements when processing user defined input.
The interface to the application data must be via a REST API using JSON as the data exchange format.
The root URL for the REST API must be
/api/
.A user must be able to manipulate data in some fashion. (It does not necessarily need to use all CRUD operations depending on the theme of the application.)
The application view must be updated via DOM manipulation and HTTP requests to the REST API.
The application view must have at least three separate “pages”.
The web application must be sufficiently complex. (This criteria is somewhat subjective; if you think your idea for the web application is too simplistic, then ask me.)
The HTML shell document must be named
index.html
.The body of HTML shell document must only contain
template
elements and a singlediv
element.The JavaScript implementation must be in its own file(s). That is, there must not be any
<script>
elements in the HTML shell that contain code.
For this project, you can earn up to a 5% bonus towards your final course grade by exceeding the basic criteria listed above. The bonus points will be awarded at my discretion depending on the quality of the enhancements. If you choose to implement additional features, add a file named README.txt
to your submission containing the details of the additional features.
Turning in the Assignment
For this assignment, you must turn in a zip file containing all files necessary to run your application. DO NOT INCLUDE the node_modules
directory. Submit the zip file to the appropriate folder on D2L.
Grading Criteria
Grading (out of 100 points):
- 10 points – Documentation
- 10 – complete documentation that follows the standards
- 5 points – incomplete documentation and/or documentation that does not follow the standards
- 0 points – no documentation
- 90 points – Implementation
- 90 points – correct implementation of the specification
- 70 points – mostly correct implementation the specification
- 50 points – partially correct implementation of the specification
- 0 points – incorrect implementation