A cloud-native warranty and product tracking application built on AWS serverless architecture.
This application enables users to register products, manage warranty information, upload supporting documents, track service history, and receive automated reminders for expiring warranties. Built entirely on Amazon Web Services using a serverless architecture.
| Service | Purpose |
|---|---|
| AWS Lambda | Serverless compute for 13 API handlers (Python 3.11) |
| Amazon DynamoDB | NoSQL database (Products, Warranties, Service History) |
| Amazon S3 | Frontend static website hosting + document storage |
| Amazon API Gateway | REST API routing with Cognito authorizer |
| Amazon Cognito | User authentication (signup, login, JWT tokens) |
| Amazon CloudWatch | Logging + daily scheduled warranty expiry checks |
- Frontend: React 18, Tailwind CSS, Vite, React Router, Axios
- Backend: Python 3.11, AWS Lambda, Serverless Framework
- Database: DynamoDB (3 tables with GSIs)
- Auth: Amazon Cognito User Pool
- CI/CD: GitHub Actions (test → deploy backend → deploy frontend)
- Library: Custom Python package
warranty-tracker-nci(PyPI)
├── backend/
│ ├── handlers/ # Lambda function handlers
│ │ ├── products.py # Products CRUD
│ │ ├── warranties.py # Warranties CRUD
│ │ ├── service_history.py
│ │ ├── documents.py # S3 presigned URL operations
│ │ └── reminders.py # Scheduled warranty expiry checks
│ ├── utils/ # Shared utilities (db, auth, response)
│ └── serverless.yml # Infrastructure as Code
├── frontend/
│ └── src/
│ ├── pages/ # 11 page components
│ ├── components/ # 5 reusable UI components
│ ├── services/ # API client and auth service
│ └── context/ # React AuthContext
├── warranty-tracker-lib/ # Custom PyPI library
│ ├── warranty_tracker/ # Core business logic
│ └── tests/ # Unit tests
├── doc/
│ └── main.tex # LaTeX project report
└── .github/workflows/
└── deploy.yml # CI/CD pipeline
The GitHub Actions pipeline runs automatically on every push to main:
- Test Library - Runs pytest on the custom library
- Deploy Backend - Deploys Lambda functions via Serverless Framework
- Deploy Frontend - Builds React app and syncs to S3
| Secret | Description |
|---|---|
AWS_ACCESS_KEY_ID |
AWS IAM access key |
AWS_SECRET_ACCESS_KEY |
AWS IAM secret key |
The pipeline automatically extracts API_URL, Cognito User Pool ID, and Client ID from CloudFormation outputs after backend deployment.
- Copy
.env.exampleto.envand fill in your AWS credentials - Backend:
cd backend && npm install && npx serverless deploy --stage dev - Frontend:
cd frontend && npm install && npm run dev
Rasool Basha Durbesula (x24205478) - MSc Cloud Computing, National College of Ireland, Dublin