Madhur Banger

Explorer. Thinker. Builder.

← Back to Work

Serverless Inventory Management System

Workshop & Seminar

AWS · CI/CD

TypeScriptAWS LambdaAPI GatewayDynamoDBCognitoServerless Framework

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

ResourceURL
Frontendhttps://d3g8yrgnuos3zh.cloudfront.net
API Base URLhttps://s26yt7k27l.execute-api.us-east-1.amazonaws.com/prod
API Documentationhttps://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

#RequirementStatus
1JavaScript/TypeScript — Backend in Node.js, Frontend in React✅
2Infrastructure as Code — Serverless Framework✅
3API Gateway + DynamoDB✅
4Lambda CRUD Functions (13 functions)✅
5CI/CD Multi-Stage Deployment✅
6Fully Working & Documented✅
7Public GitHub Repository✅
8Loom 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

#FunctionMethodEndpointDescription
1healthGET/healthService health check
2getDocsGET/docsSwagger UI documentation
3getDocsSpecGET/docs/specOpenAPI 3.0 spec
4createProductPOST/productsCreate new product
5getProductGET/products/Get product by ID
6listProductsGET/productsList/search products
7updateProductPUT/products/Update product
8deleteProductDELETE/products/Delete product
9createOrderPOST/ordersCreate order (purchase)
10getOrderGET/orders/Get order by ID
11listOrdersGET/ordersList user's orders
12processOrderNotificationSQS Trigger—Process order notifications
13processOrderDLQSQS 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.

View on GitHub