Bestandsverwaltungssystem
Bestands-API und Dashboard mit NestJS, Prisma und React, auf AWS in einer eigens gebauten VPC mit ECS und RDS ausgerollt.
Architekturüberblick
graph TB
subgraph VPC["AWS-VPC, zwei Availability Zones"]
subgraph Public["Öffentliche Subnetze"]
A[Load Balancer]
end
subgraph Private["Private Subnetze"]
B["NestJS auf ECS<br/>Docker"]
end
subgraph Data["Datenbank-Subnetze"]
C[(RDS PostgreSQL)]
end
end
D["React-Dashboard<br/>Vite + MUI"] --> A --> B --> C
Ein Bestands- und Lagertracker, aufgeteilt in eine NestJS-API und ein React-Dashboard. Die API bildet Produkte und Bewegungen über Prisma auf PostgreSQL ab, validiert jede Nutzlast mit class-validator-DTOs und veröffentlicht ein Swagger-Dokument.
Der lehrreichere Teil des Projekts war das Deployment. Statt zu einer Managed-Platform zu greifen, wurde die API containerisiert und auf ECS in einer von Hand gebauten VPC platziert: zwei Availability Zones, öffentliche und private Subnetze, NAT-Ausgang und eine eigene Datenbank-Subnetzgruppe für RDS. Das Repository hält diesen Aufbau Schritt für Schritt fest.
Hauptfunktionen:
- Produkt- und Bestandsbewegungsverfolgung über eine typisierte REST-API
- DTO-Validierung und Swagger-Dokumentation an jedem Endpunkt
- Material-UI-Dashboard mit Redux-Toolkit-Zustand und clientseitigem Routing
- Containerisiertes API-Image für das ECS-Deployment
- VPC über zwei Zonen mit öffentlichen, privaten und Datenbank-Subnetzen
- RDS PostgreSQL hinter einer eigenen Subnetzgruppe
- Schriftliches Deployment-Runbook für den gesamten Weg über die AWS-Konsole
Tech-Stack:
- Backend: NestJS, TypeScript, Prisma, PostgreSQL
- Frontend: React, TypeScript, Vite, Material UI, Redux Toolkit
- Infrastruktur: AWS VPC, ECS, RDS, Docker