BookTable is a full-stack, cloud-hosted restaurant reservation platform designed to streamline table bookings, restaurant management, and administrative oversight. The system is scalable, secure, and supports role-based access for customers, restaurant managers, and system administrators.
This project was developed as part of an academic curriculum, following Agile methodologies and deployed on AWS infrastructure.
π TEAM NAME : Code Catalysts
π₯ Team Members & Contributions
- Sanjushree Golla β Backend Developer (API Design, Authentication)
- Chanukya Vejandla β Deployment & DevOps (AWS, CI/CD)
- Harsha Vardhan Badithaboina β Frontend Developer (React, UI/UX)
- Jayanth Yarlagadda β Frontend and Database Designer (React, Mysql)
Sanjushree Golla β Designed and implemented secure RESTful APIs for user authentication, reservations, and admin workflows. Integrated JWT for access control and bcrypt for password hashing. Coordinated backend logic and input validation. Contributed to the system architecture and database schema.
Chanukya Vejandla β Led AWS deployment using Elastic Beanstalk with EC2 Auto Scaling and RDS for MySQL. Set up secure environments with HTTPS and monitored system health using CloudWatch. Ensured high availability and fault tolerance.
Harsha Vardhan Badithaboina β Developed the frontend using React.js. Built responsive UI components for all user roles and integrated Google Maps and real-time booking status. Improved accessibility and cross-browser compatibility.
Jayanth Yarlagadda β Designed the MySQL database schema and maintained data integrity. Created UI wireframes and documentation. Managed task boards, weekly scrums, and developed architecture and deployment diagrams.
- Customer: Browse, search, and reserve tables; write reviews; manage bookings.
- Restaurant Manager: Control restaurant info, manage reservations, respond to reviews.
- Admin: Approve listings, moderate reviews, manage users and system settings.
- Frontend: Served through CloudFront CDN
- Backend: Running on EC2 instances
- Database: AWS RDS MySQL instance
- Load Balancing: AWS ElasticΒ LoadΒ Balancer
- JWT-based authentication and secure session management.
- Regular backups, audit logs, and GDPR-compliant user data handling.
- Optimized for scalability (1,000+ concurrent users supported).
Layer | Technology |
---|---|
Frontend | React.js, CSS, Styled Components |
Backend | Node.js, Express.js |
Database | MySQL (Amazon RDS) |
Deployment | AWS EC2, S3 |
Monitoring | AWS CloudWatch |
Authentication | JWT |
π§© Web-first, responsive layouts for desktop and mobile
π Streamlined booking flow (search β select time slot β confirm)
β±οΈ Real-time availability checks to avoid double-bookings
π‘οΈ JWT for stateless, role-based access control (Customer, Manager, Admin)
π bcrypt for password hashing
π Enforced HTTPS, CORS policies, and rate limiting on sensitive routes
π₯οΈ Frontend: React.js single-page application hosted on AWS S3 & CloudFront
π§ Backend: Node.js with Express APIs running on an auto-scaling group of EC2 instances
ποΈ Database: MySQL, managed using AWS RDS
π File Storage: AWS S3 for restaurant image uploads
π Integrated Google Maps Places API for location services and embedding maps
βοΈ Used AWS S3 for storing and serving restaurant images
βοΈ Nodemailer for booking confirmation emails/SMS
π§ MVC Pattern: Organizes the app into Models, Views, and Controllers for clean separation of concerns
β»οΈ Singleton Pattern: Ensures single instances of shared resources like DB connections and email utilities
π Factory Pattern: Dynamically creates objects like JWT tokens and filenames based on parameters
π Observer Pattern: Sends notifications (e.g., emails) when reservation statuses or events change
π§° Builder Pattern: Constructs SQL queries dynamically based on request data
π§ Strategy Pattern: Defines flexible strategies for file handling like storage destinations and filenames
- 3-tier architecture: Frontend (React) β Backend (Express API) β Database (MySQL)
- Modular Components: Authentication, Reservations, Reviews, User Management
- API-Driven: RESTful endpoints documented and tested
- User Authentication: Secure login/register, password management
- Restaurant Search: Filters by location, cuisine, and ratings
- Reservation System: Real-time booking, confirmation, and cancellations
- Review System: Verified customer reviews with moderation tools
- Admin Panel: Approve listings, manage users, view analytics
- Followed Scrum Framework with:
- Sprint Planning and Reviews
- Daily Standups
- Weekly Scrum Reports
- Tools: GitHub
- Continuous Integration/Testing integrated in development flow
π Team Progress
- Project Journal: code_catalysts_project_journal.pdf
- Burndown Chart: Burndown_Chart.pdf
- Scrum Sheet: SCRUM_SHEET.xlsx
- Task Board: Task_board.xlsx
βοΈ XP Core Values: In the journal pdf
Google Sheet links:
- Sprint sheet and Task Board: https://docs.google.com/spreadsheets/d/19llil24bXxkkQ9kxDbmTfY8rllQxSErUM3GAfFTOp7c/edit?usp=sharing
- Burndown Chart: https://docs.google.com/document/d/1T8ebPMvMR_i4Hgn8QFiI1tmCeKMMcX3MhrxIDDxT7BQ/edit?usp=sharing
π¦ Setup Instructions
- Node.js >= 18
- MySQL Database
- AWS Account
# Clone the repository
git clone https://github.com/gopinathsjsu/Team-project-20201-code_catalysts.git
cd project_directory_path
# Backend setup
cd backend
npm install
cp .env.example .env
# Add DB credentials & JWT secret
npm run dev
# Frontend setup
cd ../frontend
npm install
npm start