TrallaApp este o aplicație web de tip Task & Project Management (similară cu Trello), dezvoltată pentru laboratorul Dezvoltarea Aplicațiilor Web (2025–2026).
Aplicația permite:
- crearea și gestionarea proiectelor
- invitarea membrilor într-un proiect
- organizarea task-urilor
- generarea de rezumate folosind AI
- Framework: ASP.NET Core MVC (.NET 9)
- Limbaj: C#
- ORM: Entity Framework Core
- Bază de date: MySQL 8.4
- Containerizare: Docker & Docker Compose
Acest ghid explică rularea aplicației folosind Docker, inclusiv:
- prima inițializare a bazei de date
- rularea migrațiilor
- ce trebuie făcut când dai
pullde pe GitHub
Asigură-te că Docker Desktop este instalat și pornit.
- Windows: https://docs.docker.com/desktop/setup/install/windows-install/
- MacOS: https://docs.docker.com/desktop/setup/install/mac-install/
- Linux: https://docs.docker.com/desktop/setup/install/linux/
git clone https://github.com/sigutz/TrallaApp.git
cd TrallaAppCreează un fișier .env în root-ul proiectului (lângă docker-compose.yml).
Copiază în el variabilele de mediu primite.
⚠️ Important: valoareaDOCKER_PROJECT_NAMEtrebuie să corespundă cu numele folderului proiectului.
docker compose up -dAșteaptă până când containerul de MySQL devine healthy.
Dacă apar erori legate de entrypoint.sh (semnul cel mai bun că acesta este cazul: trallaapp-app-1 din docker nu rulează):
- fișierul trebuie să fie LF, nu CRLF
- după conversie, rulează:
docker compose down -v
docker compose build --no-cache
docker compose up -dToate pachetele necesare sunt deja definite în fișierele .csproj.
Nu este nevoie să instalezi pachete manual.
Rulează o singură comandă:
docker compose run --rm sdk dotnet restoreAceasta va instala automat toate dependințele proiectului.
La prima rulare, baza de date este goală.
Trebuie doar să aplici migrațiile existente:
docker compose run --rm sdk dotnet ef database update✔️ Nu creezi migrații noi la prima rulare
Doar pornești aplicația:
docker compose up -dAplici migrațiile:
docker compose run --rm sdk dotnet ef database updateAtât. Nu trebuie nimic altceva.
Migrațiile se creează doar atunci când:
- se modifică modelele (
Models/) - se schimbă structura bazei de date
docker compose run --rm sdk dotnet ef migrations add NumeMigraredocker compose run --rm sdk dotnet ef database updateProiectul folosește Semantic Versioning: vX.Y.Z
- X (Major): modificări structurale în DB
- Y (Minor): funcționalități noi
- Z (Patch): bugfix-uri
➡️ Dacă Major Version (X) se schimbă, trebuie obligatoriu:
docker compose run --rm sdk dotnet ef database updateMigrațiile sunt deja în repo – trebuie doar aplicate.
Aplicația este disponibilă la:
http://localhost:8080
(sau portul configurat în docker-compose.yml)
# instalare dependințe
docker compose run --rm sdk dotnet restore
# aplicare migrații (prima rulare / după pull)
docker compose run --rm sdk dotnet ef database update- Implementare ASP.NET Identity (Login, Register, Logout)
- Configurare roluri:
- Administrator (rol eplicit in BD)
- Membru (utilizator standard inregistrat)
- Organizator (creatorul unui proiect)
- Vizitator (utilizator neinregistrat)
- Restrictionarea accesului pe baza rolului
- Design atractiv pentru vizitatorii neinregistrati
- Sectiuni obligatorii:
- Descrierea platformei
- Functionalitati
- Testimoniale
- Butoate de Call to Action
- Nota NU trebuie sa fie doar o pagina simpla de Login!!!
- Crearea entitatii Proiect:
- Id
- Titlu
- Descriere
- Data Crearii
- Id Organizator
- CRUD Proiecte (accesibil doar pentru membrii):
- Logica de back-end (ex: cel care creeaza proiectul devine Organizator)
- Pagina dedicata pentru fiecare proiect
- Gestionarea echipei:
- Posibilitatea de a invita membrii (prin username/email)
- Posibilitatea de a elimina membrii
- Vizualizarea listei de membri
- Crearea entitatii Task (Titlu, Descriere, Status, Data Inceperii, Data Finalizare, Media Contents)
- Validari:
- Toate campurile obligatorii
- Data Finalizare > Data Inceperii
- Implementare upload media sau embed video (YouTube)
- Workflow:
- Organizatorul poate crea/edita/sterge task-uri
- Organizatorul poate atribui task-uri membrilor
- Statusuri disponibile: Not Started, In Progress, Completed
- Membrii pot vizualiza task-urile si le pot actualiza statusul
- Implementare entitate Comment
- Continut
- Data
- Id
- Id Utilizator
- Afisarea comentariilor in pagina task-ului (cronologic)
- CRUD comentarii:
- Adaugare comentariu (validare: nu poate fi gol)
- Editare/Steregerea propriului comenatariu
- Creare Contoller/View pt dashboard
- Afisare proiecte active ale utilizatorului
- Afisare task-uri curente grupate dupa status
- Evidentiare deadline apropiate (ex: rosu daca e in mai putin de 24h)
- Filtre functionale
- Configurare serviciu API in backend
- Creare prompt care primeste datele proiectului (task-uri, status, deadlines)
- Buton "Actualizeaza raportul proiectului" (pt organizator)
- Salvarea raspunsului AI in baza de date (pentru a nu apela API-ul la fiecare refresh)
- Afisare mesaj default daca nu exista activitate
- panou Admin accesibil doar rolului Administrator
- Gestionare utilizatori (listare, dez/activare, stergere)
- Gestionare proiecte (vizualizare toate proiecte, stergere continut inadecvat)
- Gestionare task-uri/comentarii globale
- Organizare corecta a aplicatiei MCV
- Validari de dare si mesaje de eroare clare
- Seed de date realist(min):
- 3 utilizatori
- 3 proiecte
- 5 taskuri
- README complet