Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Hotel_Management

Giới thiệu

Đây là hệ thống website quản lý khách sạn được xây dựng theo mô hình Client–Server, nhằm hỗ trợ các nghiệp vụ cốt lõi trong hoạt động vận hành khách sạn như quản lý phòng, đặt phòng, thanh toán và thống kê doanh thu.


Tính năng chính

  • Xác thực và phân quyền theo vai trò (Quản lý / Lễ tân / Khách hàng), bảo mật bằng JWT
  • Quản lý phòng: thêm, sửa, xóa, tìm kiếm; theo dõi trạng thái phòng theo thời gian thực
  • Quản lý loại phòng: cấu hình giá, sức chứa, mô tả và hình ảnh
  • Quản lý khách hàng: CRUD đầy đủ, tra cứu lịch sử lưu trú
  • Đặt phòng: tạo / hủy đặt phòng, check-in / check-out, theo dõi trạng thái đơn
  • Quản lý dịch vụ: thêm dịch vụ đi kèm, gắn dịch vụ vào booking
  • Thanh toán và hóa đơn: xuất hóa đơn chi tiết, in PDF, hỗ trợ tiền mặt và chuyển khoản
  • Báo cáo doanh thu: thống kê theo ngày / tháng / quý / năm, biểu đồ trực quan, xuất file
  • Giao diện đặt phòng trực tuyến dành riêng cho khách hàng

Công nghệ sử dụng

Thành phần Công nghệ
Frontend ReactJS, TypeScript, HTML/CSS, Vite
Backend Node.js, ExpressJS
Xác thực JWT (JSON Web Token)
Database SQL Server 2022
Triển khai DB Docker Desktop
Quản lý DB Azure Data Studio
Kiểm thử API Postman
IDE Visual Studio Code

Kiến trúc hệ thống

Dự án được xây dựng theo kiến trúc MVC 3 lớp:

  • View (Frontend): Ứng dụng ReactJS + TypeScript hoạt động theo mô hình SPA, giao tiếp với backend thông qua RESTful API.
  • Controller (Backend): Node.js + ExpressJS, tiếp nhận request, xử lý nghiệp vụ và trả kết quả về client.
  • Model (Database): SQL Server 2022 chạy trong Docker, lưu trữ toàn bộ dữ liệu hệ thống.

Cài đặt và chạy dự án

Yêu cầu hệ thống

  • OS: Windows 10 trở lên hoặc macOS 12 trở lên
  • Node.js: phiên bản 18 trở lên
  • Docker Desktop: đã cài đặt và đang chạy
  • Git

Bước 1 — Clone dự án

git clone https://github.com/<Merlokmac>/<Hotel-Management>.git
cd <Hotel-Management>

Bước 2 — Khởi tạo SQL Server bằng Docker

docker run -d \
  --name sqlserver \
  -e "ACCEPT_EULA=Y" \
  -e "SA_PASSWORD=YourStrong!Passw0rd" \
  -p 1433:1433 \
  mcr.microsoft.com/mssql/server:2022-latest

Sau đó mở Azure Data Studio và kết nối với thông tin:

  • Server: localhost
  • Username: sa
  • Password: YourStrong!Passw0rd

Chạy các file .sql trong thư mục database/ để tạo schema và dữ liệu mẫu.

Bước 3 — Chạy Backend

cd Backend
npm install
npm start

Backend chạy tại: http://localhost:8000

Bước 4 — Chạy Frontend

cd FrontEnd/hotel-management-frontend
npm install
npm run dev

Frontend chạy tại: http://localhost:3000


Tài khoản demo

Vai trò Username Password
Quản lý admin 12345678
Lễ tân letanA 12345678
Khách hàng customer_online1 12345678

Cấu trúc thư mục

├── Backend/
│   ├── config/          # Cấu hình kết nối database
│   ├── controllers/     # Xử lý logic nghiệp vụ
│   ├── routes/          # Định nghĩa API endpoints
│   └── server.js
│
├── FrontEnd/
│   └── hotel-management-frontend/
│       ├── src/
│       │   ├── pages/       # Các trang giao diện chính
│       │   ├── components/  # Component tái sử dụng
│       │   ├── services/    # Gọi API
│       │   ├── hooks/       # Custom hooks
│       │   └── contexts/    # Quản lý trạng thái
│       └── package.json
│
└── database/
    └── *.sql            # Script tạo bảng và dữ liệu mẫu

Mô hình dữ liệu

Hệ thống gồm các bảng chính: Account, Role, Employee, Customer, RoomType, Room, Service, Booking, BookingService, Invoice, RevenueReport.


Kiểm thử

Đã thực hiện manual testing với 25 test cases bao phủ toàn bộ luồng nghiệp vụ chính, tất cả đều pass.

Nhóm chức năng Test case Kết quả
Đăng nhập TC01 – TC05 Pass
Gửi OTP TC06 – TC08 Pass
Quản lý khách hàng TC09 – TC13 Pass
Quản lý phòng TC14 – TC18 Pass
Quản lý dịch vụ TC19 – TC21 Pass
Đặt phòng & Thanh toán TC22 – TC25 Pass

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages