How uvraj3927/restaurent-booking-system works
Pyrites Grill is a restaurant menu and reservation application, presented as a hands-on AWS infrastructure project. Guests browse menu items, check table availability, create reservations, then retrieve or cancel them using a booking reference and email. Admin endpoints support booking lookup and menu management. The Flask service uses SQLAlchemy models and a configured database; startup creates tables and seeds initial menu and table data. The README documents static hosting on S3, an EC2-hosted API, and a private RDS database. Infrastructure wiring is represented at the documented level because the Terraform files were not sampled.
Main entry points: app.py Flask App Startup · extensions.py SQLAlchemy Extension · api.py Guest API · models.py Menu, Table & Booking Models
Components 18
Guest Web App
- Menu & Booking UI
frontend/js/app.js - API Base Config
frontend/js/config.js
Flask Application
- Guest API
backend/routes/api.py - Admin API
backend/routes/admin.py - Flask App Startup
backend/app.py - App & DB Settings
backend/config.py - Initial Menu & Tables
backend/seeds.py
Persistence
- SQLAlchemy Extension
backend/extensions.py - Menu, Table & Booking Models
backend/models.py - Application Database
AWS Infrastructure
- Static Frontend Hosting
Infra/s3.tf - API Server
Infra/main.tf - Isolated VPC
Infra/main.tf - Public Subnet
Infra/main.tf - Private Subnet
Infra/main.tf - Security Groups
Infra/main.tf - Managed MySQL
Infra/main.tf
Other components
- Guest
Connections 27
- Guest → Menu & Booking UI: uses
README.md - Menu & Booking UI → API Base Config: reads base URL
frontend/js/app.js - Menu & Booking UI → Guest API: requests menu, availability & bookings
frontend/js/app.js - Flask App Startup → Guest API: registers
backend/app.py - Flask App Startup → Admin API: registers
backend/app.py - Flask App Startup → App & DB Settings: loads
backend/app.py - Flask App Startup → SQLAlchemy Extension: initializes
backend/app.py - Flask App Startup → Menu, Table & Booking Models: imports
backend/app.py - Flask App Startup → Initial Menu & Tables: runs at startup
backend/app.py - Guest API → Menu, Table & Booking Models: queries & updates
backend/routes/api.py - Guest API → SQLAlchemy Extension: commits changes
backend/routes/api.py - Guest API → App & DB Settings: reads booking rules
backend/routes/api.py - Admin API → Menu, Table & Booking Models: queries & updates
backend/routes/admin.py - Admin API → SQLAlchemy Extension: commits changes
backend/routes/admin.py - Admin API → App & DB Settings: checks admin key
backend/routes/admin.py - Initial Menu & Tables → Menu, Table & Booking Models: creates initial records
backend/seeds.py - Initial Menu & Tables → SQLAlchemy Extension: commits records
backend/seeds.py - Menu, Table & Booking Models → SQLAlchemy Extension: defines ORM entities
backend/models.py - SQLAlchemy Extension → Application Database: persists records
- Static Frontend Hosting → Guest: serves frontend
README.md - Guest → API Server: calls Flask API
README.md - API Server → Managed MySQL: accesses database
README.md - Isolated VPC → Public Subnet: contains
README.md - Isolated VPC → Private Subnet: contains
README.md - Public Subnet → API Server: hosts
README.md - Private Subnet → Managed MySQL: hosts
README.md - Security Groups → Managed MySQL: restricts access
README.md