Hệ thống quản lý Karaoke chuyên nghiệp với kiến trúc 3 lớp hiện đại, tối ưu hiệu năng và trải nghiệm người dùng!
Dự án được xây dựng theo chuẩn mực thiết kế tách biệt các lớp trách nhiệm, giúp bảo trì và mở rộng dễ dàng:
- Controller Layer: Tiếp nhận và điều phối các yêu cầu từ Client.
- Business Logic Layer (BUS): Xử lý các quy tắc nghiệp vụ phức tạp (tính tiền giờ, quản lý tồn kho).
- Data Access Object (DAO): Giao tiếp trực tiếp với MongoDB để truy vấn dữ liệu.
WebKara/
├── app/
│ ├── bus/ # Lớp xử lý nghiệp vụ chính
│ ├── controllers/ # Bộ điều khiển điều hướng yêu cầu
│ ├── dao/ # Lớp truy cập dữ liệu (Queries)
│ ├── model/ # Định nghĩa Schema Mongoose (MongoDB)
│ ├── routes/ # Cấu hình API và điều hướng trang
│ ├── middlewares/ # Bảo mật JWT & Phân quyền Staff/Manager
│ └── utils/ # Tiện ích bổ trợ toàn hệ thống
├── config/ # Cấu hình kết nối DB & Environment
├── public/ # Assets tĩnh (CSS, JS, Uploads local)
├── views/ # Giao diện Handlebars (Layouts & Partials)
└── app.js # Entry Point của hệ thống
- Real-time Status: Theo dõi trạng thái phòng (Trống, Đang hát, Đã đặt, Bảo trì) trực quan.
- Pricing Engine: Tự động tính tiền giờ theo bảng giá linh hoạt (Ngày/Đêm, Thường/Vip).
- Equipment Tracking: Quản lý chi tiết thiết bị (Loa, Mic, Tivi) lắp đặt trong từng phòng.
- Menu Đa Dạng: Quản lý mặt hàng theo danh mục (Đồ uống, Thức ăn, Snacks).
- Auto-Inventory: Tự động trừ số lượng tồn kho ngay khi xuất hóa đơn dịch vụ.
- Cảnh báo tồn kho: Thông báo các mặt hàng sắp hết để nhập hàng kịp thời.
- Booking Hub: Ghi nhận đặt trước, quản lý thông tin khách hàng thân thiết.
- Invoice Generation: Xuất hóa đơn chi tiết bao gồm Tiền giờ + Dịch vụ + Thuế phí.
- Optimistic Payment: Quy trình thanh toán nhanh chóng, hỗ trợ chỉnh sửa trước khi tất toán.
- JWT & Cookie: Xác thực an toàn, duy trì phiên làm việc ổn định.
- Role-based Access Control (RBAC): Phân quyền chặt chẽ giữa Chủ cửa hàng (Manager) và Nhân viên (Staff).
- Runtime: Node.js & Express Framework.
- Database: MongoDB (Mongoose) - Linh hoạt và tốc độ cao.
- Auth: JSON Web Token (JWT) + Bcryptjs mã hóa mật khẩu.
- Storage: Tích hợp Cloudinary cho việc quản lý ảnh phòng và mặt hàng.
- View Engine: Handlebars (HBS) với hệ thống Layout/Partials tối ưu UI.
- Styles: CSS3 Custom Design & Bootstrap components.
- Icons: FontAwesome & Lucide Icons.
- Node.js: Phiên bản 18 trở lên.
- MongoDB: Đã cài đặt MongoDB Local hoặc URI MongoDB Atlas.
-
Cài đặt dependencies:
npm install
-
Cấu hình biến môi trường: Tạo file
.envvà điền đầy đủ các thông tin sau:PORT=3000 MONGODB_URI=your_uri_here JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_name CLOUDINARY_API_KEY=your_key CLOUDINARY_API_SECRET=your_secret
-
Khởi tạo Database (Seed Data):
node setup-mongodb.js
-
Khởi chạy Development Mode:
npm run start
Dự án được thiết kế với sự tỉ mỉ về UI/UX và độ ổn định Backend cao nhất!
Made with ❤️ by WebKara Team