Structura proiectului
Proiectul este organizat în două părți principale: Client și Server. Fiecare parte are roluri și responsabilități distincte, asigurând o arhitectură clară și modulară.
Client
Clientul reprezintă partea de frontend a aplicației, cu care utilizatorii interacționează direct. Este responsabil pentru crearea interfeței de utilizator și comunicarea cu serverul backend. Structura directorului client este organizată pentru a susține dezvoltarea, testarea și stilizarea aplicației.
client/
: Directorul principal pentru frontend, conținând toate resursele necesare pentru construirea interfeței utilizatorului.cypress/
: Configurații și teste E2E utilizând Cypress.e2e/
: Teste end-to-end pentru diferite funcționalități ale aplicației, asigurându-se că toate fluxurile de utilizatori sunt funcționale.fixtures/
: Date simulate utilizate în testele E2E pentru a replica scenarii reale.support/
: Configurări și comenzi personalizate pentru testele Cypress, facilitând reutilizarea codului și gestionarea configurărilor globale.
public/
: Fișiere statice servite direct de serverul web, inclusivindex.html
, imagini și fișiere de configurare (ex. manifest.json).src/
: Codul sursă al aplicației, structurat pentru a permite dezvoltarea modulară și reutilizarea componentelor.assets/
: Resurse grafice, inclusiv fonturi și imagini SVG, utilizate în interfața cu utilizatorul.components/
: Componente React reutilizabile, organizate pe funcționalități specifice (ex. autentificare, editare cod, etc.).context/
: Contextul global pentru gestionarea stării aplicației, utilizând React Context API.hooks/
: Hook-uri personalizate React care oferă funcționalități reutilizabile și logica specifică aplicației.languages/
: Fișiere de traducere și configurare pentru internaționalizare, suportând multiple limbi.pages/
: Componente de pagină pentru diferite secțiuni ale aplicației, structurate în funcție de rute și pagini specifice.styles/
: Fișiere CSS pentru stilizarea aplicației, inclusiv stiluri globale și specifice componentelor.utils/
: Funcții utilitare și module ajutătoare, utilizate în diverse părți ale aplicației pentru a reduce redundanța codului.
Server
Serverul reprezintă partea de backend a aplicației, responsabilă pentru gestionarea cererilor de la client, procesarea acestora și interacțiunea cu baza de date. Structura serverului este organizată pentru a permite extensibilitatea și întreținerea ușoară a aplicației.
server/
: Directorul principal pentru backend, conținând toate resursele necesare pentru funcționarea serverului.graphql/
: Configurarea și implementarea API-ului GraphQL, care include:mutations/
: Mutări GraphQL pentru manipularea datelor, cum ar fi crearea, actualizarea și ștergerea entităților.queries/
: Interogări GraphQL pentru accesarea și recuperarea datelor, structurându-se pe tipuri de date și funcționalități.typeDefs/
: Definiții de tipuri GraphQL, specificând structura și tipologia datelor disponibile prin API.
isolate/
: Sandbox pentru rularea codului nesigur, asigurând izolația față de sistemul gazdă și prevenind potențiale probleme de securitate.models/
: Modele pentru MongoDB utilizând Mongoose, organizate pe entități precum utilizatori, probleme, și articole. Modelele definesc structura și validarea documentelor în baza de date.utils/
: Funcții utilitare și module de suport pentru diferite funcționalități ale serverului, cum ar fi validarea cererilor, trimiterea emailurilor și gestionarea token-urilor.index.js
: Fișierul principal care configurează și pornește serverul, incluzând setările pentru middleware, rutele și conexiunea cu baza de date.jest.setup.js
: Configurare pentru testele unitare cu Jest, asigurându-se că toate dependențele și configurările necesare pentru testare sunt incluse.
Last updated