diff_months: 12

ITECH3108 Nail Polish Voice Assignment

Download Solution Now
Added on: 2023-05-17 04:51:57
Order Code: clt180596
Question Task Id: 0

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.

Important:

This assignment specifification is generated just for you, 30375857. Do not distribute this specification. If your personal specification is made publicly available online, academic misconduct charges may be applied.

Timelines and Expectations

Percentage value of task: 30%
Due: Refer to Course Description

Learning Outcomes Assessed

The following course learning outcomes are assessed by completing this assessment:

  • K2. Contrast the capabilities and limitations of client-side and server-side web code
  • K3. Detect opportunities for increasing security and privacy of web applications
  • S1. Develop client/server web applications using client-side and server-side code
  • S2. Connect to and manipulate a database management system pro-grammatically using server-side code
  • S3. Design and implement a web-based Application Programming Interface (API)
  • A1. Design, develop, test, and debug client/server web applications to provided specification

Assessment Details

For this assignment, you will build upon skills acquired through the course and completion of prior assignment work to develop Nail Polish Voice, an online link sharing site for nail polish enthusiasts to gather and make friends.

The nail polish link 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 Links that they have found, with a title and a description;
  • Both visitors and members can see a global list of Links (the “front page”);
  • Members can give a rating to each link - it is up to you to decide what form this rating takes. A single member can only rate any given link once;
  • The front page must show some kind of aggregate rating for each link, and should be sortable by Most Recent or Highest Rated;
  • Members can view a list of links they have given a positive rating (ie favourites);
  • Members gain Polish Points if people rate their links positively, and lose Polish Points if people rate their links negatively; and
  • Members can choose to hide particular links, without affecting the rating.

Nail Polish Voice 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;
  • Apply some very basic visual design that will be attractive to nail polish enthusiasts;
  • Links in the front page or favourites page should display with the name and Polish Points of the member who submitted it;
  • At minimum, the following functions, if implemented, must use a RESTful API approach, without wholepage reloads at the client:
    • Posting a new link
    • Rating a link
    • Hiding a link
  • The API must be protected from unauthorized use - that is, members should not be able to rate links on behalf of other users via the API, for example;
  • Links, ratings and member information must be saved in a relational database; and
  • Passwords must be securely stored (use Argon2 or bcrypt at minimum, not plain text or MD5)

Database

Include enough initial data to be an effective demonstration of your site – at least 3 users, 5 links, and 10 ratings. At least one link should have no ratings at all. You may choose to use PostgreSQL (as covered in course materials) or SQLite as your database backend.

  • 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. Please name your database ITECH3108_30375857_a2.
  • If you choose to use SQLite, include your SQLite fifile in your submission.

Include this data as part of your written report, including a usable password for at least one user.

(It's ok if multiple users have the same password)

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 text), acknowledge those sources appropriately.

Hints

This assignment requires you to demonstrate complex problem-solving skills; minimal guidance on the structure of your solution will be provided in this assignment specification.

Your database design, API design, back-end and front-end software architecture are entirely up to you, supported by lecture and lab activities. You can design how Polish Points work. Enjoy and/or fear the freedom!

You are free to discuss the architecture of your solution with your peers, as long as you acknowledge themin your report. Under no circumstances share code solutions.

Bonus optional fun challenge activity 1 - Better Average Ratings

Sorting by ratings is often done using an average rating. Is a link with just one positive review and no negatives better than one with 50 positive reviews but one negative? Using an average rating suggests yes!

Bonus optional task:

Solve the aforementioned problem so that the ratings take into account the uncertainty around review scores. You might consider so-called Bayesian Average Ratings. Explain your approach in the report.

There are insufficient marks allocated to this task, it's not based on any course materials, and is just something exciting you can try.

It is possible to attain full marks for this assignment without completing this challenge task.

Bonus optional fun challenge activity 2 - Svelte, Vue, or React

There are many, many ways to write front-end web applications. Explore one!

Bonus optional task:

In addition to your regular ("vanilla") JS front-end, reimplement your front end using one of these three popular front-end frameworks:

Svelte - https://svelte.dev/
Vue.js - https://vuejs.org/
React - https://reactjs.org/
Write a brief comparison in your report.

Again, there are insufficient marks allocated to this task, and there is no lecture support.

It is possible to attain full marks for this assignment without completing this challenge task.

Further details

Documentation

Include a written report containing:

  • A list of parts of the assignment you have completed or not completed (a statement of completion).
  • Details of specific assistance you received from people other than your lecturer or tutor, and the names of those assisting (a statement of assistance).
  • Anything interesting or cool you'd like to draw your marker's attention to (a statement of awesomeness).

Assignment support

This assignment is supported by the first 10 weeks of lectures and labs. Work on the assignment should be spread over several weeks after the relevant lab has been mastered.

  • Uploaded By : Katthy Wills
  • Posted on : May 17th, 2023
  • Downloads : 0
  • Views : 200

Download Solution Now

Can't find what you're looking for?

Whatsapp Tap to ChatGet instant assistance

Choose a Plan

Premium

80 USD
  • All in Gold, plus:
  • 30-minute live one-to-one session with an expert
    • Understanding Marking Rubric
    • Understanding task requirements
    • Structuring & Formatting
    • Referencing & Citing
Most
Popular

Gold

30 50 USD
  • Get the Full Used Solution
    (Solution is already submitted and 100% plagiarised.
    Can only be used for reference purposes)
Save 33%

Silver

20 USD
  • Journals
  • Peer-Reviewed Articles
  • Books
  • Various other Data Sources – ProQuest, Informit, Scopus, Academic Search Complete, EBSCO, Exerpta Medica Database, and more