Tehnologii Web
proiecte practice
Aspecte generale
-
Proiectul va consta în realizarea unei aplicaţii aliniată problematicilor actuale privitoare la tehnologiile Web, implementarea axându-se pe partea de server, indiferent de limbajul ori limbajele de programare folosite.
-
Fiecare proiect propus va fi dezvoltat în echipă – formată din 2 studenţi ce aparţin grupelor având acelaşi titular de laborator.
-
O temă de proiect – propusă de fiecare titular de laborator – poate fi aleasă de maxim 7 echipe. Studenţii care nu-şi aleg la timp o temă de proiect vor avea asignat unul dintre proiectele nealese şi vor fi penalizaţi cu 2 puncte.
-
Detaliile referitoare la cerinţele fiecărei propuneri vor putea fi discutate în cadrul laboratorului.
-
Contribuţiile de excepţie vor putea fi apreciate cu până la 1 punct în plus – de regulă, doar pentru proiectele care nu sunt predate în sesiunea de restanţe.
-
A se consulta şi documentul privind întrebările frecvente despre proiectele la Tehnologii Web.
Criterii de evaluare
Cele mai importante aspecte pentru fiecare proiect în parte sunt:
Rezolvarea integrală a problemei – conform cerinţelor specifice fiecărui proiect propus.
Proiectele vor putea fi implementate pe partea de server folosind orice tehnologie, platformă şi limbaj de programare actuale, cu condiţia ca acestea să adopte o licenţă deschisă.
Nu se permite utilizarea de framework-uri la nivel de client (front-end) şi/sau server (back-end) Web.
Architectura aplicaţiei Web realizate va fi obligatoriu bazată pe servicii Web. Invocarea unui serviciu/API Web va fi efectuată în manieră asincronă via suita de tehnologii Ajax.
Pentru partea de client, interfaţa aplicaţiei Web va fi marcată obligatoriu în HTML5 – codul trebuind să fie valid conform specificaţiilor Consorţiului Web. Se vor utiliza foi de stiluri CSS valide – pentru verificare, se poate recurge la instrumente dedicate precum Stylelint.
Pentru stocarea şi managementul datelor, se vor putea utiliza servere de baze de date relaţionale, interogate via SQL – minimal, a se considera SQLite. Complementar, se poate recurge la servere de baze de date aliniate paradigmei NoSQL.
Se vor folosi pe cât posibil machete (template-uri) de prezentare şi metode de configurare şi administrare a aplicaţiei.
Alte cerinţe obligatorii:
Adoptarea principiilor designului Web responsiv.
Recurgerea la tehnici de prevenire a atacurilor (minimal, SQL injection şi Cross Site Scripting).
Import/export de date folosind formate deschise – minim, CSV (Comma Separated Values) şi JSON (JavaScript Object Notation).
Existenţa unui modul propriu de administrare a aplicaţiei Web.
Respectarea cerinţelor de bază ale ingineriei software – e.g., comentarea şi modularizarea codului-sursă, utilizarea unui sistem de stocare şi management online al codului-sursă (e.g., Bitbucket, GitLab, GitHub etc.).
Suplimentar, vor putea fi apreciate următoarele:
Folosirea paradigmelor de programare obiectuală, funcţională şi/sau reactivă, în concordanţă cu tema proiectului.
Maturitatea şi eleganţa implementării, inclusiv adoptarea de şabloane de proiectare şi/sau a metodologiilor de dezvoltare software – de studiat Software Quality Checklist + Web Developer Checklist.
Lucrul în echipă. Proiectele susţinute doar de 1 persoană vor fi penalizate cu 2 puncte pentru fiecare componentă.
-
Gradul de creativitate a soluţiei furnizate.
Recurgerea la tehnici neprezentate la curs, cu accent pe cele disponibile în regim open source.
Impresia generală a proiectului.
Bonus
Pot fi acordate bonus-uri pentru fiecare dintre aspectele de mai jos:
-
Susţinerea cu anticipaţie a proiectului în cadrul orelor de laborator din ultima săptămână a semestrului.
-
Crearea unei specificaţii OpenAPI pentru serviciul Web exploatabil via un API dezvoltat conform paradigmei REST sau recurgând la GraphQL.
-
Arhitectura şi implementarea soluţiei se bazează pe micro-servicii.
-
Obţinerea unui punctaj de minim 90 calculat de instrumentul Web PageSpeed Insights (Mobile şi Desktop).
Aceste bonus-uri se acordă numai dacă au fost implementate funcţionalităţile minimale (e.g., un proiect nefuncţional/incorect implementat nu beneficiază de niciun bonus).
Livrabile & calendar
Sursele proiectelor vor trebui să conţină exclusiv cod aflat sub incidenţa unei licenţe libere. Conţinutul pus la dispoziţie va respecta termenii stipulaţi de Creative Commons.
Fiecare echipă va livra resursele menţionate mai jos – toate obligatorii. Aceste resurse vor fi disponibile la URL-ul aferent proiectului ales.
-
Specificarea cerinţelor principale referitoare la funcţionalităţile esenţiale ale aplicaţiei şi la interacţiunea cu utilizatorul. Acestea vor fi incluse într-un raport în formatul Scholarly HTML disponibil pe situl Web dedicat proiectului ales. A se lua în consideraţie prevederile oferite de macheta IEEE System Requirements Specification Template.
-
Proiectarea şi implementarea interfeţei Web responsive ce va recurge la specificaţiile actuale HTML şi CSS. Vor fi oferite motivaţii asupra alegerii unei/unor anumite idei de design a interfeţei Web.
-
Prezentarea arhitecturii de ansamblu (e.g., de studiat Modelul C4), plus etapele intermediare ale dezvoltării proiectului.
-
Soluţia complet funcţională a proiectului ce va fi evaluată conform criteriilor enunţate anterior. Se vor oferi detalii privind structura (modelarea) datelor şi provenienţa lor – de exemplu, recurgerea la anumite servicii Web ori API-uri publice.
-
Se va furniza un film demonstrativ având durată de 3—5 minute, la calitate (U)HD.
-
Fiecare echipă va avea alocate maxim 15 de minute pentru susţinerea orală a soluţiei Web dezvoltate. Toţi membrii echipei trebuie să fie prezenţi fizic în sala de examinare.
Restanţe
-
Punctajul obţinut la o componentă evaluată la altă dată decât cea prevăzută în planificarea precizată în sesiunea normală va fi diminuat cu 2 puncte.
-
Cerinţele privind proiectul rămân cele menţionate mai sus.
Alte detalii de interes vor fi furnizate la momentul oportun – pentru nelămuriri, poate fi contactată echipa disciplinei.