Inspiration
At Sri Lanka's passport offices, long queues and manual appointment processes often lead to overcrowding, frustration, and wasted time for both citizens and staff. We wanted to build a solution that modernizes queue management using cloud-native, serverless technology with the goal of improving efficiency, reducing wait times, and delivering a better citizen experience.
What it does
This system allows Sri Lankan passport offices to manage customer queues in real-time. It includes: - Appointment booking via API - Live queue status lookup by date and location - Queue advancement for admin/staff to call next customer - Email notifications when a customer’s token is near
How we built it
Built entirely on AWS Lambda with Python - Data stored in Amazon DynamoDB - Triggered via API Gateway for public endpoints - Used Amazon EventBridge to decouple queue advancement from notifications - Used Amazon SES for sending email alerts to customers - Code versioned and published to GitHub
Challenges we ran into
- SES sandbox limitations: Unable to email real users without verifying addresses
- Decimal values from DynamoDB: Had to write a custom converter for JSON serialization
- IAM permissions: Needed careful setup to allow Lambdas to invoke to the services
- Designing for multi-location queues while keeping the system stateless and scalable
Accomplishments that we're proud of
- Fully serverless solution — no EC2, no manual scaling
- API-first design, easily pluggable into a frontend or mobile app
- Email notification working through SES for verified recipients
What we learned
- Deepened knowledge of AWS services mainly AWS Lambda
- Learned how to structure modular, reusable Lambda functions
- Practical lessons on SES, DynamoDB indexing, and AWS IAM roles
- Importance of separating logic (like notifying users) from action triggers
What's next for sri-lanka-passport-queue-system
- Build a frontend (Vue.js or mobile app) for citizens to check and manage appointments
- Add SMS alerts using Amazon SNS
- Integrate analytics/dashboard for office admins
- Move SES to production mode to email real citizens
- Offer to other government departments that face similar queue challenges
Built With
- amazon-api-gateway
- amazon-dynamodb
- amazon-lambda
- amazon-ses
- amazon-web-services
- python
Log in or sign up for Devpost to join the conversation.