/gigx

The Netflix of concert videos. Server rendered web app with a Node / Express backend

Primary LanguageJavaScript

Project Name

Gigx

Demo

https://gigx.herokuapp.com/

Description

The Netflix of concert videos

User Stories

List of user stories in order of priority/importance.

  • 404 - As a user I want to see a nice 404 page when I go to a page that doesn’t exist so that I know it was my fault
  • 500 - As a user I want to see a nice error page when the server messes up so that I know that is not my fault
  • homepage - As a user I want to be able to access the homepage so that I can see what the app is about and login and signup
  • sign up - As a user I want to sign up on the site so that I can watch all the videos
  • login - As a user I want to be able to log in on the site so that I can continue watching videos
  • logout - As a user I want to be able to log out from the site so that I can make sure no one will access my account
  • concerts list - As a user I want to be able to see all the concert videos available on the site so that I can choose what to watch
  • concert details - As a user I want to be able to view detailed information about the concert video so that I can make sure it matches my tastes
  • concert view - As a user I want to watch the concert videos so that I can enjoy watching the bands I like playing live
  • concert add - As a user I want to add concerts to the database so that other users can enjoy them
  • add to favourites - As a user I want to add concert to my favourites list, so that I can keep track of the videos I like best
  • profile - As a user I want a profile that allows me to store my favourite concerts so that I can return to them whenever I want
  • search - As a user I want to search concerts by title, genre and band so that I can find what I am looking for

Backlog

List of other features outside of the MVPs scope

User:

  • Change password
  • Forgot your password?

User profile:

  • see my profile
  • upload my profile picture
  • see other users profile
  • list of concerts created by the user
  • list concerts the user favourited

Admin rights:

  • Restrict concert adding to users with specific admin rights

Streaming live video:

  • View live concerts that are happening right now

Infinite scrolling:

  • Concerts listings continue to load as you scroll down

Recommendation engine:

  • Suggest concerts you might like based on your favourites and profile

Spotify:

  • Connect with your spotify account to get recommendations based on your favourite bands, genres etc.

Payments:

  • Paywall certain sections of the site (eg. live shows)

ROUTES:

GET / 

GET /user/signup
GET /user/login
POST user/signup - POST Body: email, password
POST user/login - POST Body: email, password
POST user/logout - POST Body: nothing
GET /user/profile - View & edit profile
POST /user/profile - POST Body: email, password, avatar
POST /user/remove - Delete account

GET /concerts - Concert listings
GET /concerts/play/:id - id is a listing id


MODELS

Listing

  • title: { type: String, required: true },
  • url: { type: String, required: true },
  • image: { type: String },
  • artist: { type: String, required: true },
  • genres: [{ type: String, enum: ['Classical', 'Blues', 'Rock', 'Pop', 'Hip-hop', 'Reggae', 'Jazz', 'Country', 'World', 'Electronic', 'Metal', 'Indie', 'R&B', 'Latin'] }],
  • year: { type: Number },
  • duration: { type: Number },
  • location: { type: String }

User

  • email: { type: String, required: true, unique: true },
  • password: { type: String, required: true },
  • avatar: { type: String, default: '/images/avatar.svg' }

LINKS

Trello (Bug tracker)