Sari la conținutul principal

Tehnologii Web

img

Despre

Materia de tehnologii web se concentrează pe înțelegerea și dezvoltarea competențelor necesare pentru crearea și gestionarea aplicațiilor și site-urilor web. Această disciplină combină cunoștințe de programare cu concepte specifice mediului online pentru a oferi studenților instrumentele și abilitățile necesare pentru a crea aplicații web eficiente și interactive.

În cadrul acestei discipline, vom utiliza, atât în laborator, cât și în elaborarea proiectului, următoarele tehnologii:

  • Docker pentru mediul de lucru
  • PostgreSQL ca bază de date
  • .NET 8 sau Spring Boot 3 pentru dezvoltarea de server
  • React.js pentru implementarea interfeței de utilizator

Scopul laboratorului

Laboratorul de tehnologii web își propune să ofere studenților cunoștințe fundamentale în acest domeniu și a fost conceput pentru a le furniza concepte esențiale în dezvoltarea aplicațiilor web. Prima jumătate a laboratorului va fi dedicată dezvoltării backend-ului în cadrul platformei .NET sau Spring iar a doua jumătate se va concentra asupra dezvoltării frontend-ului.

Curs

Echipa

Cerințe proiect

Pentru realizarea proiectului trebuie să vă alegeți o temă de proiect pentru o aplicație web. La laborator se va face .NET / Spring (backend) și React (frontend) dar se pot folosi și alte tehnologii, mai precis Angular (frontend) pentru cine este familiarizat. Nu se vor accepta proiecte scrise cu alte tehnologii cum ar fi Node.Js (backend), Django, PHP sau Android.

sugestie

Va recomandăm sa lucrați cu tehnologiile de la laborator și să plecați de la aplicația demo a noastră. Veți învăța tehnologii noi și în același timp veți putea implementa mai ușor și mai repede aplicația pentru proiect pentru că aveți deja multe componente pe care le puteți folosi.

sugestie

Dacă alegeți să folosiți Spring, vedeți că aveți posibilitatea să îl folosiți și cu Kotlin în loc de Java. Kotlin este un limbaj mai flexibil decât Java și este interoperabil cu acesta, toate pachetele de Maven sau Gradle pot fi folosite cu Kotlin.

pericol

Dacă lucrați în Spring, vă rugăm să nu folosiți EntityManager sau alte primitive expuse de ORM, folosiți interfețele repository de JPA și adnotările corespunzătoare pentru a interacționa cu ORM-ul și mai ales folosiți JPQL pentru a face cereri SQL complexe, nu să construiți de mână cererile SQL. De asemenea, pentru baza de date folosiți pentru migrări Liquibase sau Flyway dacă lucrați cu Spring, iar pentru Swagger folosiți pachetul de OpenAPI ca să-l aveți integrat în backend.

Backend

  • Repository Pattern/ORM
    • Minim 5 entități (în afara de tabele de merge pentru relații many-to-many) – 3 puncte
    • Relații entități (one-to-one, one-to-many, many-to-many) – 3 puncte
    • Configurare relații utilizând FluentAPI/Atribute – 3 puncte
  • Basic JWT Auth
    • Permisiuni bazate pe roluri cu logica de verificat drepturile în backend – 3 puncte
    • Autorizare controllere – 3 puncte
  • CRUD Controllers
    • Controllere Basic (Get cu ID, Get cu listă, Post, Put, Delete + altele) – 4 puncte
    • Error Handling (error codes) – 3 puncte
  • DTOs
    • Utilizarea de DTO-uri pentru interacțiunea cu controllerele (request/response) – 5 puncte
  • Servicii
    • Implementarea unei notificări trimise pe mail la executarea unei acțiuni alese (use MailTrap) - 3 puncte

Frontend

  • Register
    • Formular register - nume, alte informații relevante, username/email + parolă/validare parolă (trebuie să funcționeze apoi login-ul) – 4 puncte
  • Routing
    • NavBar - minim 3 pagini (în afara de cele din scheletul de cod) – 4 puncte
  • Table views
    • Două pagini cu tabele sau liste paginate, cu minim 4 coloane/4 câmpuri cu informații afișate fiecare – 4 puncte
    • Căutare – 3 puncte
    • Paginare – 2 puncte
  • Add/Edit/Delete date (pentru fiecare tabel/listă)
    • Adăugare intrare – 2 puncte
    • Editare intrare – 2 puncte
    • Ștergere intrare – 2 puncte
    • Modală/dialog de confirmare (la ștergere) – 2 puncte
  • Formular feedback
    • Un formular de feedback de la utilizatori (legat cu backend-ul) cu cel puțin un select, un buton radio, un checkbox și o căsuță de text - 5 puncte
  • Bonus
    • Prezentare proiect complet până în săptămâna 9 – 5 puncte
    • Funcționalități adiționale - 5 puncte
notă

Acordarea bonusului este la latitudinea asistentului. Bonusul se acorda pentru funcționalități ce depășesc cerințele proiectului. Ex: Containerizare, Mockup-uri Figma/XD, Hosting, CI/CD, Notificări Push, Unit Testing etc. De asemenea, bonusul pentru prezentarea anticipată scalează cu punctajul obținut, de exemplu, dacă punctajul obținut pentru proiect este de 30/60, bonusul acordat este de 2.5 puncte.