Table of Contents

Guidline Proiect

Introducere

Ești un tânăr antreprenor și vrei să aduci la viață un produs care vă revoluționa lumea. După o perioada lunga de cercetare și comparare a tehnologiilor existente ai decis să folosești ASP.NET pentru BE și React.js pentru FE, iar pentru persistența datelor ai decis să utilizezi PostgreSQL.

De asemenea, fiind foarte bine organizat, ai stabilit și un timeline pentru proiect, disponibil mai jos.

În ceea ce privește exact tema produsului, încă nu te-ai decis dar ai resusit să stabilești un set de cerințe minime pe care vrei că produsul tău să le implementeze.

Proiectul este individual.

Tehnologiile folosite la proiect trebuie sa fie cele prezentate la laborator: ASP.NET 6 sau Spring cu Java sau Kotlin pentru Backend si React.js pentru Frontend. Proiectele dezvoltate cu alte tehnologii nu se iau in considerare.

Echivalare proiect:

Se poate echivala cu un alt proiect implementat pentru o alta materie sau chiar pentru licenta, atata timp cat indeplineste cerintele de mai jos si este implementat folosind tehnologiile prezentate in cadrul laboratorului de Programare Web.

Pentru mai multe detalii discutati cu asistentul de la laborator.

Timeline Proiect

Poiectul se vă desfășură pe toată durata semestrului și vă avea doua milestone-uri și prezentarea finala a proiectului.

Se stabilieste tema proiectului și se validează cu asistentul.

Se prezintă în cadrul laboratorului BE-ul proiectului + demonstrarea funcționalității BE-ului folosind Swagger/Postman

Se prezintă în cadrul laboratorului tot proiectul și se notează conform îndeplinirii cerințelor de mai jos.

Milestoneul din saptamana 7 are deadline hard. Ratarea deadlineului aduce dupa sine pierderea celor 30 de puncte.

Cerințe

Backend

  1. Minim 5 entitati (in afara de tabele de merge pentru realatii many-to-many) – 3 puncte
  2. Relatii entitati (one-to-one, one-to-many, many-to-many) – 3 puncte
  3. Configurare relații utilizand FluentAPI/Atribute – 3 puncte
  1. Adaugare claims in token (roluri, alte informatii) – 3 puncte
  2. Permisiuni bazate pe roluri – 3 puncte
  3. Autorizare controllere – 3 puncte
  1. Controllere Basic (getById, Get, Post, Put, Delete + others) – 4 puncte
  2. Error Handling (error codes) – 3 puncte
  1. Utilizarea de DTO-uri pentru interactiunea cu controllerele (request/response) – 5 puncte

Daca alegeti sa folositi Spring, vedeti ca aveti posibilitatea sa il folositi si cu Kotlin in loc de Java. De asemenea, pentru baza de date folositi pentru migrari Liquibase sau Flyway, iar pentru Swagger folositi pachetul de OpenAPI ca sa-l aveti integrat in backend.

Daca lucrati in Spring, va rugam sa nu folositi EntityManger sau alte primitive expuse de ORM, folositi interfetele repository de JPA si adnotarile corespunzatoare pentru a interactiona cu ORM-ul si mai ales folositi JPQL pentru a face cereri SQL complexe, nu sa construiti de mana cererile SQL.

Frontend

  1. Formular login - username/email + parola – 3 puncte
  2. Formular register - nume, alte informatii relevante, username/email + parola/validare parola – 4 puncte
  1. Redirectare la homepage dupa login – 2 puncte
  2. NavBar - minim 3 pagini – 4 puncte
  1. Doua pagini cu tabele, cu minim 4 coloane fiecare – 4 puncte
  2. Cautare – 3 puncte
  3. Paginare – 2 puncte
  1. Adaugare intrare – 2 puncte
  2. Editare intrare – 2 puncte
  3. Stergere intrare – 2 puncte
  4. Modala confirmare – 2 puncte

Bonus

Punctele scaleaza cu punctajul de pe proiect, daca punctajul pe proiect este 30/60, bonusul este 2.5

Acordarea bonusului este la latitudinea asistentului. Bonusul se acorda pentru functionalitati ce depasesc cerintele proiectului. Ex: Containerizare, Mockuri Figma/XD, Hosting, CI/CD, Notificari Push, Unit Testing etc.