A PuffManager egy webalapú projektmenedzsment rendszer, amely a PuffContent videóvágó ügynökség és ügyfelei közötti együttműködést támogatja.
A cél a videóvágási projektek teljes életciklusának digitalizálása, az igénybejelentéstől a kész anyag jóváhagyásáig.
A rendszer fő funkciói:
- Projektek létrehozása, státuszkezelése és megjelenítése Kanban táblán.
- Valós idejű kommunikáció ügyfelek és vágók között projektalapú chatfelületen.
- Automatikus értesítések státuszváltozásról és üzenetekről.
- Admin funkciók a felhasználók, teamek és projektek kezelésére.
A PuffManager célja, hogy a korábbi manuális, e-mail alapú folyamatokat digitálisan, automatizált módon váltsa ki, minimalizálva a hibalehetőségeket és növelve az átláthatóságot.
A fejlesztés fő szempontjai: biztonság, megbízhatóság, reszponzív működés, skálázhatóság és jövőbeli bővíthetőség.
A PuffManager háromrétegű architektúrára épül:
- Prezentációs réteg (frontend) – a felhasználói böngészőben futó, reszponzív webes felület, amely megjeleníti a projekteket, státuszokat és a kommunikációt.
- Alkalmazási réteg (backend) – a szerveroldali logika, amely feldolgozza a felhasználói műveleteket, kezeli a hitelesítést és kapcsolatot tart az adatbázissal.
- Adatréteg (adatbázis) – a projektek, felhasználók, teamek és üzenetek tárolásáért felelős dokumentum-alapú adatbázis (MongoDB).
A kliensoldali komponens a felhasználói élményért és az interaktív funkciókért felelős.
A PuffManager frontendje Next.js alapokra épül, React Server Components és Server Actions használatával, így az adatok valós időben frissülnek.
A főbb technológiák:
- Next.js 14 – modern React keretrendszer, SSR és SSG támogatással
- TypeScript – típusbiztos fejlesztés a hibák minimalizálására
- TailwindCSS – reszponzív, gyors és egységes dizájn
- shadcn/ui – komponens könyvtár React keretrendszerhez
A felület minden modern böngészőben (Chrome, Firefox, Edge, Safari) működik, és optimalizált mobil, tablet és asztali megjelenítésre.
A dizájn letisztult, fókuszált a hatékony munkavégzésre, külön felhasználói nézetekkel (ügyfél, vágó, admin).
(Funkcionális specifikáció, 8. Kompatibilitás)
A szerveroldali logika a Next.js Server Actions segítségével működik, amely közvetlenül integrálódik a frontenddel, ezáltal nincs szükség külön REST API rétegre az alapműveletekhez.
A backend felel a hitelesítésért, adatkezelésért, státuszfrissítésekért és értesítésekért.
A főbb technológiák:
- Next.js Server Actions – biztonságos szerveroldali adatkezelés közvetlen komponensekből
- BetterAuth – modern, session alapú hitelesítés, szerepkörkezeléssel (ügyfél / vágó / admin)
- Zod – adatvalidáció kliens és szerveroldalon
- Mongoose – MongoDB modellek és séma alapú adattárolás
A backend moduláris felépítésű, így külön kezelhetők a következő funkciók:
- Felhasználókezelés (regisztráció, bejelentkezés, szerepkörök)
- Projektmenedzsment (létrehozás, státuszfrissítés, hozzárendelés)
- Chat és értesítés modul (valós idejű kommunikáció)
- Admin modul (teamek, riportok, audit naplózás)
Ez a felépítés megkönnyíti a karbantartást, hibakeresést és bővíthetőséget, mivel az egyes modulok önállóan fejleszthetők és tesztelhetők.
(Követelmény specifikáció, 6. A rendszerre vonatkozó szabályok)
Az adatréteg a MongoDB dokumentum-alapú adatbázisra épül, amely rugalmasan kezel különböző típusú projekteket, üzeneteket és metaadatokat.
Főbb kollekciók:
users– felhasználói adatok (név, e-mail, szerepkör, jelszó hash)projects– projektek, státusz, határidő, hozzárendelt vágó, ügyfél és Google Drive linkteams– admin által kezelt csoportstruktúramessages– chatüzenetek és kommunikációs naplók
A kliens és a szerver közötti adatforgalom HTTPS + TLS 1.3 protokollon keresztül zajlik.
A felhasználói jelszavak bcrypt algoritmussal hash-elve kerülnek tárolásra, és a session-kezelést a BetterAuth biztonságos tokenrendszere biztosítja.
- Az adatok JSON formátumban továbbítódnak, így könnyen integrálhatók más rendszerekkel.
- Minden kritikus művelet naplózásra kerül az audit logban.
- A fájlfeltöltések korlátozottak (<10MB), nagyobb fájlok Google Drive link formájában csatolhatók.
- A rendszer inaktivitás esetén automatikusan kijelentkezteti a felhasználót.
Ezzel a megoldással a PuffManager garantálja az adatbiztonságot, megbízhatóságot és a GDPR-megfelelést.
(Funkcionális specifikáció, 7. Biztonság)
A PuffManager adatkezelése MongoDB dokumentum-alapú adatbázison keresztül történik.
A cél egy rugalmas, skálázható és könnyen bővíthető adattárolási modell, amely támogatja a különböző projekt-, felhasználó- és üzenettípusokat.
Az adatkezelés a Mongoose ORM segítségével történik, amely biztosítja a típusos sémákat és az adatvalidációt.
A relációkat referenciák (ObjectId) kezelik a kollekciók között.
| Mező | Típus | Leírás |
|---|---|---|
_id |
ObjectId | Egyedi azonosító |
name |
String | Teljes név |
email |
String | E-mail cím (egyedi) |
password |
String | Bcrypt-tel hash-elt jelszó |
role |
String | Felhasználói szerepkör (client, editor, admin) |
createdAt |
Date | Regisztráció dátuma |
lastLogin |
Date | Utolsó bejelentkezés ideje |
| Mező | Típus | Leírás |
|---|---|---|
_id |
ObjectId | Egyedi azonosító |
title |
String | Projekt neve |
description |
String | Részletes leírás |
status |
String | Státusz (new, in_progress, review, completed) |
deadline |
Date | Határidő |
clientId |
ObjectId | Ügyfél hivatkozás |
editorId |
ObjectId | Vágó hivatkozás |
driveLink |
String | Google Drive link |
createdAt |
Date | Létrehozás dátuma |
updatedAt |
Date | Utolsó módosítás ideje |
| Mező | Típus | Leírás |
|---|---|---|
_id |
ObjectId | Egyedi azonosító |
projectId |
ObjectId | Kapcsolódó projekt |
senderId |
ObjectId | Küldő azonosító |
content |
String | Üzenet szövege |
timestamp |
Date | Küldés ideje |
isRead |
Boolean | Olvasottság |
| Mező | Típus | Leírás |
|---|---|---|
_id |
ObjectId | Egyedi azonosító |
name |
String | Csapat neve |
members |
[ObjectId] | Csapattagok azonosítói |
createdBy |
ObjectId | Admin hivatkozás |
createdAt |
Date | Létrehozás dátuma |
A kollekciók indexelése biztosítja a gyors lekérdezéseket (email, projectId, senderId).
Az adatok JSON formátumban kommunikálnak a frontenddel.
A rendszer fő folyamatai a projektmenedzsment életciklusát követik, a létrehozástól a lezárásig.
- Az ügyfél új projektet hoz létre (cím, leírás, határidő, Drive-link megadása).
- Az adatokat a Zod validálja, majd a projekt bekerül a
projectskollekcióba. - Az admin hozzárendeli a megfelelő vágót.
- A státusz a folyamat előrehaladtával változik (
new→in_progress→review→completed). - A változások a Kanban táblán valós időben frissülnek.
- A projektalapú chat biztosítja a közvetlen ügyfél–vágó kommunikációt.
- Az üzenetek a
messageskollekcióban tárolódnak, és Server Actions segítségével azonnal megjelennek. - A rendszer értesítéseket küld:
- új üzenet érkezésekor,
- státuszváltozás esetén,
- új projekt létrejöttekor.
Későbbi fejlesztési fázisban az értesítések e-mail és mobil push formában is elérhetők lesznek.
- Hitelesítés: BetterAuth segítségével, session tokennel.
- Jogosultságkezelés:
- Ügyfél: saját projektjeinek kezelése és chatelés.
- Vágó: hozzárendelt projektek szerkesztése.
- Admin: felhasználók, projektek és teamek teljes körű kezelése.
- A jogosultságokat middleware szinten ellenőrzi a rendszer minden kérésnél.
- Minden művelet (bejelentkezés, státuszváltás, üzenetküldés) naplózásra kerül.
- Az admin számára külön audit nézet biztosítja a naplók idő- és felhasználó szerinti szűrését.
- A naplózás célja a biztonság, hibakeresés és megfelelőség biztosítása.
A PuffManager UI terve a letisztultság, átláthatóság és hatékonyság elvei mentén készült.
A dizájn TailwindCSS és shadcn/ui komponensekre épül, a reszponzivitást és egységes vizuális élményt szem előtt tartva.
- Középre igazított, kártya formátumú űrlap.
- Valós idejű validáció (
Zod) és jelszó megjelenítés funkció. - “Elfelejtett jelszó” opció a jövőbeni bővítéshez előkészítve.
- Szerepkör-alapú nézet:
- Ügyfél: saját projektek listája.
- Vágó: aktív projektek és értesítések.
- Admin: statisztikák, auditnapló, csapatkezelés.
- Oszlopok: Új, Folyamatban, Ellenőrzés alatt, Kész.
- Drag & drop funkcióval mozgatható kártyák.
- Az állapotváltás azonnal frissül a szerveren és a klienseknél.
- Teljes információs panel (leírás, határidő, státusz, Drive-link).
- Valós idejű chatpanel a kommunikációhoz.
- Fájlcsatolási lehetőség (Drive-link formában).
- CRUD műveletek felhasználókon, teameken és projekteken.
- Riportnézet a státuszok és aktivitások statisztikájával.
- Audit log megjelenítés szűrhető táblázatban.
- Mobilon egyoszlopos nézet, ikon alapú navigációval.
- Tableten és asztali nézetben oldalsávos menü.
- Támogatja a dark mode megjelenítést és megfelel a WCAG 2.1 szabványnak.
- Az UI interakciók framer-motion animációkkal támogatottak.
- Egységes tipográfia és színpaletta a márkaarculathoz igazítva.
- Minden művelet visszajelzéssel jár (toast, modal, loading state).
- Az egyszerű kezelhetőség biztosítja, hogy a PuffManager a videóvágó ügynökség munkáját gyorsabbá, átláthatóbbá és hatékonyabbá tegye.
- A PuffManager fejlesztése során kiemelt szempont a stabilitás, a biztonság és a skálázhatóság.
- A nem funkcionális követelmények biztosítják, hogy a rendszer hosszú távon is megbízhatóan, hatékonyan és fenntarthatóan működjön.
- A rendszer célja, hogy a felhasználói műveletek válaszideje átlagosan ne haladja meg az 500 ms-ot.
- A MongoDB indexelések optimalizálják a lekérdezéseket, a Next.js SSR és cache rétege pedig csökkenti a szerverterhelést.
- A websockets alapú kommunikáció minimális adatforgalommal frissíti a valós idejű chatet és Kanban táblát.
- A PuffManager HTTPS és TLS 1.3 protokollt alkalmaz az adatvédelem érdekében.
- Minden jelszó bcrypt algoritmussal kerül tárolásra, és a session-kezelés titkosított JWT tokenen alapul.
- A hozzáférések szerepköralapúak (RBAC), a kritikus műveletek pedig audit logba kerülnek.
- Az adatbázis biztonsági mentése naponta automatikusan megtörténik.
- A rendszer célzott rendelkezésre állása 99,5%.
- A backend futtatása több konténeres Docker környezetben történik, így egy komponens hibája nem okoz teljes kiesést.
- Az alkalmazás automatikusan újraindul hibás folyamat esetén (PM2 / Docker restart policy).
- A horizontális skálázás Kubernetes segítségével történik, lehetővé téve a dinamikus terheléselosztást.
- A MongoDB Atlas rugalmas skálázási lehetőséget biztosít a növekvő adat- és felhasználószámhoz.
- A rendszer architektúrája moduláris, így új funkciók később külön mikroszolgáltatásként is integrálhatók.
- A kód TypeScript alapon, szigorú lintelési szabályokkal készül (ESLint, Prettier).
- A moduláris mappastruktúra és egységtesztek (Jest) segítik a hibák gyors azonosítását.
- Az architektúra dokumentálva van, és minden fő komponenshez külön README tartozik.
- A CI/CD pipeline automatikus tesztfuttatást végez minden commit előtt.
- A felület reszponzív, egyszerűen kezelhető, és megfelel a WCAG 2.1 AA szabványnak.
- Az interakciók vizuális visszajelzésekkel (loading state, toast, modal) támogatottak.
- A dizájn a hatékonyságot szolgálja: minden művelet maximum három kattintással elérhető.
- A dark mode és többnyelvűség támogatása jövőbeli fejlesztésre előkészítve.
- A rendszer platformfüggetlen: Windows, macOS és Linux környezetben is futtatható.
- A böngészőtámogatás kiterjed a Chrome, Firefox, Edge és Safari legfrissebb verzióira.
- Az alkalmazás Docker image formában szállítható, könnyen telepíthető bármely felhőszolgáltatóra.
- Az adatkommunikáció JSON alapú, így külső integrációkhoz is illeszthető.
- A PuffManager folyamatos, 24/7 elérhetőséget igénylő üzleti környezetben működik.
- Az üzemeltetési és karbantartási eljárások célja a megbízható szolgáltatás biztosítása és a kiesési idők minimalizálása.
- Az alkalmazás Docker konténerekben fut, Node.js 20 és MongoDB 7 környezetben.
- A hosztolás kezdetben Vercel (frontend) és MongoDB Atlas (adatbázis) platformokon történik.
- A backend futtatható saját VPS-en vagy Kubernetes clusterben is, automatikus skálázással.
- A rendszer telepítése CI/CD folyamaton keresztül történik (GitHub Actions).
- Minden commit után automatikus build, teszt és staging deploy fut le.
- A production környezetbe csak manuális jóváhagyással kerülhet kiadás.
- A frissítések verziózottak (semantic versioning), és changelogban dokumentáltak.
- Az adatbázis napi mentése automatikusan történik, 30 napos megőrzéssel.
- A mentések titkosítva tárolódnak (AES-256), és külső tárhelyre replikálódnak.
- Helyreállítás teszt havonta egyszer végrehajtásra kerül a mentések ellenőrzésére.
- A rendszer teljesítményét Prometheus és Grafana segítségével figyelik.
- A logok a Loki rendszerbe kerülnek, ahol idő- és típus szerint kereshetők.
- A hibák automatikusan riasztást generálnak (Slack / e-mail integráció).
- Az audit logok 1 évig megőrzésre kerülnek, megfelelve a GDPR előírásoknak.
- A rendszer hibái kategorizáltak (kritikus / magas / alacsony prioritás).
- A hibajelentések Jira alapú hibakövető rendszerben kerülnek rögzítésre.
- A javításokat staging környezetben validálják, majd élesítés előtt tesztelik.
- A felhasználók dedikált támogatási e-mail címen keresztül jelezhetnek problémát.
- A cache réteg (Redis) gyorsítja a gyakran használt adatok elérését.
- A képek és statikus erőforrások CDN-en keresztül kerülnek kiszolgálásra.
- A lekérdezések és indexelések negyedévente teljesítmény-auditon esnek át.
- A nem használt projektek archív státuszba kerülnek a terhelés csökkentése érdekében.
- A függőségek automatikus auditja hetente lefut (npm audit / Dependabot).
- A sérülékenységek javítása 48 órán belül megtörténik.
- Az admin hozzáférések kétfaktoros hitelesítéssel védettek.
- Az SSL tanúsítványok automatikusan megújulnak (Let’s Encrypt).
- Az üzemeltetési folyamatok, API endpointok és konfigurációk dokumentálva vannak.
- A fejlesztői kézikönyv tartalmazza a telepítés, tesztelés és release lépéseit.
- A rendszer későbbi modulbővítései (pl. mobilapp, AI-vágás asszisztens) a jelenlegi architektúrára építhetők.
- A PuffManager üzemeltetése így hosszú távon is biztonságos, fenntartható és rugalmas marad.






