diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 231 |
1 files changed, 112 insertions, 119 deletions
@@ -63,7 +63,7 @@ The Restaurant Management System enhances the dining experience for customers an | Component | Technology Used | |-----------|----------------| | Frontend | Next.js, Shadcn UI | -| Backend | Node.js, Express.js, TypeScript | +| Backend | Node.js, Express.js, JavaScript | | Database | MongoDB (MongoDB Atlas) | | Authentication | JWT, bcrypt.js | | Real-Time Updates | Socket.io | @@ -109,7 +109,7 @@ The Restaurant Management System enhances the dining experience for customers an ## Project Directory Structure ``` -restaurant-management-system/ +. ├── README.md ├── package.json ├── .gitignore @@ -117,124 +117,117 @@ restaurant-management-system/ ├── frontend/ # Next.js frontend │ ├── .env.local # Frontend environment variables │ ├── package.json # Frontend dependencies -│ ├── tsconfig.json # TypeScript configuration +│ ├── jsconfig.json # JavaScript configuration │ ├── next.config.js # Next.js configuration │ ├── public/ # Static assets │ │ ├── images/ │ │ ├── fonts/ │ │ └── favicon.ico -│ ├── app/ # Next.js App Router -│ │ ├── layout.tsx # Root layout -│ │ ├── page.tsx # Homepage -│ │ ├── globals.css # Global CSS -│ │ ├── (auth)/ # Authentication routes -│ │ │ ├── login/ -│ │ │ └── register/ -│ │ ├── menu/ # Menu browsing routes -│ │ ├── reservations/ # Reservation routes -│ │ ├── orders/ # Order routes -│ │ ├── feedback/ # Feedback routes -│ │ ├── profile/ # User profile routes -│ │ ├── admin/ # Admin dashboard routes -│ │ │ ├── layout.tsx -│ │ │ ├── page.tsx -│ │ │ ├── users/ -│ │ │ ├── menu/ -│ │ │ ├── reservations/ -│ │ │ ├── orders/ -│ │ │ └── reports/ -│ │ └── staff/ # Staff dashboard routes -│ │ ├── layout.tsx -│ │ ├── page.tsx -│ │ ├── orders/ -│ │ └── reservations/ -│ ├── components/ # Reusable components -│ │ ├── ui/ # Shadcn UI components -│ │ ├── layouts/ # Layout components -│ │ ├── auth/ # Authentication components -│ │ ├── menu/ # Menu-related components -│ │ ├── orders/ # Order-related components -│ │ ├── reservations/ # Reservation components -│ │ ├── feedback/ # Feedback components -│ │ ├── admin/ # Admin dashboard components -│ │ └── staff/ # Staff dashboard components -│ ├── lib/ # Utility functions -│ │ ├── utils.ts -│ │ ├── hooks/ # Custom hooks -│ │ ├── api/ # API client functions -│ │ └── validators/ # Form validators -│ └── context/ # React context providers -│ ├── auth-context.tsx -│ ├── cart-context.tsx -│ └── theme-context.tsx +│ ├── src/ # Source code directory +│ │ ├── app/ # Next.js App Router +│ │ │ ├── layout.js # Root layout +│ │ │ ├── page.js # Homepage +│ │ │ ├── globals.css # Global CSS +│ │ │ ├── (auth)/ # Authentication routes +│ │ │ │ ├── login/ +│ │ │ │ └── register/ +│ │ │ ├── menu/ # Menu browsing routes +│ │ │ ├── reservations/ # Reservation routes +│ │ │ ├── orders/ # Order routes +│ │ │ ├── feedback/ # Feedback routes +│ │ │ ├── profile/ # User profile routes +│ │ │ ├── admin/ # Admin dashboard routes +│ │ │ │ ├── layout.js +│ │ │ │ ├── page.js +│ │ │ │ ├── users/ +│ │ │ │ ├── menu/ +│ │ │ │ ├── reservations/ +│ │ │ │ ├── orders/ +│ │ │ │ └── reports/ +│ │ │ └── staff/ # Staff dashboard routes +│ │ │ ├── layout.js +│ │ │ ├── page.js +│ │ │ ├── orders/ +│ │ │ └── reservations/ +│ │ ├── components/ # Reusable components +│ │ │ ├── ui/ # Shadcn UI components +│ │ │ ├── layouts/ # Layout components +│ │ │ ├── auth/ # Authentication components +│ │ │ ├── menu/ # Menu-related components +│ │ │ ├── orders/ # Order-related components +│ │ │ ├── reservations/ # Reservation components +│ │ │ ├── feedback/ # Feedback components +│ │ │ ├── admin/ # Admin dashboard components +│ │ │ └── staff/ # Staff dashboard components +│ │ ├── lib/ # Utility functions +│ │ │ ├── utils.js +│ │ │ ├── hooks/ # Custom hooks +│ │ │ ├── api/ # API client functions +│ │ │ └── validators/ # Form validators +│ │ └── context/ # React context providers +│ │ ├── auth-context.js +│ │ ├── cart-context.js +│ │ └── theme-context.js └── backend/ # Express.js backend ├── .env # Backend environment variables ├── package.json # Backend dependencies - ├── tsconfig.json # TypeScript configuration ├── src/ - │ ├── index.ts # Entry point + │ ├── index.js # Entry point │ ├── config/ # Configuration files - │ │ ├── database.ts # Database configuration - │ │ ├── env.ts # Environment variables - │ │ └── logger.ts # Logging configuration + │ │ ├── database.js # Database configuration + │ │ ├── env.js # Environment variables + │ │ └── logger.js # Logging configuration │ ├── models/ # MongoDB models - │ │ ├── User.ts - │ │ ├── MenuItem.ts - │ │ ├── Category.ts - │ │ ├── Table.ts - │ │ ├── Reservation.ts - │ │ ├── Order.ts - │ │ ├── OrderItem.ts - │ │ └── Feedback.ts + │ │ ├── User.js + │ │ ├── MenuItem.js + │ │ ├── Category.js + │ │ ├── Table.js + │ │ ├── Reservation.js + │ │ ├── Order.js + │ │ ├── OrderItem.js + │ │ └── Feedback.js │ ├── routes/ # API routes - │ │ ├── index.ts # Route aggregator - │ │ ├── auth.routes.ts - │ │ ├── users.routes.ts - │ │ ├── menu.routes.ts - │ │ ├── reservations.routes.ts - │ │ ├── orders.routes.ts - │ │ └── feedback.routes.ts + │ │ ├── index.js # Route aggregator + │ │ ├── auth.routes.js + │ │ ├── users.routes.js + │ │ ├── menu.routes.js + │ │ ├── reservations.routes.js + │ │ ├── orders.routes.js + │ │ └── feedback.routes.js │ ├── controllers/ # Route controllers - │ │ ├── auth.controller.ts - │ │ ├── users.controller.ts - │ │ ├── menu.controller.ts - │ │ ├── reservations.controller.ts - │ │ ├── orders.controller.ts - │ │ └── feedback.controller.ts + │ │ ├── auth.controller.js + │ │ ├── users.controller.js + │ │ ├── menu.controller.js + │ │ ├── reservations.controller.js + │ │ ├── orders.controller.js + │ │ └── feedback.controller.js │ ├── services/ # Business logic - │ │ ├── auth.service.ts - │ │ ├── users.service.ts - │ │ ├── menu.service.ts - │ │ ├── reservations.service.ts - │ │ ├── orders.service.ts - │ │ └── feedback.service.ts + │ │ ├── auth.service.js + │ │ ├── users.service.js + │ │ ├── menu.service.js + │ │ ├── reservations.service.js + │ │ ├── orders.service.js + │ │ └── feedback.service.js │ ├── middleware/ # Express middleware - │ │ ├── auth.middleware.ts - │ │ ├── error.middleware.ts - │ │ ├── validation.middleware.ts - │ │ └── role.middleware.ts + │ │ ├── auth.middleware.js + │ │ ├── error.middleware.js + │ │ ├── validation.middleware.js + │ │ └── role.middleware.js │ ├── utils/ # Utility functions - │ │ ├── jwt.ts - │ │ ├── password.ts - │ │ └── validation.ts - │ ├── socket/ # Socket.io implementation - │ │ ├── index.ts - │ │ └── handlers.ts - │ └── types/ # TypeScript type definitions - │ ├── express.d.ts # Express type extensions - │ ├── user.types.ts - │ ├── menu.types.ts - │ ├── reservation.types.ts - │ ├── order.types.ts - │ └── feedback.types.ts + │ │ ├── jwt.js + │ │ ├── password.js + │ │ └── validation.js + │ └── socket/ # Socket.io implementation + │ ├── index.js + │ └── handlers.js └── tests/ # Backend tests ├── unit/ - │ ├── auth.test.ts - │ ├── users.test.ts + │ ├── auth.test.js + │ ├── users.test.js │ └── ... └── integration/ - ├── auth.test.ts - ├── menu.test.ts + ├── auth.test.js + ├── menu.test.js └── ... ``` @@ -242,42 +235,42 @@ restaurant-management-system/ ### Initial Setup & Configuration -- [ ] Initialize Next.js frontend project with TypeScript -- [ ] Set up Shadcn UI components and theming -- [ ] Initialize Express.js backend with TypeScript -- [ ] Configure MongoDB connection and schemas -- [ ] Set up project repository structure -- [ ] Configure ESLint and Prettier -- [ ] Set up environment variables and configuration +- [x] Initialize Next.js frontend project with JavaScript +- [x] Set up Shadcn UI components and theming +- [x] Initialize Express.js backend with JavaScript +- [x] Configure MongoDB connection and schemas +- [x] Set up project repository structure +- [x] Configure ESLint and Prettier +- [x] Set up environment variables and configuration ### Backend Tasks #### User Management -- [ ] Create user model with role-based permissions -- [ ] Implement authentication middleware using JWT -- [ ] Create API endpoints for registration and login -- [ ] Implement password hashing with bcrypt -- [ ] Set up role-based access controls +- [x] Create user model with role-based permissions +- [x] Implement authentication middleware using JWT +- [x] Create API endpoints for registration and login +- [x] Implement password hashing with bcrypt +- [x] Set up role-based access controls #### Menu Management -- [ ] Create menu item model with categories +- [x] Create menu item model with categories - [ ] Develop CRUD API endpoints for menu items - [ ] Implement image upload for menu items -- [ ] Create menu categories functionality +- [x] Create menu categories functionality - [ ] Implement search and filtering capabilities #### Table Reservation System -- [ ] Create table and reservation models +- [x] Create table and reservation models - [ ] Develop availability checking algorithm - [ ] Implement reservation API endpoints - [ ] Create scheduler for reservation management - [ ] Implement notifications for reservations #### Order Management -- [ ] Create order and order items models -- [ ] Implement order status tracking +- [x] Create order and order items models +- [x] Implement order status tracking - [ ] Develop API endpoints for orders -- [ ] Implement real-time order updates with Socket.io +- [x] Implement real-time order updates with Socket.io - [ ] Create order history functionality #### Billing System @@ -286,7 +279,7 @@ restaurant-management-system/ - [ ] Develop offline payment recording system #### Feedback System -- [ ] Create feedback and ratings models +- [x] Create feedback and ratings models - [ ] Implement API endpoints for feedback - [ ] Develop analytics for feedback data |