PersönlichEinfach

Bestandsverwaltungssystem

Bestands-API und Dashboard mit NestJS, Prisma und React, auf AWS in einer eigens gebauten VPC mit ECS und RDS ausgerollt.

— Überblick

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
— Stack
TypeScriptNestJSReactNode.jsPrismaPostgreSQLAWSDockerMaterial UIReduxVite