Implementation of fatEar application for CS-6083
- Claudia Shao
- Hansaem Park
- Kumud Ravisankaran
- Framework: Flask
- Database: MySQL
- Hosting: Local server
- Libraries: Bootstrap, jQuery
- Project management tool: Git
- PyMySql, Flask should be installed.
- The MySQL connection variable is in init1.py file.
flask --app init1 run
- Users can search the database
- by song, and/or
- by artist name
- (by first name or last name or both), and/or
- by album name and/or
- by a rating threshold (rating of a song) and/or
- by genre
- The more parameters we specify - the more specific the search will be.
- Search is based on a fuzzy text match for string fields and a rating threshold for stars
- If a song has been rated more than once - an average rating will be returned in the results
- Search results will contain rating information only if ratings are present for songs matching the parameters
- If no search parameters are specified
- If nothing matches the search parameters
- Users can see all the playlists they have created since the beginning
- Users can create a new playlist using this page
- They can add a playlist name, choose songs from the database and add a description for their playlist
- Songs they add for a new playlist shall be displayed in the bottom of the screen once its inserted
- User can make only one playlist with the same name
- User must choose at least one song
- User must have a playlist name
- Users can post review or rating on song/album.
- Users can see the number of reviews on song/album
- Users can see the average ratings on song/album.
- Users can become or no longer become a fan of artists.
- Users can see the number of fans of the artists.
- User can edit/delete only their review or rating on song/album (colored in blue).
- When a user post review or rating on song/album already existed, error message is displayed.
- When a user try to post with blank field, error message is displayed.
- When a user edit rating on song/album with default value (Rate Song), error message is popped up.
- Users can see reviews or ratings on song/album posted by friends, followers or friend & follower since they last logged-in.
- Users can see new songs by artists that they are fan of. (new songs: since the user last logged-in)
- Users can see the total number of new feed item since they last logged-in.
- Users can see indication if they have no followers nor friends.
- Users can see indication if they have followers or friends but they haven't updated any posts(reviews/ratings on songs/albums).
- Users can see indication if they are not fan of any artists.
- Users can see indication if they are a fan of some artists but they haven't released any new songs yet since the user became a fan of them.
- Users can create an account by filling in Username, password(hashed before inserting into the database for more security), first/last name, and nickname
- Once the account has been created, the user will be redirected to the login page
- User can input their username and password to log into FatEar
- lastlogin time is perserved as a milestone during a logged-in session and updated when user logs out
- Multiple users cannot register with the same username, error message will be displayed.
- Users cannot leave any field blank on the registration page, error message will be displayed.
- Users cannot leave any field blank on the login page, error message will be displayed.
- Users can send friend request to another user
- Users can see a list of friends they currently have
- Users can unfriend another user
- Users can see friend requests sent to them, and decide whether to accept or decline
- Users cannot friend/unfriend themselves, error message will be displayed.
- Users cannot friend another user that is already their friend, or send friend requests twice, error message will be displayed.
- Users cannot remove a user who is not their friend, error message will be displayed.
- Users cannot friend a username that doesn't exist, error message will be displayed.
- Users can follow another user
- Users can see a list of followers they currently have, and a list of users they are following
- Users can unfollow another user, or remove a follower
- Users cannot follow/unfollow themselves, error message will be displayed.
- Users cannot follow another user they are already following, error message will be displayed.
- Users cannot remove a follower who is not their follower, error message will be displayed.
- Users cannot unfollow a user who they are not following, error message will be displayed.
- Users cannot follow/unfollow a username that doesn't exist, error message will be displayed.