Inventory Management System
Inventory API and dashboard built with NestJS, Prisma and React, deployed to AWS across a purpose-built VPC with ECS and RDS.
Architecture Overview
graph TB
subgraph VPC["AWS VPC, two availability zones"]
subgraph Public["Public subnets"]
A[Load balancer]
end
subgraph Private["Private subnets"]
B["NestJS on ECS<br/>Docker"]
end
subgraph Data["Database subnets"]
C[(RDS PostgreSQL)]
end
end
D["React dashboard<br/>Vite + MUI"] --> A --> B --> C
A stock and inventory tracker split into a NestJS API and a React dashboard. The API models products and movements through Prisma against PostgreSQL, validates every payload with class-validator DTOs, and publishes a Swagger document.
The more instructive half of the project was the deployment. Rather than reach for a platform-as-a-service, the API was containerised and placed on ECS inside a hand-built VPC: two availability zones, public and private subnets, NAT egress, and a dedicated database subnet group for RDS. The repository carries a step-by-step record of that build-out.
Key Features:
- Product and inventory movement tracking through a typed REST API
- DTO validation and Swagger documentation on every endpoint
- Material UI dashboard with Redux Toolkit state and client-side routing
- Containerised API image for ECS deployment
- Two-availability-zone VPC with public, private and database subnets
- RDS PostgreSQL behind a dedicated subnet group
- Written deployment runbook covering the full AWS console walkthrough
Tech Stack:
- Backend: NestJS, TypeScript, Prisma, PostgreSQL
- Frontend: React, TypeScript, Vite, Material UI, Redux Toolkit
- Infrastructure: AWS VPC, ECS, RDS, Docker