Rythma is a backend service (written in Java) that simulates a music streaming service. It has a CLI interface that allows users to interact with the service. The service is capable of managing users, songs, playlists, podcasts and more.
- User
- Artist
- Podcast Host
- Playable Item
- Song
- Podcast Episode
- Audio Collection
- Playlist
- Album
- Podcast
- Notification
- User Management
- Register User
- Login/Logout User
- As a User
- Create/Delete Playlists
- Add/Remove Songs from Playlist
- Follow or unfollow Playlists
- View/clear notifications (e.g.: when a playlist you follow adds another song)
- Search for Songs/Playlists/Albums/Podcasts/Artists/Podcast Hosts
- As an Artist (+ all User features)
- Create/Delete Albums
- Add/Remove Songs from Albums
- Update description & social media links
- As a Podcast Host (+ all User features)
- Create/Delete Podcasts
- Add/Remove Episodes from Podcasts
- Update affiliation
- Singleton - for services like
UserService,MusicServiceetc. - Strategy - for different
Searchstrategies - Factory - for creating
Usersetc. - Command
- wraps every request from the CLI
- provides an elegant way to handle I/O
- makes appropriate calls to the service layer and to the audit system