Capstone Project - Music Library - JAVAJ2EE
Capstone Project - Music Library - JAVAJ2EE
Project Overview: The Music Library application will be developed with the following key
components:
● J2EE Stack:
○ Java EE: Enterprise application framework.
○ Spring Boot: Microservices architecture.
○ Database : H2/MySql
User Stories:
● User Functionalities:
○ Registration and Authentication:
■ As a user, I should be able to log in, log out, and register with personal
details like email ID and phone number.
○ Song Library:
■ As a user, I should be able to see the list of songs available in the library.
■ As a user, I should be able to view details of a song, including name,
singer, music director, release date, and album name.
○ Search Functionality:
■ As a user, I should be able to search for any song using music director,
album, or artist.
○ Playlist Management:
■ As a user, I should be able to create, view, update, and delete one or
multiple playlists.
■ As a user, I should be able to add one or more songs to a playlist.
■ As a user, I should be able to search for any song within a playlist.
■ As a user, I should be able to perform CRUD operations on playlist songs.
■ I should be able to control playback within the playlist with play, stop,
repeat, and shuffle options.
● Admin Functionalities:
○ Registration and Authentication:
■ As an admin, I should be able to log in and log out of the application.
○ Song Management:
■ As an admin, I should be able to perform CRUD operations on the song
list.
■ As an admin, I should be able to restrict the visibility of songs from users.
○ Notifications:
■ As an admin, I should be able to send notifications whenever new songs
are added to the library.
Sprint Plan
Sprint I Objectives:
● Database Setup:
○ Create the database schema with tables and relationships.
○ Use H2 database for Java Spring Boot services.
● Backend Development:
○ Implement CRUD operations for users and admins.
○ Create a microservice-based structure.
○ Develop templates using HTML and CSS, JSP
Sprint II Objectives:
● Feature Development:
○ Develop search functionality for songs and playlists.
○ Implement CRUD operations for songs by the admin.
○ Implement visibility restrictions for songs.
○ Develop CRUD operations for playlists and playlist songs by users.
○ Implement Spring Security and JWT for authentication and authorization.
Instructions:
● Microservice Architecture:
○ Create separate microservices for user and admin functionalities using Spring
Boot.
○ Register all microservices with Eureka Server.
○ Develop an independent microservice for sending notifications.
○ Utilize H2 database for storage, with each microservice having its own database
instance.
○ Implement Swagger for each microservice.
○ Establish connections between microservices.
○ Use Spring Cloud to share configurations.
○ Implement custom exceptions to handle invalid inputs.
○ Ensure data consistency and implement relationships where applicable.