Architekturális dokumentáció

Áttekintés fejlesztőknek/technikai érdeklődőknek — a repo saját belső dokumentációja (PROJECT_CONTEXT.md, DEPLOYMENT.md) részletesebb, de nem publikus.

Stack

Modulok

ModulFelelősség
authBejelentkezés, JWT kiadás/validálás, szerepkör-alapú jogosultság (ADMIN/SUPER_ADMIN/PARTNER/FIELD_UPLOADER)
partnersPartner (megrendelő) CRUD, saját bejelentkezés generálása, "segéd" (FIELD_UPLOADER) felhasználók létrehozása/listázása
productsTerméktörzs CRUD + XLSX import
eventsEsemény életciklus (DRAFT→ACTIVE→CLOSED), QR-kód generálás (fő esemény- és per-segéd QR-token), kiosztott termékek
surveyAnonim kérdőív-beküldés és -listázás (fő vagy segéd QR-tokenből feloldva)
impactA 6 hatás-mutató kiszámítása egy eseményre
reportsMutató-pillanatkép rögzítése/verziózása + PDF-renderelés
exportXLSX/CSV exportok (események+mutatók, kérdőív-válaszok, terméktörzs)
uploadsKép-feltöltés (pl. partner logó)
settingsKulcs-érték konfiguráció (márka-paletta, CO2e-baseline stb.)
chatStatikus FAQ + AI-alapú (Gemini) súgó-widget
feedbackBejelentkezett felhasználóktól érkező szöveges visszajelzés — emailben (MailService/SMTP) és admin-listaként is
admin-ui / docsSzerver-renderelt admin/partner/segéd felület és publikus dokumentáció

Adatmodell (vázlat)

Partner 1—N Event N—N Product (a kapcsolótábla: EventProduct, kiosztott/elfogyott mennyiséggel) · Event 1—N SurveyResponse (anonim) · Event 1—N Report (verziózott mutató-pillanatkép) · Event 1—N EventHelper (egy "segéd"/FIELD_UPLOADER felhasználó hozzárendelése, saját QR-tokennel — a SurveyResponse opcionálisan ide is hivatkozik, hogy visszakövethető legyen, melyik QR-kódon jött be a válasz) · User (szerepkör: ADMIN/SUPER_ADMIN/PARTNER/ FIELD_UPLOADER) · Feedback (a bejelentkezett felhasználóktól érkező visszajelzés, opcionális User hivatkozással) · Setting (kulcs-érték konfiguráció).

Minden fő entitáson (Partner/Product/Event) soft delete van (archivedAt mező) — nincs kemény törlés, az adat korlátlan ideig megőrzött marad.

A hatás-mutatók (DRAFT állapotú képletek)

Az ImpactService egy esemény kiosztott/elfogyott termékei és kérdőív-válaszai alapján számolja ki mind a 6 mutatót (Snack Replacement, Upcycled arány, Food Waste Reduced, Inkluzív hozzáférés, Feedback Score, CO2e-becslés). A paraméterek (pl. CO2e baseline) a Setting táblából jönnek, nem kódba égetve — így a végleges módszertan (workshop utáni) kódmódosítás nélkül finomhangolható. Részletek: /docs.

Biztonság és adatvédelem

Forráskód

A forráskód privát repóban él, nem publikusan elérhető. Ez az oldal csak az architektúra áttekintésére szolgál.