How mynrdvx/b226-csp2-gabriel works
This is a Java command-line music catalog and playlist manager with administrator and user dashboards. Users register or log in; successful authentication routes them by role to catalog-management or user features. The application includes song search and archive/restore, artist and album management, user administration, and user-owned playlists with song membership. The tree shows a layered controller/service/repository design backed by a database connection. Several views and implementations were not sampled, so the graph avoids asserting their internal call wiring.
Main entry points: service Business services · UserDashboardView.java User dashboard · App.java App routing · cliview Catalog views
Components 20
CLI workflows
- App routing
src/main/java/com/joysistvi/recordingapp/App.java - Authentication view
src/main/java/com/joysistvi/recordingapp/cliview/AuthView.java - Admin dashboard
src/main/java/com/joysistvi/recordingapp/cliview/AdminDashboardView.java - User dashboard
src/main/java/com/joysistvi/recordingapp/cliview/UserDashboardView.java - Catalog views
src/main/java/com/joysistvi/recordingapp/cliview - Playlist views
src/main/java/com/joysistvi/recordingapp/cliview
Catalog and playlists
- Song management
src/main/java/com/joysistvi/recordingapp/controller/SongController.java - Artist management
src/main/java/com/joysistvi/recordingapp/controller/ArtistController.java - Album management
src/main/java/com/joysistvi/recordingapp/controller/AlbumController.java - User accounts
src/main/java/com/joysistvi/recordingapp/controller/UserController.java - Playlist management
src/main/java/com/joysistvi/recordingapp/controller/PlaylistController.java - Playlist songs
src/main/java/com/joysistvi/recordingapp/controller/PlaylistSongController.java
Application layers
- Business services
src/main/java/com/joysistvi/recordingapp/service - Domain models
src/main/java/com/joysistvi/recordingapp/model
Persistence
- Song repository
src/main/java/com/joysistvi/recordingapp/repository/SongRepositoryImpl.java - Playlist repository
src/main/java/com/joysistvi/recordingapp/repository/PlaylistRepositoryImpl.java - Other repositories
src/main/java/com/joysistvi/recordingapp/repository - DB connection
src/main/java/com/joysistvi/recordingapp/config/DbConnection.java
Other components
- CLI user
- Relational database
Connections 28
- CLI user → App routing: chooses menu
- App routing → Authentication view: authenticates
- App routing → Admin dashboard: routes admin
- App routing → User dashboard: routes user
- Admin dashboard → Catalog views: uses views
- User dashboard → Playlist views: uses view
- Catalog views → Song management: catalog actions
- Catalog views → Artist management: artist actions
- Catalog views → Album management: album actions
- Admin dashboard → User accounts: administers users
- Playlist views → Playlist management: manages playlists
- Playlist views → Playlist songs: manages songs
- User dashboard → Song management: browses songs
- User dashboard → Album management: browses albums
- User dashboard → Artist management: browses artists
- Song management → Business services: delegates
- Artist management → Business services: delegates
- Album management → Business services: delegates
- User accounts → Business services: delegates
- Playlist management → Business services: delegates
- Playlist songs → Business services: delegates
- Business services → Song repository: uses song persistence
- Business services → Playlist repository: uses playlist persistence
- Business services → Other repositories: uses persistence
- Song repository → DB connection: opens connection
- Playlist repository → DB connection: opens connection
- Other repositories → DB connection: opens connection
- DB connection → Relational database: connects