Fiecare student va lucra la un proiect individual.
Proiectul este structurat în mai multe etape.
- Va rog sa faceti un branch separat, pe nume 'temaX' (
tema1
pentru prima tema,tema2
pentru tema2) in care sa lucrati la prima, respectiv a doua tema.
Conditia de punctare a proiectelor:
- să nu prezinte erori de compilare
- să se implementeze cerintele date
Proiectele se vor prezenta online, fiecare va fi programat cate 15/20 minute pentru prezentare.
La prezentare o sa primiti si intrebari despre limbaj si despre ce am facut pana in momentul respectiv.
O sa primiti un doc in saptamana in care este deadline-ul de predare al temei, cu fiecare la ce ora este programat si ziua, iar dupa aceea o sa imi semnalati daca nu puteti prezenta atunci si putem modifica.
- Etapa I: saptamana 3 – 7 aprilie (5p)
- Etapa II: saptamana 24 – 28 mai (5p)
❕ Nota de laborator se obtine astfel: 50% prima etapa + 50% a doua etapa a proiectului + bonus
- Definirea sistemului
- Să se creeze o lista pe baza temei alese cu cel puțin 10 acțiuni/interogări care se pot face în cadrul sistemului și o lista cu cel puțin 8 tipuri de obiecte.
- Implementare
- Sa se implementeze în limbajul Java o aplicație pe baza celor definite la primul punct.
- Aplicația va conține:
-
- clase simple cu atribute private / protected și metode de acces
-
- cel puțin 2 colecții diferite capabile să gestioneze obiectele definite anterior (eg: List, Set, Map, etc.) dintre care cel puțin una sa fie sortata –se vor folosi array-uri uni-/bidimensionale în cazul în care nu se parcurg colectiile pana la data checkpoint-ului.
-
- utilizare moștenire pentru crearea de clase adiționale și utilizarea lor încadrul colecțiilor;
-
- cel puțin o clasă serviciu care sa expună operațiile sistemului
-
- o clasa Main din care sunt făcute apeluri către servicii
- Extindeți proiectul din prima etapa prin realizarea persistentei utilizând o baza de date relationala si JDBC.
- Să se realizeze servicii care sa expună operații de tip create, read, update si delete pentru cel puțin 4 dintre clasele definite.
- Se vor realiza servicii singleton generice pentru scrierea și citirea din baza de date.
- Realizarea unui serviciu de audit
- Se va realiza un serviciu care sa scrie într-un fișier de tip CSV de fiecare data când este executată una dintre acțiunile descrise în prima etapa.
- Structura fișierului: nume_actiune, timestamp.
- catalog (student, materie, profesor)
- biblioteca (sectiuni, carti, autori, cititori)
- programare cabinet medical (client, medic, programare)
- gestiune stocuri magazin (categorii, produse, distribuitori)
- aplicatie bancara (conturi,extras de cont, tranzactii, carduri, servicii)
- platfora e-learning (cursuri, utilizatori, cursanti, quizuri)
- sistem licitatii (licitatii, bids, produse, utilizatori)
- platforma food delivery (localuri, comenzi, soferi, useri)
- platforma imprumuturi carti -tip bookster (companii afiliate, utilizatori, carti)
- platformae-ticketing (evenimente, locatii, clienti)
- Toata lumea trebuie sa foloseasca Git & Maven. Proiectele nu se trimit ca arhiva.
- Proiectul trebuie sa aiba documentatie. Fiecare scrie documentatia cum vrea, in doc/pdf sau in cod. Trebuie sa stii sa explici ce ai facut in cod, nu e de ajuns doar sa-l scrii.
- Versiunea Java o sa fie MINIM 17.
- O sa folosim Docker & Docker-Compose pentru baza de date.
- O sa folosim Github Workflows pentru pipelines. Se pot accepta alternative pentru cei care vor sa foloseasca altceva.
- Cei mai activi o sa aiba o surpriza la final de semestru.
- Kahoot. Primii 5 studenti primesc 0.1 per kahoot. (Maxim 1p - 4 laboratoare o sa fie rezervate pentru prezentari si pregatire pentru examen)
- Intrebari laborator. Fiecare activitate se puncteaza cu 1. Primii 5 studenti cu cele mai multe puncte primesc 1p, primii ceilalti 5 primesc 0.5. (Maxim 1p)
- La final o sa facem cateva notiuni de Spring, iar cine face mini-temele o sa primeasca maxim 1p. (Maxim 1p)