Capstone · Cloud Computing (AWS, Azure, Google Cloud)
Capstone: a clinic appointment booking backend
The brief
Build the backend for a family clinic's online appointment booking: a costed and availability-checked design, a Python Lambda function that validates bookings and refuses double bookings, a DynamoDB table in Mumbai, a least-privilege IAM role, a CloudWatch alarm, the same resource-group lifecycle on Azure, and a full clean-up. You finish with code, a cost estimate, an architecture diagram and a clean-up record in a README.
Why it matters
Clinics, diagnostic labs, salons and coaching centres across India are moving from phone calls to online booking, and a small serverless backend like this is what a cloud engineer would build for them. It shows an employer the whole job in one place: design with numbers, secure code, least privilege, monitoring, multi-cloud awareness and the discipline to clean up.
Skills you practise
- architecture and cost estimates
- composite availability (SLA maths)
- input validation
- DynamoDB key design and conditional writes
- Lambda handlers
- least-privilege IAM policies
- CloudWatch alarms
- Azure resource groups with az
- cleaning up and documenting
You need
- A free AWS account with a budget alert set (lab cc-lab-safe-account)
- AWS CLI v2 configured with an IAM Identity Center or IAM user profile, not root, region ap-south-1 (AWS CloudShell in Mumbai works well)
- An Azure free account with a budget in Cost Management, and the Azure CLI (or Azure Cloud Shell)
- A drawing tool for the architecture diagram, such as draw.io (diagrams.net)
What you will have at the end
A README with an architecture diagram, cost estimate, availability figures, security notes and a dated clean-up record; plan.py and booking.py with every check passing; and the pasted proof that the backend ran in Mumbai, refused a double booking, was watched by an alarm, and was fully removed from AWS and Azure.
How it is marked (rubric, 100 points)
| Working, safe codeEvery browser check passes; the deployed function returned 201 then 409 using a conditional write. | 30 |
|---|---|
| Design with numbersThe README gives the cost for 3,000 and 1,000,000 bookings (example prices) and the availability and downtime, and explains them. | 20 |
| Security and operationsNon-root identity and a budget; the role allows only PutItem, GetItem and Query on one table; an alarm watched Errors; data stayed in ap-south-1. | 25 |
| Clean-up and documentationEverything on AWS and Azure was deleted and proven gone, and the README is clear enough for another engineer to rebuild it. | 25 |
0/12 steps done
Step 1 of 12
Safety first
Your CLI identity is not root and at least one budget exists.
This capstone creates real resources on two clouds, so start the way a professional does: check who you are and that a budget will warn you. The first command prints your identity's ARN; the second counts your budgets.
Everything here stays within free allowances or a few cents of credits if you clean up the same day. Work in ap-south-1 (Mumbai) throughout: patient data must stay in India.
$ aws sts get-caller-identity --query Arn --output text; aws budgets describe-budgets --account-id $(aws sts get-caller-identity --query Account --output text) --query "length(Budgets)"Your notes: plan.py, booking.py, README.md
Write down each command you ran. It goes into your project summary.