Music review site where users can submit reviews of musical performances, like IMDb. ReSTfull web API with front-end framework in angular and back-end implementation in node.js, and an authentication protocol providing different levels of functionality to authenticated vs. unauthenticated users.
The architecture of the application is shown above.
- Web Tier: The front end, which can accept inputs and display the processes output, provided to the user to interact with the application in a controlled environment.
- Application Tier: Components in the Application Tier process the inputs received from the web tier in application tier by interacting with the components defined in the Database Tier.
- Database Tier: Details of the user, reviews, playlist and ID3V1 were stored in a no-SQL database such as Local MongoDB. Files such as MP3, images and icons were stored/committed into the repository.
For the above model the database created had the below tables, listing the columns in the table.
On accessing the website user is directed to the Login Page, where the person can choose from either of the below, and each path is authenticated/verified using the corresponding method and routed to the respective page. The access to admin page is determined based on ‘isAdmin’ flag for that user in the User database.
Each content access page has a different set of controllers. All the requests to the user and admin controllers are first authenticated for validity using the JWT authentication token.
- Auth frontend: https://www.youtube.com/watch?v=6n8T_rXXWQg
- Firebase: https://fireship.io/lessons/angularfire-google-oauth/
- Node js: https://github.com/academind/node-restful-api-tutorial/tree/05-add-mongodb-and-mongoose
- Angular: https://coursetro.com/posts/code/174/Angular-8-Tutorial-&-Crash-Course
- Email verification: https://www.youtube.com/watch?v=gzDB0ZGOjA0