Skip to content

Design Document

Sid Rao edited this page Aug 6, 2018 · 8 revisions

Music Review Site

This web app allows people to review albums and see others' reviews of albums. ​

Audience

People who are passionate about music and want to share their thoughts on music with the world/their friends. ​

Experience

A user opens the web app, signs in (or creates an account), then views recent reviews to see if there are any interesting albums to listen to. If they want to write a review, they click the "write a review" button, search for the album they want to review, then fill out a simple form which they submit. ​

Technical

Models

  • Album model
    • Album name
    • Artist name
    • Link to album art
  • Review model
    • Username
    • Review body text
    • Rating
    • Summary
    • Recommended or not
  • User model
    • Username
    • Password
    • Reviews (possibly) ​

Views

  • Home - in progress
  • Reviews - mostly complete
  • Search Albums/Write a review - mostly complete
  • Profile - in progress
  • Sign Up - complete
  • View an album's reviews​ - mostly complete

Routes

  • GET /home - displays home page
  • GET /reviews - displays recent reviews
    • GET /reviews/albumid=:id - displays reviews for an album
    • GET /reviews/:id - displays a specific review
  • GET /search_albums - displays page where user can search albums
    • GET spotify-api/search - get search results for album name
  • GET /write-review - displays form where user can write a review
  • POST /write-review - Sends review information to database. Also creates an album if the album isn't already in database
  • GET /profile - displays user's profile page
  • GET /sign-up - displays sign up form
  • POST /sign-up - sends user account information to database ​

Design Elements

  • Color Scheme
  • Font family
  • Text displays (cards, boxes, etc)
  • Logo

Other

  • Spotify API - search for albums

Weekly Milestone

Week 4 - Usable Build

  • Search albums - complete, results displayed into /search/results
  • Sign up/log in - complete
  • Write a review - complete
  • Read a review - complete
  • Browse reviews - somewhat done (could use more functionality)

Week 5 - Finish Features

  • Make sure pages flow together well and are all interconnected - complete
  • View user profile - complete (could use more functionality)
  • View reviews for an album - complete
  • Build a nicer frontend/QOL stuff - in progress
  • Start figuring out live server stuff - done ​

Week 6 - Polish

  • Clean up frontend - in progress
  • Make sure everything works
  • Handle live server launch - complete