Backend API NestJS-sel és Express.js-sel, Clean Architecture elvekkel.
A projekt Clean Architecture elveit követi 4 réteggel:
- Domain Layer: Üzleti logika, entitások, repository interfészek
- Application Layer: Use cases, DTOs
- Infrastructure Layer: Repository implementációk, külső szolgáltatások
- Persistence Layer: Adatbázis kezelés, seed adatok
Részletes dokumentáció: ARCHITECTURE.md
# Függőségek telepítése
npm installHozz létre egy .env fájlt a backend könyvtárban:
PORT=3000
# JWT Secret - REQUIRED: Must be at least 32 characters, contain uppercase, lowercase, numbers, and special characters
# Generate a new strong secret: openssl rand -base64 32
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
JWT_EXPIRES_IN=1h
# CORS - Frontend URL (required in production)
FRONTEND_URL=http://localhost:8080
NODE_ENV=developmentJelszó követelmények:
- Minimum 8 karakter hosszú
- Tartalmaznia kell legalább 1 nagybetűt (A-Z)
- Tartalmaznia kell legalább 1 kisbetűt (a-z)
- Tartalmaznia kell legalább 1 számot (0-9)
- Tartalmaznia kell legalább 1 speciális karaktert (!@#$%^&*()_+-=[]{}...)
Fiók biztonság:
- 5 sikertelen bejelentkezési kísérlet után a fiók 15 percre zárolásra kerül
- Automatikus feloldás időtúllépés után
Rate limiting:
- Globális limit: 10 kérés/perc
- Auth endpointok: 5 kérés/perc (signup, login)
# Fejlesztési módban (watch mode)
npm run start:dev
# Production build
npm run build
npm run start:prod
# Egyszerű futtatás
npm startGET /- API információGET /api/health- Health checkPOST /api/auth/signup- RegisztrációPOST /api/auth/login- Bejelentkezés
POST /api/auth/verify- Token ellenőrzésGET /api/users/profile- Profil lekérésePUT /api/users/profile- Profil frissítéseGET /api/guarantee-checks- Garanciális számlák listázásaGET /api/guarantee-checks/:id- Garanciális számla lekérésePOST /api/guarantee-checks- Garanciális számla létrehozásaPUT /api/guarantee-checks/:id- Garanciális számla frissítéseDELETE /api/guarantee-checks/:id- Garanciális számla törléseGET /api/guarantee-checks/stats/summary- Statisztikák
- NestJS: Moduláris, dependency injection alapú framework
- Express.js: HTTP szerver (NestJS alatt)
- TypeScript: Típusbiztonság
- JWT: Autentikáció
- bcrypt: Jelszó hash-elés
- class-validator: DTO validáció
- helmet: HTTP biztonsági header-ök
- @nestjs/throttler: Rate limiting
- sanitize-html: XSS védelem
- Erős jelszókövetelmények: 8+ karakter, nagybetű, kisbetű, szám és speciális karakter
- Fiók zárolás: 5 sikertelen kísérlet után 15 perces zárolás
- Rate limiting: Kéréskorlát globálisan és auth endpointokon
- Input sanitizáció: XSS és injection támadások elleni védelem
- Fájl validáció: Képfájl típus és méret ellenőrzés
- Security logging: Biztonsági események naplózása
- HTTPS kényszerítés: Production környezetben automatikus átirányítás
- Request méret limit: Maximum 10MB kérésméret
- CORS védelem: Környezetfüggő origin ellenőrzés
- Access + refresh token: Rövid életű access (15 perc), hosszú életű refresh (7 nap), token blacklist logoutra
- Egyedi token azonosító (jti): Minden token egyedi UUID-t kap, így a blacklist csak azt a konkrét kiállítást érinti, nem minden hasonló tokent
A következő teszt fiókok automatikusan létrejönnek:
user@example.com/User1234!admin@example.com/Admin1234!demo@example.com/Demo1234!
- Jelenleg in-memory adatbázist használ (fejlesztési célokra)
- Éles környezetben valódi adatbázist (MongoDB, PostgreSQL) kell használni
- A repository réteg könnyen cserélhető valódi adatbázis implementációra