Motivatie & Obiective

Un procent foarte mare din aplicațiile moderne este reprezentat de aplicații web.
Multe dintre aceste aplicații web, în ciuda complexității pe care o au, se bazează pe modelul clasic “client-server”.
Pentru a înțelege cum funcționează modelul client-server în contextul web modern, este nevoie să înțelegeți cum funcționează protocolul HTTP.

Obiectivele pe care le urmărim sunt:

  • Înțelegerea mecanismelor de comunicare prin HTTP
  • Interacțiunea cu un REST API
  • Înțelegerea conceptelor des folosite în web precum JSON, sesiune, JWT
  • Utilizarea unor biblioteci externe pentru manipularea obiectelor JSON REST API

Descriere generală

Serverul (infrastructură existentă) va expune un API (Application Programmable Interface) de tip REST (Representational State Transfer).
Puteți să vă gândiți la el ca la o cutie neagră ce primește o serie de intrări reprezentate de rute HTTP.
În urma cererilor HTTP, serverul efectuează o acțiune.

În contextul temei, serverul simulează un library online (de filme) și este deja complet implementat.

Clientul (pe care îl veți construi) este un program scris în C/C++ care acceptă comenzi de la tastatură (stdin) și trimite, în funcție de comandă, cereri către server.
Scopul lui este de a funcționa ca o interfață în linia de comandă (CLI) cu library-ul virtual.

Fiecare student are un singur utilizator de admin cu care se poate loga pentru a crea, șterge și vizualiza conturile utilizatorilor normali. Un user de admin are DOAR functionalitatile de gestiune a utilizatorilor, nu si de gestiune a filmelor / colectiilor.