A full-stack serverless food delivery application built with React, Node.js, and AWS.
- Frontend: https://d13ys9ydnenx7c.cloudfront.net
- API Endpoint:
https://gf3w1gt2sf.execute-api.us-east-1.amazonaws.com/prod
- React (Vite) - UI Framework
- Lucide React - Icons
- Context API - State Management (Auth & Cart)
- CSS3 - Custom styling with responsive design
- Node.js - Runtime
- AWS Lambda - Serverless Compute
- Amazon API Gateway - REST API Interface
- Amazon DynamoDB - NoSQL Database
- Express.js - Local development framework
- AWS SAM (Serverless Application Model) - IaC for backend
- AWS S3 - Static Website Hosting
- Amazon CloudFront - CDN & HTTPS
- AWS CodePipeline - CI/CD Automation
- AWS CloudTrail - Auditing & Logging
- GitHub - Source Control
- Browse Restaurants: View list of available restaurants.
- View Menu: Dynamic menu loading per restaurant.
- Cart Management: Add/remove items, real-time total calculation.
- Order Placement: Checkout flow with order confirmation.
- Order Tracking: Track status of placed orders.
- Admin Dashboard: Manage restaurants and menu items.
- Authentication: User login/signup (Demo accounts available).
food-delivery/
├── backend/ # Serverless Backend
│ ├── src/
│ │ ├── handlers/ # Lambda Function Handlers
│ │ ├── services/ # Business Logic
│ │ ├── routes/ # Express Routes (Local)
│ │ └── utils/ # Helper functions
│ ├── template.yaml # AWS SAM Template
│ └── seed.js # Database Seeding Script
│
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── components/ # Reusable UI Components
│ │ ├── pages/ # Application Pages
│ │ ├── services/ # API Integration
│ │ └── context/ # Global State
│ └── buildspec.yml # CI/CD Build Specification
- Node.js (v18+)
- AWS CLI (Configured)
- AWS SAM CLI
cd backend
npm install
npm run dev
# Server runs on http://localhost:3001cd frontend
npm install
npm run dev
# App runs on http://localhost:5173This project follows a fully serverless architecture within the AWS Free Tier.
The backend uses AWS SAM to deploy Lambda, API Gateway, and DynamoDB.
cd backend
sam build
sam deploy --guidedResources Created:
- 4 Lambda Functions (Restaurants, Menu, Orders, Users)
- 4 DynamoDB Tables
- 1 API Gateway
The frontend is hosted on S3 and distributed via CloudFront.
Manual Deployment:
cd frontend
npm run build
aws s3 sync dist/ s3://YOUR-BUCKET-NAME --delete
aws cloudfront create-invalidation --distribution-id YOUR-DIST-ID --paths "/*"An AWS CodePipeline is configured to automatically deploy frontend changes from GitHub.
- Source: GitHub (
mainbranch) - Build: AWS CodeBuild (using
buildspec.yml) - Deploy: S3 Sync + CloudFront Invalidation
- Admin:
admin@fooddelivery.com - User:
demo@example.com