Final Individual assignment
Dezvoltarea unei Aplicații Single Page cu Operații CRUD pentru Obiecte Relaționate
Obiective și Contextul Proiectului
Dezvoltarea unei aplicații web care să demonstreze înțelegerea arhitecturii full-stack, managementului stării, modelarea datelor și securitatea aplicațiilor web.
Cerințe de dezvoltare
Proiectul necesită o dezvoltare graduală, documentată prin commit-uri regulate pe GitHub. Fiecare etapă trebuie să reprezinte un increment logic în dezvoltarea aplicației.
Etape obligatorii de dezvoltare (Commit-uri)
Inițializare proiect Express
Configurarea structurii de bază a aplicației Express.
Implementarea middleware-urilor esențiale.
Configurarea variabilelor de mediu și a sistemului de logging.
Inițializare proiect Vue
Configurarea proiectului Vue 3 cu Composition API sau abordarea implicită.
Configurarea router-ului și a gestionării stării cu Vuex.
Crearea structurii de bază a componentelor.
Configurare și conectare Firestore
Inițializarea Firebase în proiect.
Configurarea regulilor de securitate în Firestore.
Implementarea serviciului de conexiune la baza de date.
Implementare rute și componente principale
Definirea rutelor API în Express.
Crearea componentelor Vue reutilizabile.
Implementarea unui layout responsive.
Script generare date
Implementare autentificare
Integrarea Firebase Authentication, JWT, session sau similar.
Implementarea middleware-ului de autentificare în API.
Crearea componentelor UI pentru autentificare.
Operații CRUD backend + DB
Implementarea controllerelor pentru fiecare entitate.
Validarea datelor înainte de salvare.
Gestionarea erorilor și codurilor de răspuns HTTP.
Operații CRUD frontend
Crearea formularelor pentru operațiile Create și Update.
Implementarea componentelor pentru listare și ștergere.
Gestionarea stării aplicației cu Vuex.
Implementare validări date
Validări pe partea de client (frontend).
Validări pe partea de server (backend).
Feedback vizual către utilizator în cazul erorilor (opțional)
Finalizare și optimizări (opțional)
Optimizări de performanță.
Testare end-to-end.
Scrierea documentației și a instrucțiunilor de utilizare.
Specificații tehnice detaliate
Firebase Firestore - Modelare Date
Abordare NoSQL (recomandată)
Abordare SQL (nerecomandată pentru Firestore)
Exemple de interogări NoSQL vs SQL
NoSQL (Recomandat)
SQL (Nerecomandat)
Evaluare (50 de puncte)
Criterii de bază:
Arhitectură și implementare corectă: 25 puncte
Modelarea datelor în Firestore (NoSQL): 10 puncte
UI/UX și responsivitate: 5 puncte
Securitate și autentificare: 10 puncte
Penalizări:
Dezvoltare în mai puțin de 3 zile: Descalificare
Arhitectură incorectă între front-end și API: -25 puncte
Neutilizarea Firebase sau Vue 3: -25 puncte
Layout neîngrijit: -10 puncte
Modelarea datelor în mod SQL în Firestore: -10 puncte
Lipsa autentificării pentru operațiile care modifică datele: -10 puncte
Validări insuficiente ale datelor: -5 puncte
Lipsa responsivității interfeței: -5 puncte
Puncte bonus (maxim +25 de puncte):
Deployment complet (frontend + backend + DB): +10 puncte
Implementarea unei sortări avansate (multiple criterii): +5 puncte
Paginare cu infinite scroll: +5 puncte
Upload de fișiere în Firebase Storage: +5 puncte
Actualizări în timp real cu Firestore listeners: +5 puncte
Cerințe pentru promovare
Obținerea a minimum 25 de puncte din 50 posibile.
Prezentare live obligatorie în cadrul unui interviu.
Istoric GitHub valid care să acopere cel puțin 3 zile.
Funcționalitate completă și demonstrabilă a aplicației.
Observații finale
Se va verifica istoricul de dezvoltare în GitHub.
Codul duplicat sau plagiat va duce la descalificare.
Proiectele incomplete nu vor fi evaluate.
Last updated
Was this helpful?