Smart Cafe — Serverless Cloud Ordering System

AWSServerlessLambdaAPI GatewayDynamoDBPythonJavaScriptAmplifyCloud

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.

Smart Cafe homepage showing the digital menu
Smart Cafe homepage — browse the digital menu with categories and quantity selection

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

Smart Cafe order placement page
Order placement interface — select items, add special instructions, and reserve a table

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

AWSLambdaAPI GatewayDynamoDBAmplifyPythonJavaScriptHTML/CSSREST APIServerlessCloudGitHub CI/CDIAMSMTP

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