University Project: Cloud Computing (AWS Variant)
This project is a fully serverless web application designed to manage car repair tickets. It allows customers to submit repair requests via a web interface, automatically stores them in a NoSQL database, and sends asynchronous email notifications to the administration.
The architecture is built on Amazon Web Services (AWS) using the event-driven serverless model.
This project leverages the AWS Free Tier services to create a scalable and cost-effective solution.
| Component | AWS Service | Description |
|---|---|---|
| Compute | AWS Lambda (Python 3.12) | Handles business logic, data validation, and database operations. |
| API | Amazon API Gateway | Exposes HTTP API endpoints to connect the frontend with the backend. |
| Storage | Amazon DynamoDB | NoSQL database used to store repair tickets with auto-generated IDs. |
| Notifications | Amazon SNS | Sends email alerts asynchronously when a new ticket is created. |
| Frontend | Amazon S3 | Hosts the static website (HTML/JS) via Static Website Hosting. |
| IaC | AWS SAM | Infrastructure as Code template (template.yaml) defining the resources. |
| Monitoring | AWS CloudWatch & X-Ray | Provides logging, error tracking, and service mapping. |
- Ticket Submission: Users can submit vehicle details and issue descriptions via a responsive web form.
- Data Validation: The backend validates input data (returns
400 Bad Requestfor missing fields). - Error Handling: Implements
try-exceptblocks to handle AWS service errors gracefully (returns500 Internal Server Error). - CORS Support: Configured Cross-Origin Resource Sharing to allow communication between S3 (Frontend) and API Gateway.
- Security: Uses IAM Roles with the Principle of Least Privilege (restricted access to specific DynamoDB tables and SNS topics).
βββ index.html # Frontend: HTML/JS client for submitting tickets
βββ lambda_function.py # Backend: Python logic for AWS Lambda
βββ template.yaml # IaC: AWS SAM template defining infrastructure
βββ README.md # Project documentation