How alexalkhatib/melody-playlist-app works
Melody is a Symfony monolith for collaborative music cataloguing and personal playlists. A visitor enters through the Symfony front controller; users can register or authenticate, browse and search the shared catalogue, upload tracks, and manage playlists, while contact messages and admin operations provide separate branches. Controllers coordinate forms, repositories and Twig views; Doctrine-backed entities represent accounts, tracks, genres, playlists and contact messages. The README documents email delivery and the major application features; some subsystem links below rely on that documentation because their implementation excerpts were not provided.
Main entry points: Repository Doctrine repositories · User.php User accounts · ContactController.php Contact messages · Morceaux.php Track records
Components 24
Web experience
- HTTP front controller
public/index.php - Home and discovery
src/Controller/HomeController.php - Twig pages and player
templates - Contact messages
src/Controller/ContactController.php - SMTP mail service
Accounts and access
- Login and security
src/Controller/SecurityController.php - Login authenticator
src/Security/LoginAuthenticator.php - Account registration
src/Controller/RegistrationController.php - Profile management
src/Controller/ProfileController.php
Music and playlists
- Music catalogue
src/Controller/MorceauxController.php - Track form and uploads
src/Form/MorceauxType.php - Playlist management
src/Controller/PlaylistController.php - Playlist selection form
src/Form/PlaylistType.php
Administration
- Admin dashboard
src/Controller/Admin/DashboardController.php - Admin catalogue and CRUD
src/Controller/Admin/MorceauxCrudController.php - Admin user management
src/Controller/Admin/UserCrudController.php
Domain and persistence
- User accounts
src/Entity/User.php - Track records
src/Entity/Morceaux.php - Music genres
src/Entity/Genre.php - Playlist records
src/Entity/Playlist.php - Contact records
src/Entity/Contact.php - Doctrine repositories
src/Repository - SQL database
Other components
- Visitor / user
Connections 35
- Visitor / user → HTTP front controller: sends request
README.md - HTTP front controller → Home and discovery: routes request
README.md - Home and discovery → Doctrine repositories: queries discovery
src/Controller/HomeController.php - Home and discovery → Twig pages and player: renders pages
README.md - Visitor / user → Login and security: submits credentials
README.md - Login and security → Login authenticator: authenticates with
README.md - Login authenticator → User accounts: loads account
README.md - Visitor / user → Account registration: registers
README.md - Account registration → User accounts: creates account
src/Controller/RegistrationController.php - Account registration → Doctrine repositories: uses account repository
src/Controller/RegistrationController.php - Visitor / user → Profile management: manages profile
README.md - Profile management → User accounts: updates account
src/Controller/ProfileController.php - Profile management → Doctrine repositories: queries account activity
src/Controller/ProfileController.php - Visitor / user → Music catalogue: browses and adds tracks
README.md - Music catalogue → Track form and uploads: handles track form
src/Controller/MorceauxController.php - Music catalogue → Doctrine repositories: searches and persists tracks
src/Controller/MorceauxController.php - Track form and uploads → Track records: validates track data
src/Form/MorceauxType.php - Visitor / user → Playlist management: manages playlists
README.md - Playlist management → Playlist selection form: handles selection form
src/Controller/PlaylistController.php - Playlist management → Doctrine repositories: queries and persists playlists
src/Controller/PlaylistController.php - Playlist selection form → Playlist records: edits playlist data
src/Form/PlaylistType.php - Visitor / user → Contact messages: sends message
README.md - Contact messages → Contact records: creates message record
src/Controller/ContactController.php - Contact messages → Doctrine repositories: persists message
src/Controller/ContactController.php - Contact messages → SMTP mail service: sends email
README.md - Admin dashboard → Doctrine repositories: reads dashboard counts
src/Controller/Admin/DashboardController.php - Admin dashboard → Admin catalogue and CRUD: offers catalogue CRUD
src/Controller/Admin/DashboardController.php - Admin dashboard → Admin user management: offers user CRUD
src/Controller/Admin/DashboardController.php - Admin catalogue and CRUD → Track records: manages track records
src/Controller/Admin/MorceauxCrudController.php - Admin user management → User accounts: manages accounts
src/Controller/Admin/UserCrudController.php - Doctrine repositories → SQL database: reads and writes
README.md - Track records → Music genres: references genre
src/Entity/Morceaux.php - Track records → Playlist records: joins playlists
README.md - Playlist records → User accounts: belongs to owner
README.md - Visitor / user → Twig pages and player: listens via player
README.md