Documente Academic
Documente Profesional
Documente Cultură
Versiune 1.0
16 octombrie, 2023
Aplicație de ticketing
Echipa 1, C114A
Product Owner Ștefănescu Ștefania
Scrum Master Cioloca Paul
Developer Avrămescu Răzvan
Developer Caran Raluca
Developer Luncanu Cezica
Developer Tudor Erick
Cuprins
1. Scopul documentului
2. Obiective
3. Conținutul documentului
4. Modelul datelor
4.1. Descrierea bazei de date
5. Modelul arhitectural și modelul componentelor
5.1. Arhitectura sistemului
5.2. Descrierea componentelor
5.3. Diagrama de clase
6. Modelul interfeţei cu utilizatorul
6.1. Ferestrele aplicaţiei
7. Elementele de testare
2
1. Scopul documentului
2. Obiective
3. Conținutul documentului
3
Prezinta obiectivele specifice ale documentului, detaliind structura
sistemului si componentele cheie care vor fi folosite pentru a indeplini cerintele
functionale si nefunctionale identificate in SRS.
Capitolul 3: Continutul documentului
Ofera o imagine de ansamblu asupra structurii documentului, cu o descriere
detaliata a fiecarei parti, inclusiv modelul datelor, modelul arhitectural si modelul
componentelor.
Capitolul 4: Modelul datelor si Descrierea bazei de date
Descrie schema bazei de date si structura tabelelor care vor fi utilizate in
cadrul aplicatiei, cum ar fi utilizatori, roluri, tipuri de tickete si starea ticketelor.
Capitolul 5: Modelul arhitectural si modelul componentelor
Detaliaza arhitectura sistemului si componente specifice, cum ar fi modulul
Front-End cu framework-uri precum Angular sau React si implementarea bazata pe
JWT, modulul de Securitate, modulul de Backend folosind Spring, si modulul
Bazei de Date cu PostgreSQL.
Capitolul 6: Modelul interfetei cu utilizatorul si Ferestrele aplicatiei
Prezinta designul interfetei utilizatorului si cum vor interactiona utilizatorii
cu diferitele pagini ale aplicatiei, precum paginile de login, inregistrare si pagina
principala.
Capitolul 7: Elementele de testare
Detaliaza strategiile si metodele de testare care vor fi utilizate pentru a
asigura calitatea si performanta aplicatiei, inclusiv testarea UI, serviciilor REST,
bazei de date si stocarii de obiecte, folosind instrumente precum React Testing
Library, Jest, Swagger, Mockito, DBUnit si GitLab CI pentru automatizarea
testelor.
4
4. Modelul datelor
Tickets
Id - identificatorul numeric al ticket-ului
User_id - referinta catre identificatorul user-ului care a depus ticket-ul(din tabela
Users)
Category_id - referinta catre identificatorul categoriei ticket-ului(din tabela
Tickets_types)
Descriere - descrierea problemei pentru care a fost depus ticket-ul
State_id - referinta catre identificatorul starii ticket-ului(din tabela Tickets_state)
Worker_id - referinta catre identificatorul worker-ului care a preluat ticket-ul(din
tabela Users)
Privacy - o valoare booleana care va indica daca ticket-ul este privat sau nu
Creating_time - data si ora la care s-a creat ticket-ul
Rating - o nota pe care o poate da user-ul care a depus ticket-ul in functie de cat de
satisfacut a fost de raspuns
Response_time - data si ora la care s-a raspuns la ticket
Tickets_comments
Id_ticket - referinta catre identificatorul ticket-ului la care a fost lasat
comentariu(din tabela Tickets)
Id_user - referinta catre identificatorul user-ului care a lasat comentariul(din tabela
Users)
Comment - comentariul lasat la ticket
Time - data si ora la care a fost lasat comentariul
Modulul de Securitate
-Validarea Inputurilor: Asigurarea că toate datele introduse de utilizatori sunt
validate corespunzător pentru a preveni atacurile și erorile.
7
Modulul de Backend - Rest Service
-Utilizarea Spring: Crearea unei aplicații robuste folosind Spring
Framework.
-Submodule:
o Controller Rest: Gestionarea cererilor și răspunsurilor HTTP.
o Autentificare și Autorizare: Utilizarea Spring Security pentru
validarea JWT-urilor.
o Integrarea cu Baza de Date: Folosirea Spring Data JPA pentru
interacțiunea cu baza de date PostgreSQL.
o Gestionarea Excepțiilor: Asigurarea că toate erorile sunt gestionate
corespunzător.
Modulul de Stocare
-Submodule:
o Bucket Management: Crearea și gestionarea bucketurilor pentru
diferite tipuri de date.
o Integrarea cu Backend-ul: Asigurarea unei conexiuni fluente între
stocarea de date și backend.
o Back-Up & Recuperare: Implementarea unor soluții de backup și
restaurare a datelor.
8
o Automatizare CI/CD: Implementarea unor pipeline-uri de integrare și
livrare continuă pentru a facilita dezvoltarea rapidă și eficientă.
Modulul de Testare
-Utilizarea GitLab CI: Implementarea unui sistem de integrare continuă
pentru testarea codului.
-Submodule:
o Teste de Securitate: Verificarea aplicației împotriva vulnerabilităților
de securitate.
o Teste Unitare: Asigurarea funcționării corecte a fiecărei componente
în parte.
o Teste de Automatizare: Utilizarea testelor automate pentru a
eficientiza procesul de testare.
o Teste de Performanță: Evaluarea aplicației sub diferite condiții de
încărcare pentru a asigura stabilitatea și scalabilitatea.
9
6. Modelul interfeței cu utilizatorul
10
Daca se va selecta optiunea “Register”, pagina de Register va arata astfel.
Pentru a merge mai departe la “Home, dupa completarea campurilor “Full Name”,
”Username”, ”Email”, “Password”, se va apasa butonul de “continue” din coltul
din dreapta jos.
12
7. Elemente de testare
Web UI
-Testare: uilizarea React Tesing Libray si Jest pentru a simula
interactiunea utilizatorilor si pentru a verifica corectitudinea randarii
aplicatiei. Testarea autentificarii JWT pentru simulari de cereri si raspunsuri
valide si invalide.
-Teste unitare
REST Service
-Testare: Utilizarea Swagger pentru a testa si valida endpoint-urile
REST. Folosirea Mockito pentru a simula logica aplicatiei si pentru a testa
serviciul fara a depinde de baza de date sau de alte servicii externe
-Teste unitare
Database:
-Testare:Folosirea DBUnit pentru a popula baza de date cu date de test
si pentru a valida interogarile.
-Teste unitare
Object Storage(MinIO)
-Testare:Scrierea de teste unitare pentru a valida operatiunile de
upload si download zle fisierelor, verificarea integritatii datelor si a
permisiunilor de acces.
13