Logo

Tema proiect: Activităţile unui hipermarket

Proiect realizat de: Tudor Rares-Alexandru

Grupa: 241

1. Descrierea arhitecturii aplicației

Aplicația web gestionează activitățile unui magazin online care vinde produse de papetărie. Componentele principale ale aplicației sunt: Clienții si Produsele.

Rolurile utilizatorilor aplicației

Client

Clientul este utilizatorul principal al aplicației, care accesează magazinul online pentru a vizualiza produse, a le adăuga în coș și a plasa comenzi.

Acțiuni:
  • Înregistrare cont: Creează un cont nou completând numele, emailul și parola.
  • Autentificare: Se conectează în contul personal pentru a putea comanda produse.
  • Vizualizare produse: Poate vedea toate produsele disponibile, organizate pe categorii și subcategorii.
  • Căutare produse: Poate filtra sau căuta articole după denumire sau categorie.
  • Vizualizare detalii produs: Accesează pagina unui produs pentru a vedea descrierea, stocul și imaginea.
  • Adăugare produse în coș: Selectează articole și le adaugă într-un coș de cumpărături temporar (memorat in sessionStorage).
  • Modificare cantitate în coș: Poate șterge, mări sau micșora cantitatea fiecărui produs adăugat.
  • Finalizare comandă (checkout): Introduce adresa de livrare și metoda de plată pentru a plasa comanda.
  • Vizualizare comenzi anterioare: Poate vedea istoricul comenzilor plasate anterior.
  • Deconectare: Închide sesiunea activă.

Administrator

Administratorul are rolul de a gestiona catalogul de produse, categoriile și comenzile din magazin. Are acces la un panou de administrare inaccesibil clienților obișnuiți.

Acțiuni:
  • Autentificare: Se conectează în panoul de administrare folosind cont de tip “admin”.
  • Vizualizare panou administrare: Accesează interfața de control care afișează produsele, comenzile și categoriile.
  • Adăugare produs nou: Completează formularul cu nume, descriere, preț, stoc și imagine. Produsul este salvat în baza de date.
  • Modificare produs existent: Poate edita detaliile unui produs (preț, descriere, stoc).
  • Ștergere produs: Elimină definitiv un produs din catalog.
  • Adăugare categorie/subcategorie: Creează noi categorii pentru organizarea produselor.
  • Ștergere categorie/subcategorie: Elimină o categorie dacă nu mai conține produse active.
  • Vizualizare comenzi: Poate vedea comenzile plasate de clienți, împreună cu statusul fiecăreia.
  • Actualizare status comandă: Poate marca o comandă drept “paid” sau “shipped” după procesare.

Structura bazei de date

Baza de date conține următoarele tabele, fiecare reprezentănd o entitate principală:

Tabel Descriere
UTILIZATOR Datele utilizatorilor inregistrati (nume, email, rol).
CATEGORIE Categoriile principale ale produselor.
SUBCATEGORIE Subdiviziuni ale categoriilor, legate prin category_id.
PRODUS Conține informațiile produselor: nume, descriere, stoc, imagine, subcategorie.
COMANDA Conține comenzile și starea acestora (pending, paid, shipped).
PRODUSE_COMANDA Conține detaliile fiecărui produs inclus într-o comandă.
ADRESA Conține adresele salvate ale utilizatorilor.

Relații între entități

Tabele care reprezintă aceste entități sunt reprezentate in diagrama conceptuală a bazei de date din phpMyAdmin:

Diagrama bazei de date

2. Descrierea soluției de implementare

Fluxurile principale care descrie modul in care utilizatorii si administratorii interactioneaza cu magazinul online sunt descrise în urmatoarele diagramele UML:

Fluxul utilizatorului (Client)

Următoarea diagramă de activitate ilustrează procesul de cumpărare al unui client si ilustrează parcursul complet al acestuia, de la accesarea site-ului, autentificare și navigarea prin produse, până la adăugarea articolelor în coș și finalizarea comenzii.

Diagrama activitate client

Fluxul administratorului

Diagrama de mai jos prezintă pașii efectuați de un administrator si prezintă activitățile interne de gestionare ale magazinului: autentificarea în panoul de control, adăugarea și modificarea produselor, organizarea categoriilor și actualizarea comenzilor.

Diagrama activitate admin