代写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:




站长地图