Proiect TW Uaic info an 2 sem 2 Spilevoi Bogdan si Anton Cosmin
Books on Web
Acest document oferă o prezentare de ansamblu asupra arhitecturii aplicației web pentru gestionarea cărților și favoritelor, inspirată de modelul C4 (Context, Container, Component, Code).
Aplicația este o platformă web prin care utilizatorii pot:
- vizualiza cărți (din baza locală sau din Google Books),
- salva cărți în lista de favorite,
- citi cărți și urmări progresul,
- scrie recenzii,
- accesa fluxuri RSS,
- gestiona contul propriu.
Stakeholderi principali:
- ✅ Utilizator autenticat
- 🔐 Administrator
- 🌐 Serviciul extern Google Books API
Arhitectura este construită pe modelul MVC (Model-View-Controller) și include următoarele containere logice:
Container | Rol principal | Limbaj / Tehnologie |
---|---|---|
Frontend | Interfața utilizator (HTML, CSS) | HTML + TPL + CSS |
Backend | Logica aplicației și gestionarea datelor | PHP |
Bază de date | Persistența datelor (cărți, utilizatori etc.) | Postgres |
API extern | Serviciul Google Books | REST API JSON |
Aplicația este organizată în componente după modelul MVC:
controllerauth.php
– autentificare, logarecontrollerbook.php
– listare, căutare, detalii cartecontrollerhome.php
– homepage cu overviewcontrollersettings.php
– gestionarea setărilor
- Conțin logica de acces și manipulare a datelor pentru cărți, conturi, setări, recenzii etc.
- Interfață HTML pentru utilizator.
- Pagini precum
home.tpl
,auth.tpl
,book.tpl
,settings.tpl
.
/api/favorite
– adaugă cărți la favorite/api/read
– marchează progresul citirii/api/rss
– oferă feed XML/api/review
– trimite recenzii
Logica este împărțită în clase și funcții cu responsabilități clare, respectând principiile separării preocupărilor. Exemple:
ModelBook::getAllBooks()
ModelAuth::validateLogin($user, $pass)
ViewHome::render($data)
- Parole criptate
- Validare input server-side
- Sesiuni PHP pentru autentificare
- Exportul datelor doar pentru userul logat
- PHP 8
- Postgres
- HTML5 + CSS
- Scholarly HTML (pentru documentație)
- Google Books API (REST)
- RSS (XML feed)
Aplicația este construită modular, extensibilă și separă clar preocupările între interfață, logică și date. Arhitectura bazată pe MVC și principii inspirate din Modelul C4 asigură claritate, mentenabilitate și scalabilitate.