Platforma va fi o aplicație web dezvoltată în ASP.NET Core MVC și C#, utilizând Entity Framework Core pentru gestionarea datelor și ASP.NET Identity pentru autentificare și roluri.
https://trello.com/b/cK3TMfOW/micro-social-platform
Să existe cel puțin 3 tipuri de utilizatori:
- Vizitator neînregistrat
- Utilizator înregistrat
- Administrator
- Orice utilizator (inclusiv neînregistrat) poate căuta persoane în platformă.
- Căutarea se face după întregul nume sau după părți din numele utilizatorului.
- Profilul poate fi vizualizat complet doar dacă este public.
- Dacă profilul este privat, se afișează doar informațiile de bază:
- Numele complet
- Descrierea adăugată de utilizator
- Imaginea de profil
- Utilizatorii înregistrați pot crea și edita propriul profil.
- Profilul trebuie să conțină: numele complet, o scurtă descriere și o poza de profil (toate câmpurile sunt obligatorii).
- Fiecare utilizator poate stabili vizibilitatea profilului (public sau privat) în momentul editării.
- Utilizatorii se pot alătura grupurilor doar dacă au un cont activ.
- Utilizatorii pot da "join" într-un grup, iar cererea trebuie acceptată de moderatorul grupului (cel care a creat grupul).
- Grupul trebuie să aibă o denumire și o descriere (ambele obligatorii).
- Utilizatorii pot trimite mesaje către grupurile din care fac parte.
- Utilizatorii pot edita sau șterge propriile mesaje.
- Un utilizator poate părăsi grupul sau poate fi eliminat de moderator.
- Moderatorul poate șterge grupurile pe care le-a creat.
Utilizatorii pot posta în platformă conținut de tip media:
- Text
- Imagini (0.5p)
- Videoclipuri (0.5p)
- Utilizatorii pot comenta la postările existente.
- Fiecare utilizator poate edita și șterge propriile postări și comentarii.
- Nu are dreptul să editeze sau să șteargă conținutul altor utilizatori.
- Postările și comentariile se vor afișa în ordine descrescătoare după dată.
- Utilizatorii pot trimite și primi cereri de urmărire (unidirecționale).
- Dacă un cont este privat, cererea trimisă rămâne "Pending" până la acceptare sau refuz.
- Dacă cererea este acceptată, utilizatorul poate vizualiza profilul complet al persoanei respective.
- Dacă cererea este refuzată, nu se creează o legătură reciprocă.
- Dacă profilul este public, poate fi vizualizat fără a trimite cerere.
- Profilul public conține: nume, descriere, poză de profil și postările utilizatorului.
- Utilizatorii pot aprecia postările altor persoane printr-un sistem de "like" sau reacții.
- Un utilizator nu poate reacționa de două ori la aceeași postare.
- Fiecare utilizator are un feed personalizat care afișează postările utilizatorilor urmăriți (followings).
- Postările din feed sunt ordonate descrescător după dată.
- Înainte de publicare, sistemul apelează companionul AI pentru a verifica dacă textul (postare sau comentariu) conține limbaj nepotrivit (insulte, hate speech, limbaj discriminatoriu, etc.).
- Dacă mesajul este considerat neadecvat:
- Sistemul blochează publicarea.
- Utilizatorul primește un mesaj de eroare prietenos: "Conținutul tău conține termeni nepotriviți. Te rugăm să reformulezi."
- Administratorul se ocupă de buna funcționare.
- Acesta poate șterge orice conținut considerat neadecvat (comentarii, mesaje, utilizatori, grupuri, postări etc.).
Se punctează următoarele aspecte:
- Organizarea corectă a aplicației MVC (Models, Views, Controllers).
- Validări de date și mesaje de eroare clare.
- Seed de date realist (minim 3 utilizatori, 3 grupuri și 5 postări).
- Integrarea corectă a companionului AI și documentarea modului de funcționare.
- README complet (raportul proiectului).
- Se acordă 1 punct din oficiu pentru proiectele complete, funcționale și documentate conform cerințelor.