Acest document prezintă soluția tehnică propusă pentru implementarea unui sistem de management al unei Case de Productie Muzicala / Case de Discuri folosind PHP și MySQL.
Intră în Pagina Principala (Home)
Aplicația este un sistem centralizat de tip CRUD (Create, Read, Update, Delete) care gestionează operațiunile interne ale unei case de producție. Se adresează exclusiv rolurilor de Administrator și Vizitator (Guest).
| Rol (Tabelul *users*) | Acces și Responsabilități |
|---|---|
| Administrator | Acces complet (CRUD) la toate entitățile. Responsabil de crearea pieselor și alocarea Producătorilor. |
| Vizitator / Guest | Acces public, vizualizare (Read-Only) a informațiilor lansate (Artiști, Albume, Piese). |
Procesele descriu modul în care datele circulă și sunt modificate în sistem, concentrându-se pe rolul Administratorului.
| Proces | Utilizator | Descriere |
|---|---|---|
| Autentificare | Administrator | Controllerul preia datele, Modelul verifică hash-ul parolei din users. Dacă e valid, creează sesiunea ($_SESSION). |
| Gestiunea Resurselor | Administrator | Proces CRUD simplu pe entitățile artists, producers, studios (inserții/actualizări într-un singur tabel). |
| Adăugare Piesă | Administrator | Controllerul primește date, Modelul execută: 1) INSERT în tracks, 2) Preia track_id (cheia primară), 3) Execută multiple INSERT-uri în track_artists și track_producers. |
| Vizualizare Catalog | Administrator / Vizitator | Controllerul cere Modelului date. Modelul folosește interogări JOIN complexe (pe 4-5 tabele) pentru a afișa lista pieselor împreună cu toți Artiștii și Producătorii asociați. |
| Entitate | Descriere |
|---|---|
| Utilizatori | Izolată (doar pentru login Administrator) |
| Utilizatori (Administrator) | Acesta este rolul cu cele mai înalte privilegii și reprezintă utilizatorul principal al aplicației |
| Utilizatori (Vizitator) | Acesta este orice utilizator care accesează aplicația fără a fi autentificat. Poate vedea artistii si muzica scoasa de acestia |
| Artisti | Datele despre artiștii semnați de casa de producție |
| Producatori | Datele despre producătorii afiliați, echipa tehnică responsabilă de înregistrare, mixaj și masterizare |
| Albume | Colectii de piese publicate de catre artisti |
| Piese | Datele despre piesele inregistrate de artisti |
| Studiouri | Datele despre studiourile la care artistii inregristreaza piese |
| Artisti_Piesa | Face legătura între o piesă și toți artiștii implicați. Permite modelarea colaborărilor (featuring-urilor). |
| Producatori_Piesa | Face legătura între o piesă și toți producătorii care au lucrat la ea. Permite ca o piesă să aibă mai mulți producători și ca un producător să lucreze la mai multe piese. |
Schema relațională esențială:
| Tabel (Entitate) | Câmpuri Cheie |
|---|---|
| Utilizatori | id_utilizator (PK), username, email, parola, data_inregistrare |
| Artisti | id_artist (PK), nume, gen, tara, biografie, data_semnarii |
| Producatori | id_producator (PK), nume, tara, data_semnarii |
| Albume | id_album (PK), titlu, id_artist (FK), data_lansare, durata |
| Piese | id_piesa (PK), titlu, durata, id_album (FK), studio_id (FK) |
| Studiouri | id_studio (PK), nume, adresa |
| Artisti_Piesa | id_artist (FK), id_piesa (FK) |
| Producatori_Piesa | id_producator (FK), id_piesa (FK) |
Aplicația este structurată pe modelul Model-View-Controller (MVC):
| Aspect | Metoda | Descriere |
|---|---|---|
| Backend | PHP | Permite demonstrarea cunoștințelor fundamentale de PHP fără dependența de un framework. |
| Baza de Date | MySQL | Bază de date relațională robustă |
| Securitate Parole | Funcția password_hash() | Stocarea parolelor Adminului sub formă de hash-uri sigure (nu text simplu). |
| Vizualizare Catalog | Administrator / Vizitator | Controllerul cere Modelului date. Modelul folosește interogări JOIN complexe (pe 4-5 tabele) pentru a afișa lista pieselor împreună cu toți Artiștii și Producătorii asociați. |
Aceasta ilustrează relațiile dintre entitati si datele din acestea:
Aceasta ilustrează interactiunea Utilizatorilor cu aplicatia: