Feature List - WesTrinhKL/TopFun GitHub Wiki

Features MVP

Sign up / Login / User Authentication

  • The application's users will be able to sign up with a username, email and password.
  • Usernames will be unique, meaning no one else can have the same username (validations are set in place to ensure this).
  • Users will login using their username or email and password through an authentication service.

Authorization

  • Features that are only available once the user logs in:
    • Editing their profile.
    • Make, update and delete list and list items
    • Like a list
    • Favorite a list
    • View lists
    • View other users profile, their list genre, and lists
    • Follow a user.
  • DEMO user
    • This feature to allow a new user to test the website functionality without having to sign up.
    • The demo user will have limited authorization to certain features.

List

  • Each list will contain list items (similar to a photo album containing many photos)
  • Logged in users
    • Can create, edit and delete lists.
    • name a list (i.e. "Top 10 players in the NBA", "Top 10 React resources")
    • add cover photo to list
  • Users that are not logged in
    • Can view lists and view lists on a different users profile page.
    • Cannot favorite a list unless logged in.
    • Cannot like a list unless logged in.

List Items

  • Logged in users
    • Can add, edit and delete a list item.
  • Users that are not logged in
    • Can view lists and view users profile pages.
    • Cannot follow a user unless logged in.
    • Cannot favorite (star) a list unless logged in.
    • Cannot like a list unless logged in.
  • List item card will contain:
    • title
    • an image
    • description
    • link (optional)

List Genre/Album

  • A list will have a main category or genre that it can be tagged under (i.e. "basketball", "manga", "React", "Software Engineering Resources" ,etc.)
  • So a list item belongs to a list, and a list belongs under a list genre / album.

Likes

  • For liking a list, logged in users can do the following
    • Create a like on a list.
    • Unlike a list.
  • All users can view likes on a list.

Following a user

  • Logged in users can follow another user.
  • Users that are not logged in
    • Cannot follow a user unless logged in.

User feed (home page)

  • When logged in, user will be able to see:
    • All lists for people they follow (follow tab).
    • All lists recommendations (main global feed tab).

README

  • Brief explanation of what the app is and does.
  • How to start development environment.
  • Technologies used.
  • Link to live site.
  • Link to Wiki docs.
  • Discussion of two features that show off the team's technical abilities.
  • Discussion of both challenges faced and the way the team solved them.
  • Code snippets to highlight the best code.

Bonus

*search for a lists