Develop a full-stack web application that enables restaurants to manage table availability, waiting queues, and reservations in real time.
- Frontend: Angular 16+ (Angular Material)
- Backend: Node.js + Express + TypeScript
- Database: MySQL
- Node.js installed
- MySQL Server running
- Create a database named
restaurant_db. - Import the schema from
backend/db_schema.sqlinto MySQL.
- Navigate to
backendfolder:cd backend - Install dependencies (already installed, but good to check):
npm install
- Configure
.envfile (ensure DB credentials are correct):PORT=3000 DB_HOST=localhost DB_USER=root DB_PASS=password DB_NAME=restaurant_db JWT_SECRET=your_jwt_secret_key_here
- Start the server:
npm run dev
- Navigate to
frontendfolder:cd frontend - Important: Install Angular Material (if not already):
Choose any theme (e.g., Indigo/Pink), setup global typography and animations as 'Yes'.
ng add @angular/material
- Run the application:
ng serve
- Open browser at
http://localhost:4200.
- User Roles: Customer, Manager.
- Table Management: Tables List, Add Table (Manager), Update Status.
- Queue Management: Join Queue, View Position, Leave Queue.
- Authentication: JWT-based Login/Register.