Serverless Inventory Management System
Workshop & Seminar
AWS · CI/CD
A production-grade, full-stack serverless inventory management system built on AWS, designed and presented as a hands-on seminar to teach enterprise-level serverless architecture, event-driven design, and modern DevOps practices.
This project was built and demonstrated as part of a serverless workshop series conducted at colleges and developer meetups to help students and early-career developers gain real-world experience with AWS serverless technologies.
Live Demo
| Resource | URL |
|---|---|
| Frontend | https://d3g8yrgnuos3zh.cloudfront.net |
| API Base URL | https://s26yt7k27l.execute-api.us-east-1.amazonaws.com/prod |
| API Documentation | https://s26yt7k27l.execute-api.us-east-1.amazonaws.com/prod/docs |
Seminar overview
This workshop was designed to take participants from zero serverless knowledge to deploying a fully working, production-grade application on AWS. Across multiple sessions, attendees learned:
- Session 1 — Serverless Fundamentals: what serverless is, why it matters, and how AWS Lambda, API Gateway, and DynamoDB fit together.
- Session 2 — Building the Backend: hands-on coding of Lambda functions for CRUD operations, using TypeScript, Zod validation, and Middy middleware.
- Session 3 — Event-Driven Architecture: wiring up SQS queues, SNS notifications, and Dead Letter Queues for reliable, asynchronous order processing.
- Session 4 — Authentication & Security: implementing AWS Cognito for user signup/login, JWT-based route protection, and secure API design.
- Session 5 — Frontend & Full-Stack Integration: building a React SPA with Vite and Tailwind CSS, connecting it to the serverless backend via API Gateway.
- Session 6 — CI/CD & Deployment: setting up GitHub Actions pipelines for automated testing, linting, and multi-stage deployments to AWS.
Built for college students exploring cloud/serverless for the first time, early-career developers building real AWS portfolio projects, and anyone preparing for AWS certifications who wants hands-on practice.
Requirements checklist
Mandatory
| # | Requirement | Status |
|---|---|---|
| 1 | JavaScript/TypeScript — Backend in Node.js, Frontend in React | ✅ |
| 2 | Infrastructure as Code — Serverless Framework | ✅ |
| 3 | API Gateway + DynamoDB | ✅ |
| 4 | Lambda CRUD Functions (13 functions) | ✅ |
| 5 | CI/CD Multi-Stage Deployment | ✅ |
| 6 | Fully Working & Documented | ✅ |
| 7 | Public GitHub Repository | ✅ |
| 8 | Loom Video Walkthrough | ✅ |
Optional enhancements (all implemented)
- Specific business case: e-commerce inventory management with orders & notifications
- Individual Lambda packaging with tree-shaking, Middy middleware
- Modular YAML:
resources/dynamodb.yml,resources/cognito.yml, etc. - Deployment scripts:
npm run deploy:dev,npm run deploy:prod, test scripts - Full testing suite: unit tests (Jest), integration tests, E2E test scripts
- AWS Cognito authentication with full signup/login flow, JWT protected routes
Architecture
┌─────────────────────────────────────────────────────────────┐
│ CLIENT LAYER │
│ React SPA (TypeScript + Vite + Tailwind CSS) │
│ Product Browsing · Order Management · Cognito Auth │
│ │ │
│ CloudFront CDN → S3 (Static Hosting) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ API LAYER │
│ API Gateway (REST) — Cognito JWT Authorizer, │
│ Request Validation, Rate Limiting & CORS │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ COMPUTE LAYER │
│ Product CRUD (5) · Order CRUD (3) · Notification Processor │
│ · Health Check — all behind Middy middleware │
│ (error handling, CORS, JSON parsing, logging) │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ DATA & MESSAGING LAYER │
│ DynamoDB (single-table) · SQS (order queue + DLQ) · SNS │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ AUTHENTICATION & MONITORING │
│ Cognito (user pool, JWT, email verification) │
│ CloudWatch (Lambda/API Gateway/SQS/DynamoDB metrics) │
└─────────────────────────────────────────────────────────────┘
Lambda functions
| # | Function | Method | Endpoint | Description |
|---|---|---|---|---|
| 1 | health | GET | /health | Service health check |
| 2 | getDocs | GET | /docs | Swagger UI documentation |
| 3 | getDocsSpec | GET | /docs/spec | OpenAPI 3.0 spec |
| 4 | createProduct | POST | /products | Create new product |
| 5 | getProduct | GET | /products/ | Get product by ID |
| 6 | listProducts | GET | /products | List/search products |
| 7 | updateProduct | PUT | /products/ | Update product |
| 8 | deleteProduct | DELETE | /products/ | Delete product |
| 9 | createOrder | POST | /orders | Create order (purchase) |
| 10 | getOrder | GET | /orders/ | Get order by ID |
| 11 | listOrders | GET | /orders | List user's orders |
| 12 | processOrderNotification | SQS Trigger | — | Process order notifications |
| 13 | processOrderDLQ | SQS Trigger | — | Handle failed notifications |
Tech stack
Backend: Node.js 20.x, TypeScript 5.3+, Serverless Framework 3.x, AWS Lambda, API Gateway (REST), DynamoDB, Amazon SQS, Amazon SNS, Amazon Cognito, Zod, Middy, Jest.
Frontend: React 18.x, TypeScript 5.x, Vite 5.x, Tailwind CSS 3.x, React Query 5.x, React Router 6.x, AWS Amplify 6.x, Axios.