代写Quiz: Practice Final Assessment代做Java程序
- 首页 >> C/C++编程Practice Final Assessment
Part 1
You have been hired to design a web application for an online marketplace where students can buy and sell old textbooks.
The system requires the following features:
Users can search the different textbooks available
Books can be searched/filtered by:
Title
Author
ISBN
Price
Seller's Location
Users can sign-up and log-in
Sellers can advertise their used books to sell.
Buyers can contact sellers and purchase the book if available.
Users can view their purchase/sell history
Thinking about such a system, complete the following tasks:
Question 2 30 pts
Task 1.1
Design a database schema diagram for the system described.
Be sure to include appropriate attributes, relationships and keys.
Be sure to normalise the schema to at least 3rd normal form.
Submit as an image or pdf file.
Question 3 15 pts
Task 1.2
Using an example from the schema you've designed in Task 1.1 describe why your schema satisfies third normal form. (3NF).
Give an example of a change to your database schema that would cause it to violate 3NF.
Question 4 15 pts
Task 1.3
When building relationships between 2 tables in a database schema, placing the foreign key on the correct table is important.
Using examples from the schema you've designed in Task 1.1 discuss why correct placement of the foreign key is important, how that relates to database normalisation, and what happens if it is done incorrectly.
Question 5 30 pts
Task 1.4
Implement your database schema from Task 1.1 in MySQL
When you create the database
Ensure appropriate tables, data types, keys and integrity constraints are present.
Add at least 1 row of test data to each table.
Save a backup/dump of the database as a .sql file in the part1 folder of your GitHub Repository
You can use the space below for notes/comments:
Question 6 15 pts
Task 1.5
Write a SQL query to retrieve the titles, authors, and purchase dates of all books bought by a given user in the last 30 days, ordered from most recent to least recent purchase.
You can assume the user's unique identifying information is already known/provided.
Question 7 15 pts
Task 1.6
Write a SQL query to retrieve the titles, authors, and number sold/traded of the 10 most sold books, ordered from most sold to fewest sold.
Question 8 160 pts
Task 1.7
Implement a basic web application for the contacting a seller feature of this online marketplace.
Use only the technologies covered in this course:
HTML & CSS
JavaScript, AJAX, & basic client-side Vue.js
NodeJS/Express
MySQL
A buyer should be able to:
Select from the available items.
Write a message for the seller of the item.
The message should be stored so that the seller can read it later.
A seller should be able to view their messages.
Only implement the page(s) needed for the above feature and any necessary supporting code on the server.
You do NOT need to implement other features such as payment, or item searching/filtering
You do NOT need to implement login/signup (hard-coding the current buyer/seller will be fine)
Be sure to follow best practices as discussed throughout the course.
Your implementation should be saved in the part1 folder of your GitHub Repository
The marks for this task are assigned as follows:
Up to 30 marks for functionality
Up to 20 marks for HTML & CSS
Up to 20 marks for client side JS and Vue
Up to 20 marks for AJAX requests
Up to 20 marks for server side routes
Up to 20 marks for MySQL integration
Up to 30 marks for good UX, standard compliance, maintainability & security practices
You can use the space below for notes/comments:
Question 9 25 pts
Task 1.8
Gumtree [LINK] (https://www.gumtree.com.au/) is a website that allows people to buy and sell used items.
Identify a feature common to Gumtree, and your implementation from Task 1.7.
Specifically in terms of kinematic load and understandability, discuss how Gumtree and your website compare.
Explain what techniques and approaches you used to make your website accessible for users with impairments and disabilities.
Part 2
The provided part2 folder contains a web application.
This web application is for a small blog.
To run it, you will need to:
1. Navigate your terminal to the part2 directory.
2. Use npm install to install its modules.
3. Start a MySQL server (if not already running)
4. Run npm start.
It has 2 user accounts, alice & bob both using the password password.
Restarting the web application will reset the database.
Question 10 15 pts
Task 2.1
The files provided contain a number of HTML validation errors.
Identify the validation errors and in terms of those specific errors discuss impacts of invalid HTML on usability and accessibility.
General explanations/descriptions that do not relate to the identified errors or their context will not receive marks.
Question 11 15 pts
Task 2.2
The provided JavaScript. files also contains a number of linting errors for the linting rules used in this course.
Identify the linting errors and in terms of those specific errors discuss the role that linting plays in the development of maintainable code.
General explanations/descriptions that do not relate to the identified errors will not receive marks.
Question 12 20 pts
Task 2.3
Specifically using examples from this Part 2 web application, explain the purpose and role of HTTP request methods in web systems.
General explanations/descriptions that do not relate to the Part 2 web application will not receive marks.
Question 13 20 pts
Task 2.4
When a user logs in to this web application their information is retrieved from the database.
Explain how the route /posts is able to output/log the name of the logged-in user making the request without making a database query.
Where is this information stored, and how does this relate to cookies?
General explanations/descriptions that do not relate to this Part 2 web application will not receive marks.
Question 14 15 pts
Task 2.5
This web application contains a Cross Site Scripting (XSS) vulnerability.
Identify the vulnerability and explain the consequences of XSS in terms of this vulnerability.
General explanations/descriptions that do not relate to this Part 2 web application will not receive marks.
Question 15 15 pts
Task 2.6
Using the vulnerability identified in 2.5, use Insomnia to craft and test an exploit that shows an alert box.
Provide a step-by-step walkthrough of how to perform. the exploit.
If you've used Insomnia as part of your exploit, include a copy of the request (using the Copy as Curl option as used in pracs)
Question 16 15 pts
Task 2.7
Using the vulnerability identified in 2.5, use Insomnia to craft and test an exploit that:
Causes regular users to make a blogpost that advertises your shady hacker website.
Makes an admin delete 1 or more posts.
Prompt a user to enter their password and send that password in an AJAX request to your shady hacker website.
Provide a an explanation of how your exploit code works.
If you've used Insomnia as part of your exploit, include a copy of the request (using the Copy as Curl option as used in pracs)
Question 17 30 pts
Task 2.8
Using the list below, fix the issues and make the improvements identified.
Fix the validation and linting issues identified in 2.1 & 2.2.
Fix the XSS injection vulnerability identified in 2.5.
Your fixed web application should be saved in your GitHub Repository
The marks for this part are assigned as follows:
10 marks for validation and linting issues fixed
20 marks for XSS issues fixed
You can use the space below for notes/comments: