Reference no: EM133156394
ITECH3108 Dynamic Web Development
Assessment - Full-stack Web Application
Overview
For this assessment task, you will design, implement, and debug a full-stack web application, creating both a back-end API and appropriate front-end.
Learning Outcome 1: Contrast the capabilities and limitations of client-side and server-side web code.
Learning Outcome 2: Detect opportunities for increasing security and privacy of web applications.
Learning Outcome 3: Develop client/server web applications using client-side and server-side code.
Learning Outcome 4: Connect to and manipulate a database management system programmatically using server-side code.
Learning Outcome 5: Design and implement a web-based Application Programming Interface (API).
Learning Outcome 6: Design, develop, test, and debug client/server web applications to provided specifications.
Assessment Details
For this assignment, you will build upon skills acquired through the course and completion of prior assignment work to develop an online poetry sharing site. Give it a cool name, like "Poetry zone" or something.
The poetry sharing site has the following functional requirements:
• Visitors (i.e. members of the public) can sign up to become a Member, supplying a username and password;
• Once signed up, members can add Poems that they have written, with a title and a body;
• Both visitors and members can see a global list of Poems;
• Members can comment on each poem
• Members can give a rating to each poem - it is up to you to decide what form this rating takes. A single member can only rate any given poem once;
• The global list of poems must show an aggregate rating for each poem;
• Members can view a list of the poems they have given a positive rating; and
• To prevent abuse, members can choose to hide particular comments on their own poems, without affecting the rating.
The poetry site has the following non-functional requirements:
• The site must be structured as an HTML front-end with a RESTful API back-end; Compared to your previous assignment, it's ok to have multiple HTML pages, and a mix of dynamically-generated HTML and API-based functionality;
• At minimum, the following functions, if implemented, must using a RESTful API approach, without whole-page reloads at the client:
o Commenting on a poem
o Rating a poem
o Hiding a comment
• The API must be protected from unauthorized use - that is, members should not be able to comment on behalf of other users via the API, for example;
• Poems, comments, ratings and member information must be saved in a relational database, either PostgreSQL or SQLite; and
• Passwords must be securely stored (use Argon2 or bcrypt at minimum, not plain text or MD5)
Initial data
Include enough initial data to be an effective demonstration of your site - at least 3 users, 5 poems, and 10 comments/ratings. At least one poem should have no ratings at all.
If you choose to use PostgreSQL, include an SQL script that will generate your database with your assignment submission. Such a script should also create the database.
If you choose to use SQLite, include your SQLite file in your submission.
Report
Include in your submission a report containing:
• A brief description of your assignment architecture, including a list of URL patterns used in your API;
• A statement indicating which features of the assignment you completed;
• A statement indicating what help you received, if any, from outside sources. Include this statement even if you completed the assignment entirely on your own. You do not need to acknowledge ITECH3108 course materials.
If you include the creative works of others in your database (existing poetry), acknowledge those sources appropriately.
Attachment:- Full-stack Web Application.rar