A music streaming database app with user and admin roles.
MySQLReact.jsJavaScript
The problem
A music catalogue is highly relational (artists, albums, tracks, users). The goal was a working application on a properly designed schema, with sign-in, search and admin controls.
Approach
Designed a relational schema for users, artists, albums and tracks with primary and foreign keys.
Built sign-up and sign-in with validation: matching passwords, no future dates of birth, no duplicate emails.
Added search by title, artist, album, genre and release year, combinable in one query, plus a top-25 songs view.
Added an admin dashboard to add and remove artists, albums and tracks, with integrity checks and cascading deletes.
Results
A complete user and admin flow on a normalised MySQL schema.
Referential integrity enforced for every add and remove operation.