🔗 Live Demo: http://cjgragasin.projects.s3-website-ap-southeast-1.amazonaws.com/
A serverless ticketing system where users submit IT support tickets through a web form. Tickets are stored in DynamoDB and trigger email notifications via SNS.
- S3 — hosts static HTML frontend
- API Gateway — REST API endpoint (POST /tickets)
- Lambda (Python) — processes ticket submissions
- DynamoDB — stores ticket records
- SNS — sends email notifications on new tickets
Python 3.13, boto3, AWS Lambda, API Gateway, DynamoDB, SNS, S3
flowchart TD
A[User] -->|Submits ticket form| B[S3 Static Website]
B -->|POST /tickets| C[API Gateway]
C --> D[Lambda Function]
D -->|Saves ticket| E[DynamoDB]
D -->|Publishes message| F[SNS Topic]
F -->|Sends notification| G[Email Alert]
- Add Cognito for user authentication
- Use least-privilege IAM policies instead of FullAccess
- Add HTTPS via CloudFront
- User fills out a web form hosted on S3
- Form submits data via fetch() to API Gateway REST endpoint
- API Gateway triggers a Lambda function (Python)
- Lambda generates a unique ticket ID and saves the ticket to DynamoDB
- Lambda publishes a notification to SNS, which emails the support team
- Python 3.13 + boto3 (AWS SDK)
- AWS Lambda
- API Gateway (REST API)
- DynamoDB
- SNS (email notifications)
- S3 (static website hosting)