Smart Cafe — Serverless Cloud Ordering System
A production-ready, fully serverless cafe ordering system built on AWS. Features online menu browsing, order placement with optional table reservations, real-time order tracking, email notifications, and an admin dashboard with live revenue and popularity analytics — all at $0/month operating cost within AWS Free Tier.
Overview
Smart Cafe is a production-grade, fully serverless cafe ordering system. Customers can browse a digital menu, place orders with optional table reservations, receive email confirmations, and track order status in real time. Cafe owners gain access to an admin dashboard with live analytics — daily revenue, popular items, and order status breakdowns. The entire system runs on AWS Free Tier, costing $0/month to operate.
The frontend is a static site hosted on AWS Amplify (auto-deployed from GitHub), while the backend consists of five Python AWS Lambda functions exposed via Amazon API Gateway, with DynamoDB as the NoSQL database and Gmail SMTP for email notifications.

Key Features
Online Menu Browsing
Browse digital menu with categories, descriptions, and quantity selection
Order Placement
Place orders with optional table reservation and special instructions
Real-Time Tracking
Track order status by unique Order ID — from preparation to ready for pickup
Email Notifications
Order confirmation, admin alerts, and ready-for-pickup notifications via Gmail SMTP
Admin Dashboard
View all orders, update status, and manage the order queue from a single interface
Live Analytics
Daily revenue totals, top 5 popular items, and order status breakdown charts

Architecture
Frontend — AWS Amplify
The frontend is a static HTML/CSS/JavaScript site hosted on AWS Amplify with continuous deployment from GitHub. Every push to the repository triggers an automatic build and deploy via the amplify.yml pipeline. The UI features a warm coffee shop aesthetic using Playfair Display and Inter fonts, with responsive design and scroll-in animations.
Backend — Serverless on AWS
API Gateway
RESTful API with regional endpoints routing requests to the appropriate Lambda functions. Provides request validation, throttling, and CORS configuration.
Lambda Functions (×5)
Python 3.14 serverless functions handling order processing, order retrieval, status updates, analytics computation, and order status queries. Each function has a single responsibility and independent IAM role.
DynamoDB
NoSQL database with on-demand capacity. Stores all order records with efficient query patterns for order lookup by ID, status filtering, and analytics aggregation.
Email Notifications
Gmail SMTP via Python's smtplib. Three triggers: order confirmation to customer, new order alert to admin, and ready-for-pickup notification to customer.
Lambda Functions Detail
cafe-order-processor POST /
Validates incoming order data, stores it in DynamoDB, sends confirmation email to customer and alert email to admin.
get-orders GET /
Lists all orders with optional search/filtering by date range, status, or table number.
update-order-status PUT /
Updates order status (confirmed → preparing → ready) and sends ready-for-pickup email notification.
get-analytics GET /analytics
Computes daily revenue, total revenue, top 5 popular items, and order status breakdown from DynamoDB data.
get-order-status GET /order
Single order lookup by Order ID — used by the customer-facing tracking page.
AWS Resources
AWS Amplify
Static site hosting with GitHub CI/CD
Amazon API Gateway
REST API — regional, 5 endpoints
AWS Lambda ×5
Python 3.14, custom IAM roles
Amazon DynamoDB
NoSQL, on-demand capacity
IAM Roles
Least-privilege per-function policies
Gmail SMTP
Email via Python smtplib
Security & Operations
- •HTML sanitization on all user inputs to prevent XSS attacks
- •Environment variables for all secrets (SMTP credentials, API keys) — never committed to the repository
- •Custom IAM roles per Lambda function enforcing least-privilege access to DynamoDB tables
- •API Gateway throttling to prevent abuse
- •CORS configuration limiting cross-origin requests to the Amplify domain
- •Structured logging from all Lambda functions for observability via CloudWatch
Skills & Technologies
Key Takeaways
- •Serverless architecture eliminates infrastructure management — no servers to patch, no uptime to maintain
- •AWS Free Tier is sufficient for a production-grade ordering system with real-world features
- •Lambda + API Gateway + DynamoDB is a powerful triad for event-driven REST APIs
- •Email notifications add significant user value with minimal complexity via SMTP
- •Separate Lambda functions per endpoint keeps the codebase modular and independently deployable
- •Security (input sanitization, IAM least-privilege, secrets management) must be baked in from the start