Funcționalități de bază (cerințe funcționale):
- Gestiunea utilizatorilor: operații CRUD (pt a avansa mai rapid propun să citim acești utilizatori, inițial dintr-un fisier csv.
- Gestiunea relațiilor de prietenie între utlizatori: adăgare/ștergere prieten
- Gestiunea mesajelor: trimitere/stergere mesaj
- Gestiunea evenimentelor. (FACULTATIV: se va implementa șablonul Observer pentru notificări, abonare/dezabonare la un eveniment – 10 puncte bonus)
Modelul Conceptual si Arhitectura aplicației (cerințe nonfuncționale):
- Entitățile problemei ar putea fi (puteți să redenumiți îm limba engleză aceste entități și, de asemenea, puteți identifica altele noi sau să le reprezentați altfel pe cele stabilite mai jos):
- Utilizator:
- Prietenie
- Mesaj
- Eveniment
- Retea (FACULTATIV: SINGLETON – 5 puncte bonus)
- Relații între entități:
- Un utilizator al rețelei are o lista de prieteni
- O prietenie se stabilește între doi utilizatori ai rețelei
- Rețeau este definită de mulțimea utilizatorilor și a relațiilor de prietenie dintre aceștia
Cerințe implementare structuri de date: În rezolvarea problemelor de mai sus se vor implementa, doua dntre următoarele structuri de date, cele care vă vor fi asignate la orele de seminar:
- TAD Lista cu elemnte generice (Template ) cu reprezentare pe array
- TAD Lista cu elemnte generice (Template ) cu reprezentare înlănțuită
- TAD Mulțime cu elemente generice (Template ) cu reprezentare înlănțuită
- TAD Dictionar cu elemente generice (Template ) cu reprezentare înlănțuită
- TAD Multi Dictionar cu elemente generice (Template ) cu reprezentare înlănțuită
- TAD Mulțime Ordonată cu elemente generice (Template ) cu reprezentare pe arbore binar de căutare
- TAD Mulțime Ordonată cu elemente generice (Template ) cu reprezentare pe tabelă de dispersie
- TAD Graf cu reprezentare pe matrice (pt retea) – FACULTATIV – 5 puncte bonus. Observație: Se pot defini si alte structuri de date necesare rezolvării problemei.