Ein einfaches Task Manager-Projekt mit NestJS als Backend und einer minimalistischen Vanilla-JS UI. Integrierte Features:
- CRUD-REST-API für Tasks
- In-Memory-Speicherung mit UUID, Status und Timestamp
- Globale Validierung mit
class-validator&class-transformer - Swagger-Dokumentation unter
/api - Statisches Frontend (HTML/CSS/JS) im
public/-Ordner - Smoke-Tests und E2E-Tests
- Deployment-Pipeline via GitHub Actions
- Node.js ≥ 18.x
- npm ≥ 8.x
- Git
- (optional)
wkhtmltopdfoder Puppeteer für Swagger-PDF - (optional) Docker & Docker Compose
-
Repository klonen:
git clone https://github.com/Lucxar/Task-Manager.git cd Task-Manager -
Abhängigkeiten installieren:
npm ci
npm install --save class-validator class-transformer # falls nicht automatisch installiert# Development-Server mit Hot-Reload starten
npm run start:dev- API unter: http://localhost:3000/tasks
- Swagger-UI unter: http://localhost:3000/api
- Frontend unter: http://localhost:3000/
# Build für Produktion
npm run build
# Produktions-Server starten
npm run start:prod- Build-Artefakte in: dist/
- Statische UI in: public/
Script Befehl Beschreibung start:dev npm run start:dev NestJS im Watch-Mode build npm run build Transpiliert Backend & UI in dist/ start:prod npm run start:prod Startet die App aus dem dist/-Ordner smoke npm run smoke Automatischer Smoke-Test (POST, PATCH, GET, DELETE) test:e2e npm run test:e2e Jest E2E-Tests swagger:pdf npm run swagger:pdf Generiert dist/swagger.pdf aus der OpenAPI-Spec
Das Script test/smoke.js führt automatisch folgende Schritte aus:
- Legt zwei neue Tasks an (POST /tasks)
- Updated einen Task (PATCH /tasks/:id)
- Listet alle Tasks auf und prüft die Anzahl (GET /tasks)
- Löscht einen Task (DELETE /tasks/:id) Erfolgreicher Lauf gibt ✅ Smoke-Test erfolgreich zurück.
Nach dem Start erreichbar unter:
http://localhost:3000/apiHier findest du alle Endpunkte, Models und Beispiel-Payloads. Für den PDF-Export:
npm run swagger:pdf
# -> Datei: dist/swagger.pdf