Question: Your task is to design, develop and test the front - and back - end implementations for a web application as described below. The coursework
Your task is to design, develop and test the front and backend implementations for a web application as described below.
The coursework is intended to familiarise you with the fundamentals of how the web and web applications work, not to duplicate the commercial web development process. The backend of the application must be written in Python using the flask framework. The front end must make use of JavaScript.
Your application will make use of a database. You will be provided with a backend database schema that can be run under sqlite. Sqlite would not normally be used for a deployed web application, but you may use it for this coursework as it is simpler than running an actual SQL server and SQL is not the focus of this module.
The precise functionality to implement is as follows:
On visiting the first page of the site, the user must see a suitable site banner and user interface, plus a list of topics.
Clicking on a topic should display:
o all claims posted in that topic, with the most recently updated newly posted or with a new reply at the top.
o a summary of the opposedequivalent relationships between these claims.
Clicking on a claim should display:
o the claim header and top message,
o all related replies, arranged according to their relationship with the topic. Replies related directly to the claim should appear below it Replies related to other replies should appear below, or within, the reply they relate to with the type of relationship clearly visible.
o links leading to related opposedequivalent claims.
Each topic, claim, or reply should also display the username of the posting user, and the time of posting. Replies should also show their relationship type to the claim or to the previous reply.
Topic and claim pages should be directly linkable. If a user copy and pastes the URL of a topic or claim page, anyone else visiting that URL should arrive at the same topic or claim page.
A user must be able to create an account, giving a username and password. You may ask the user for their name and email address also. There is no need to verify email addresses.
A user must be able to log into an existing account with the correct username and password.
Using a direct link to a topic or claim page, as described in item should not change the users loggedin status. In particular, they should not be logged in as the user who copy and pasted the URL.
The front page, topic, and claim pages should be accessible without logging in If a user is already logged in visiting these pages should not log them out.
The user interface to register an account or log in should appear as a log in button in the corner of each regular page. When clicked, this button should expand into a box overlaying the existing page, offering the username and password prompts and any others necessary. The page should not be reloaded during this process.
When a user is logged in the log in button should be replaced by a log out button.
Once a user has logged in they should be able to post topics, claims, and replies.
When posting a reply, the user should be able to write the text of the reply and choose what it is a reply to the claim, or another reply and what type of relation it has from those listed above A posted reply must be related to either the claim, or another reply by one of the listed relation types.
When posting a claim, the user should be able to write the header message of the claim and choose to relate it to one or more other claims. A claim is not required to relate to any other claims, although it must be part of a topic.
If separate URLs are used for the pages for posting replies, claims, and topics, then directly linking to them when not loggedin should send the user to the front page. The user should not have the opportunity to enter text before being sent to the front page.
The site should not be vulnerable to deep linking, nor SQL JavaScript XSS or HTML injection.
The user interface should be of a standard suitable for a modern web application.
The application should meet reasonable standards for accessibility on desktop platforms. It does not need to be accessible via mobile platforms.
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
