Moodify is a single page application where users can create mood based playlists and work on them with other users. Each mood can hold many songs where each song might be in many moods. Each visitor (visitor-user-admin) have different use-cases allowing them interact with the application per their permission.
Front-end : React (+react router +bcrypt), css
Back-end : Js , Sql Lite (for database)
Internationalization : react-i18next
- Visitors can view moods, songs, and details.
- Logged-in users can create moods and songs.
- Only the creator of a mood can add or remove songs from that mood and edit their mood. (resource level permision)
- Only users with God_Privilege can delete a mood.
- GET: /songs
- GET: /song/:id
- POST: /songs/add
- PUT: /songs/:id/edit
- DELETE: /songs/:id/delete
- GET: /moods
- GET: /moods/:id
- POST: /moods/add
- PUT: /moods/:id/edit
- DELETE: /moods/:id/delete
- GET: /moods/:id/availablesongs (just a helper for addingsongs to moods)
- POST: /moods/:id/songs
- DELETE: /moods/:moodID/songs/:songID/delete
- GET: /users
- POST: /account/register
- POST: /account/login
- /
- /moods
- /moods/:id
- /songs
- /songs/:id
- /users
- /login
- /register