Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số của ngành dịch vụ du lịch và lưu trú, việc áp dụng công nghệ thông tin vào công tác quản trị khách sạn không còn là một lựa chọn mà đã trở thành điều kiện tiên quyết để nâng cao năng lực cạnh tranh. Theo các báo cáo thống kê ngành dịch vụ lưu trú tại Việt Nam, hơn 65% khách sạn quy mô vừa và nhỏ (1 đến 3 sao) vẫn còn phụ thuộc vào các công cụ thủ công như sổ sách giấy tờ hoặc các bảng tính rời rạc trên Microsoft Excel. Phương thức vận hành truyền thống này bộc lộ hàng loạt điểm nghẽn nghiêm trọng: tốc độ xử lý giao dịch chậm, thất thoát doanh thu ngoài ý muốn, sai lệch trong việc kiểm soát tình trạng phòng thực tế (phòng trống, phòng đang sử dụng, phòng đang dọn dẹp) và thiếu hụt khả năng tổng hợp báo cáo kinh doanh tức thời.
Đề tài "Thiết kế và xây dựng phần mềm quản lý khách sạn" do nhóm sinh viên Khoa Công nghệ Thông tin - Trường Đại học Sài Gòn thực hiện dưới sự hướng dẫn của giảng viên Nguyễn Lê Thanh Trúc và Nguyễn Thanh Phước, tập trung giải quyết triệt để bài toán tin học hóa quy trình vận hành tại Khách sạn Katanat (địa chỉ: 82 Bình Hưng Hòa, Quận Bình Tân, TP. Hồ Chí Minh). Khách sạn có quy mô tiêu chuẩn 3 sao với 30 phòng ngủ phân hạng theo 3 nhóm: Phòng Đơn, Phòng Đôi và Phòng VIP, đi kèm các dịch vụ bổ trợ như giặt ủi, thuê xe, đưa đón sân bay và đổi ngoại tệ.
+-------------------------------------------------------------------------+
| MỤC TIÊU CỐT LÕI CỦA DỰ ÁN |
+-------------------------------------------------------------------------+
| 1. Tự động hóa 100% quy trình tạo phiếu thuê, đổi phòng, trả phòng |
| 2. Kiểm soát trạng thái 30 phòng theo thời gian thực (Real-time Status) |
| 3. Tính toán hóa đơn tự động kèm phụ phí trễ giờ & giảm giá khuyến mãi |
| 4. Quản lý tập trung danh mục khách hàng, nhân sự và bảng giá dịch vụ |
| 5. Cung cấp báo cáo thống kê doanh thu và tần suất dịch vụ chính xác |
+-------------------------------------------------------------------------+
Dự án tiếp cận giải pháp thông qua việc xây dựng một ứng dụng máy tính (Desktop Application) chuyên dụng, áp dụng triệt để mô hình kiến trúc phần mềm 3 lớp (3-Tier Architecture: GUI – BUS – DAO) trên nền tảng ngôn ngữ lập trình Java kết hợp hệ quản trị cơ sở dữ liệu quan hệ Microsoft SQL Server. Giải pháp giúp giảm thời gian làm thủ tục nhận/trả phòng từ trung bình 7–10 phút xuống dưới 1 phút (cải thiện hơn 85%), loại bỏ hoàn toàn lỗi đặt trùng phòng (double-booking) và đảm bảo tính minh bạch tài chính tuyệt đối.
Phạm vi của dự án bao trùm toàn bộ các hoạt động nghiệp vụ nội bộ tại quầy lễ tân và bộ phận quản lý khách sạn, thiết lập ranh giới bảo mật nghiêm ngặt thông qua cơ chế phân quyền tài khoản người dùng, tạo nền tảng vững chắc cho việc nâng cấp quy mô kinh doanh trong tương lai.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Khảo sát thực tế tại Khách sạn Katanat cho thấy việc sử dụng Microsoft Excel bộc lộ những lỗ hổng kỹ thuật lớn trong việc quản lý dữ liệu đồng thời (concurrency), không có cơ chế ràng buộc toàn vẹn dữ liệu (referential integrity) và thiếu khả năng phân quyền vai trò.
| Tiêu chí so sánh |
Quản lý sổ sách / Excel truyền thống |
Phần mềm SaaS ngoại nhập (Cloud) |
Giải pháp phần mềm chuyên biệt (Đồ án) |
| Tốc độ xử lý thủ tục |
Chậm (5–10 phút/giao dịch), dễ nhầm |
Nhanh (< 1 phút), cần Internet liên tục |
Tức thì (< 1 phút), chạy mạng LAN ổn định |
| Toàn vẹn & bảo mật dữ liệu |
Rất thấp, dễ mất file hoặc sửa tùy tiện |
Rất cao, dữ liệu lưu trên máy chủ quốc tế |
Cao, cơ chế phân quyền RBAC & CSDL SQL Server |
| Chi phí đầu tư & duy trì |
Thấp ban đầu nhưng tổn thất vận hành cao |
Rất cao (thu phí theo tháng/phòng) |
Tối ưu, trả phí đầu tư một lần, không phí duy trì |
| Độ tương thích nghiệp vụ |
Tùy biến tự do nhưng không chuẩn hóa |
Phức tạp, nhiều tính năng thừa thãi |
Khớp 100% quy trình thực tế của khách sạn |
Yêu cầu người dùng được cấu trúc hóa theo phương pháp phân loại ưu tiên MoSCoW:
- Must have (Bắt buộc phải có): Tạo và cập nhật phiếu thuê phòng (
PhieuThue), tính toán hóa đơn (HoaDon) tự động, thêm/xóa/sửa danh mục phòng (Phong), khách hàng (KhachHang), nhân viên (NhanVien), phân quyền đăng nhập theo chức vụ.
- Should have (Nên có): Cơ chế tính phụ phí trả phòng trễ tự động theo các khung giờ (trễ 14h–15h phụ thu 30%, 15h–18h phụ thu 50%, sau 18h tính 100% tiền ngày); áp dụng mã khuyến mãi (
KhuyenMai) theo điều kiện đơn hàng tối thiểu.
- Could have (Có thể có): Biểu đồ trực quan hóa doanh thu theo năm bằng JFreeChart; bộ lọc phòng thông minh theo từng tầng và phân trang hiển thị.
- Won't have (Chưa thực hiện đợt này): Cổng tích hợp thanh toán online quốc tế (Stripe, PayPal) và đặt phòng trực tuyến qua Mobile App.
Thiết kế hệ thống
Hệ thống được thiết kế theo mô hình kiến trúc phân lớp hướng đối tượng (Object-Oriented 3-Tier Architecture), đảm bảo nguyên tắc phân tách trách nhiệm (Separation of Concerns - SoC):
+-------------------------------------------------------------------------+
| PRESENTATION LAYER (GUI) |
| JFrames & JPanels: FormLogin, FormPhong, FormKhachHang, ... |
+-------------------------------------------------------------------------+
│
▼
+-------------------------------------------------------------------------+
| BUSINESS LOGIC LAYER (BUS) |
| PhongBUS, PhieuThueBUS, HoaDonBUS, KhachHangBUS, KhuyenMaiBUS, ... |
+-------------------------------------------------------------------------+
│
▼
+-------------------------------------------------------------------------+
| DATA ACCESS LAYER (DAO) |
| PhongDAO, PhieuThueDAO, HoaDonDAO, KhachHangDAO, DBConnection, ... |
+-------------------------------------------------------------------------+
│
▼
+-------------------------------------------------------------------------+
| DATABASE (SQL Server / MySQL) |
| Tables: PHONG, KHACHHANG, NHANVIEN, PHIEUTHUE, HOADON, DICHVU, ... |
+-------------------------------------------------------------------------+
- Lớp Giao diện (Presentation Layer - GUI): Xây dựng bằng thư viện Java Swing, đóng vai trò tiếp nhận tương tác từ người dùng (Lễ tân, Quản lý) và trình bày dữ liệu dạng bảng biểu trực quan.
- Lớp Nghiệp vụ (Business Logic Layer - BUS): Chứa đựng toàn bộ các quy tắc nghiệp vụ, kiểm tra tính hợp lệ dữ liệu đầu vào (validation), tính phụ thu, áp dụng chiết khấu khuyến mãi trước khi gửi yêu cầu lưu trữ.
- Lớp Truy xuất dữ liệu (Data Access Object - DAO): Chịu trách nhiệm thực hiện các lệnh truy vấn
SELECT, INSERT, UPDATE, DELETE đến cơ sở dữ liệu thông qua giao tiếp Java Database Connectivity (JDBC).
- Data Transfer Objects (DTO): Các lớp mô hình hóa thực thể (
PhongDTO, KhachHangDTO, HoaDonDTO) dùng để đóng gói và vận chuyển dữ liệu xuyên suốt giữa các tầng.
Lược đồ quan hệ cơ sở dữ liệu (Database Schema)
Cơ sở dữ liệu bao gồm 9 bảng quan hệ chuẩn hóa (3NF):
PHONG (#MaPhong, SoGiuong, LoaiPhong, GiaTheoNgay, GiaTheoGio, TinhTrang)
KHACHHANG (#MaKH, HoTen, CCCD, DiaChi, SDT, NgaySinh, GioiTinh)
NHANVIEN (#MaNV, HoTen, CCCD, DiaChi, SDT, NgaySinh, GioiTinh)
TAIKHOAN (#MaNV, TaiKhoan, MatKhau, Quyen, TinhTrang)
PHIEUTHUE (#MaPT, MaNV, MaKH, MaPhong, HinhThucThue, NgayDen, GioDen, NgayTra, GioTra, TinhTrang)
DICHVU (#MaDV, TenDV, GiaDV, TTDV)
PHIEUSUDUNGDICHVU (#MaPSDDV, MaKH, MaPhong, MaDV, SoLuong, ThoiGianSDDV, TinhTrang)
KHUYENMAI (#MaKM, TenKM, PhanTramKM, NgayBD, NgayKT, TrangThai, DonToiThieu, GiamToiDa)
HOADON (#MaHD, MaNV, MaKH, SoTienKM, TienDV, TongTien, ThoiGianGD)
-- DDL Trích đoạn khởi tạo bảng Phòng và Phiếu Thuê
CREATE TABLE PHONG (
MaPhong VARCHAR(10) PRIMARY KEY,
SoGiuong INT NOT NULL,
LoaiPhong NVARCHAR(50) NOT NULL,
GiaTheoNgay DECIMAL(18,2) NOT NULL,
GiaTheoGio DECIMAL(18,2) NOT NULL,
TinhTrang NVARCHAR(30) DEFAULT N'Còn trống'
);
CREATE TABLE PHIEUTHUE (
MaPT VARCHAR(10) PRIMARY KEY,
MaNV VARCHAR(10) FOREIGN KEY REFERENCES NHANVIEN(MaNV),
MaKH VARCHAR(10) FOREIGN KEY REFERENCES KHACHHANG(MaKH),
MaPhong VARCHAR(10) FOREIGN KEY REFERENCES PHONG(MaPhong),
HinhThucThue NVARCHAR(20) NOT NULL,
NgayDen DATE NOT NULL,
GioDen TIME NOT NULL,
NgayTra DATE,
GioTra TIME,
TinhTrang NVARCHAR(30) NOT NULL
);
Methodology
Dự án áp dụng mô hình phát triển phần mềm Thác nước (Waterfall Model) với tiến trình tuần tự có cấu trúc chặt chẽ qua 6 giai đoạn:
- Thu thập yêu cầu: Phỏng vấn trực tiếp quản lý khách sạn và khảo sát hạ tầng vật lý.
- Phân tích & Thiết kế: Xây dựng biểu đồ Use Case, Sequence Diagram, thiết kế cơ sở dữ liệu ERD và đặc tả màn hình.
- Hiện thực hóa (Coding): Lập trình các module theo phân công nhóm trên Java 17 & NetBeans IDE.
- Kiểm thử (Testing): Kiểm thử đơn vị (Unit Test), kiểm thử tích hợp (Integration Test) và kiểm thử chức năng (Functional Test).
- Triển khai (Deployment): Thiết lập cấu hình hệ thống trên mạng cục bộ khách sạn.
- Bảo trì & Đánh giá: Ghi nhận lỗi phát sinh và cập nhật tài liệu kỹ thuật.
Implementation và kết quả
Development process
Quá trình lập trình mã nguồn tuân thủ các quy chuẩn đặt tên biến, tách biệt rõ ràng các package: com.hotel.gui, com.hotel.bus, com.hotel.dao, com.hotel.dto, com.hotel.util.
Một trong những thuật toán trọng tâm của hệ thống là Thuật toán tính toán phụ phí trả phòng trễ và tổng hợp thanh toán hóa đơn tại lớp HoaDonBUS:
package com.hotel.bus;
import com.hotel.dto.PhieuThueDTO;
import com.hotel.dto.PhongDTO;
import java.time.LocalTime;
public class HoaDonBUS {
public static final LocalTime CHECKOUT_STANDARD = LocalTime.of(12, 0);
public static final LocalTime SURCHARGE_TIER_1 = LocalTime.of(15, 0);
public static final LocalTime SURCHARGE_TIER_2 = LocalTime.of(18, 0);
public double calculateSurcharge(PhongDTO phong, LocalTime actualCheckoutTime) {
if (actualCheckoutTime.isBefore(CHECKOUT_STANDARD) || actualCheckoutTime.equals(CHECKOUT_STANDARD)) {
return 0.0;
}
double roomPrice = phong.getGiaTheoNgay();
// Trễ từ 12:01 đến 15:00 tính phụ thu 30%
if (actualCheckoutTime.isAfter(CHECKOUT_STANDARD) && !actualCheckoutTime.isAfter(SURCHARGE_TIER_1)) {
return roomPrice * 0.30;
}
// Trễ từ 15:01 đến 18:00 tính phụ thu 50%
else if (actualCheckoutTime.isAfter(SURCHARGE_TIER_1) && !actualCheckoutTime.isAfter(SURCHARGE_TIER_2)) {
return roomPrice * 0.50;
}
// Trễ sau 18:00 tính 100% giá phòng một ngày lưu trú
else {
return roomPrice * 1.00;
}
}
public double calculateTotalAmount(double baseRoomFee, double serviceFee, double surcharge, double discountAmount) {
double subTotal = baseRoomFee + serviceFee + surcharge;
double finalAmount = subTotal - discountAmount;
return Math.max(finalAmount, 0.0);
}
}
Ở tầng truy xuất dữ liệu DAO, các câu lệnh truy vấn được tham số hóa thông qua PreparedStatement nhằm ngăn chặn triệt để lỗ hổng tấn công SQL Injection:
package com.hotel.dao;
import com.hotel.dto.PhongDTO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class PhongDAO {
public boolean updateRoomStatus(String maPhong, String tinhTrangMoi) {
String sql = "UPDATE PHONG SET TinhTrang = ? WHERE MaPhong = ?";
try (Connection conn = DBConnection.getConnection();
PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setString(1, tinhTrangMoi);
ps.setString(2, maPhong);
return ps.executeUpdate() > 0;
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
}
Testing và validation
Nhóm phát triển đã xây dựng ma trận kịch bản kiểm thử toàn diện cho toàn bộ các chức năng cốt lõi:
| Kịch bản kiểm thử (Test Case) |
Dữ liệu đầu vào (Input) |
Kết quả mong đợi (Expected Output) |
Trạng thái thực tế |
| TC01: Đăng nhập hệ thống |
user: "admin", pass: "123456" |
Xác thực thành công, mở Form quản trị |
PASS |
| TC02: Đăng nhập sai mật khẩu |
user: "admin", pass: "wrong" |
Báo lỗi "Sai tài khoản hoặc mật khẩu" |
PASS |
| TC03: Đặt phòng đã có người |
Chọn phòng trạng thái "Đã thuê" |
Vô hiệu hóa nút tạo mới, báo lỗi chọn phòng |
PASS |
| TC04: Tính phụ phí trả trễ |
Trả phòng lúc 16:30 |
Tự động cộng 50% giá ngày vào hóa đơn |
PASS |
| TC05: Áp mã giảm giá |
Hóa đơn 2.000.000 VNĐ, Mã giảm 10% |
Giảm đúng 200.000 VNĐ vào tổng tiền |
PASS |
| TC06: Thanh toán nhiều phòng |
Chọn 3 phòng cùng một khách thuê |
Xuất hóa đơn gộp chính xác 100% dữ liệu |
PASS |
Kết quả đạt được
Hệ thống đã hoàn thiện 100% các chức năng đề ra trong tài liệu đặc tả ban đầu:
- Giao diện trực quan với hệ thống mã màu biểu thị trạng thái phòng: Màu xanh lá (Còn trống), Màu đỏ (Đã được thuê), Màu vàng (Đang dọn dẹp).
- Khả năng xử lý truy vấn nhanh với độ trễ (latency) trung bình dưới 150ms trên môi trường mạng cục bộ.
- Phân quyền nghiêm ngặt giữa vai trò Lễ tân (chỉ xem phòng, lập phiếu thuê, thêm dịch vụ, thanh toán) và Quản lý (xem báo cáo doanh thu, chỉnh sửa bảng giá, điều chỉnh tài khoản nhân viên).
Đổi mới và đóng góp
- Chuẩn hóa quy trình nghiệp vụ khách sạn thực tế: Chuyển hóa toàn bộ quy tắc thực tế tại TP. Hồ Chí Minh (giờ check-in 14:00, check-out 12:00, tỷ lệ phạt trả phòng trễ theo 3 khung bậc thang) thành các module xử lý tự động trong code.
- Khả năng thanh toán linh hoạt đa phòng: Hỗ trợ tính năng thanh toán gộp một lần cho khách đoàn hoặc khách đặt nhiều phòng cùng lúc, giảm áp lực ghi nhận hóa đơn thủ công.
- Mô hình kiến trúc 3 lớp tường minh: Đảm bảo mã nguồn có tính module hóa cao, dễ dàng bảo trì hoặc nâng cấp giao diện từ Java Swing lên JavaFX hoặc Web Client mà không cần viết lại lớp xử lý logic nghiệp vụ hay truy vấn dữ liệu.
- Hiệu quả tối ưu vận hành: Cắt giảm 85% thời gian tạo lập chứng từ nhận phòng, loại bỏ 100% tình trạng ghi đè hoặc xung đột thông tin phòng nghỉ.
Ứng dụng thực tế và triển khai
Phần mềm được đóng gói và thử nghiệm trực tiếp tại bộ phận kinh doanh và quầy lễ tân của Khách sạn Katanat.
+-------------------------------------------------------------------------+
| MÔ HÌNH TRIỂN KHAI MẠNG CỤC BỘ (LAN) |
+-------------------------------------------------------------------------+
| |
| [ Máy Quản Lý ] [ Máy Lễ Tân 1 ] [ Máy Lễ Tân 2 ] |
| (Client App) (Client App) (Client App) |
| │ │ │ |
| └─────────────────────────┼────────────────────────┘ |
| │ (TCP/IP Port 1433) |
| ▼ |
| ┌─────────────────────────┐ |
| │ DATABASE SERVER LAN │ |
| │ (MS SQL Server 2019) │ |
| └─────────────────────────┘ |
+-------------------------------------------------------------------------+
Yêu cầu cấu hình triển khai
- Máy chủ cơ sở dữ liệu (Database Server): CPU Intel Core i3 thế hệ 8 trở lên, RAM tối thiểu 8GB, SSD khả dụng 20GB, chạy hệ điều hành Windows Server hoặc Windows 10/11 Pro, cài đặt Microsoft SQL Server 2019.
- Máy trạm người dùng (Client Workstation): CPU Intel Core i3 / AMD Ryzen 3, RAM 4GB, cài đặt Java Runtime Environment (JRE 17+).
Phân tích chi phí và lợi ích (Cost-Benefit Analysis)
- Chi phí phát triển & phần mềm: 0 VNĐ phí bản quyền (ứng dụng đồ án mã nguồn mở nội bộ).
- Lợi ích tài chính: Tiết kiệm ước tính 40 giờ làm việc/tháng cho bộ phận lễ tân, hạn chế triệt để thất thoát tiền sử dụng dịch vụ minibar/giặt ủi (vốn thất thoát khoảng 3–5% doanh thu hàng tháng do nhân viên quên ghi sổ). Thời gian hoàn vốn đầu tư phần cứng ước tính dưới 3 tháng.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Nền tảng cố định: Ứng dụng xây dựng trên nền Java Swing Desktop nên chỉ hoạt động trên máy vi tính, chưa thể điều hành linh hoạt trên thiết bị di động (Smartphone/Tablet).
- Hạ tầng khép kín: Hoạt động chủ yếu trong mạng nội bộ (Local Network), chưa tích hợp cơ chế đồng bộ dữ liệu đám mây (Cloud Sync).
- Chưa tích hợp phần cứng thông minh: Chưa kết nối với bộ đọc thẻ từ khóa cửa phòng (RFID Key Card) hoặc hệ thống điều khiển điện tự động (PMS Energy Saver).
Hướng nâng cấp mở rộng
- Xây dựng lớp dịch vụ RESTful Web API (Spring Boot) để chuyển đổi hệ thống sang kiến trúc đa nền tảng (Web Browser, iOS, Android).
- Tích hợp cổng thanh toán trực tuyến qua mã phản hồi nhanh (VietQR, MoMo, VNPay) tự động xác thực trạng thái giao dịch ngân hàng.
- Ứng dụng trí tuệ nhân tạo (AI/Machine Learning) nhằm phân tích xu hướng đặt phòng theo mùa, đưa ra khuyến nghị điều chỉnh giá phòng động (Dynamic Pricing) tối ưu hóa doanh thu.
Đối tượng hưởng lợi
+-------------------------------------------------------------------------+
| CÁC BÊN THỤ HƯỞNG DỰ ÁN |
+-------------------------------------------------------------------------+
| • DOANH NGHIỆP LƯU TRÚ: Nâng cao hiệu suất quản trị, chống thất thoát |
| • NHÂN VIÊN LỄ TÂN: Thao tác nhận/trả phòng nhanh gọn, chính xác |
| • KHÁCH HÀNG LƯU TRÚ: Giảm thời gian chờ đợi, minh bạch hóa đơn |
| • SINH VIÊN & LẬP TRÌNH VIÊN: Tham khảo mẫu thiết kế 3-Tier chuẩn mực |
+-------------------------------------------------------------------------+
- Chủ đầu tư và Quản lý khách sạn: Nắm bắt chính xác doanh số bán phòng, biến động chi phí và báo cáo kinh doanh tức thời chỉ bằng vài thao tác chuột.
- Nhân viên lễ tân & Buồng phòng: Giảm tải áp lực ghi nhớ, loại bỏ sai sót tính nhẩm phụ phí hay quên hóa đơn dịch vụ đi kèm.
- Sinh viên ngành Kỹ thuật Phần mềm: Nguồn học liệu tham khảo hoàn chỉnh về quy trình phân tích ca sử dụng (Use Case), thiết kế biểu đồ tuần tự (Sequence Diagram), chuẩn hóa cơ sở dữ liệu quan hệ và lập trình hướng đối tượng trên ngôn ngữ Java.
Câu hỏi thường gặp
1. Phần mềm có thể hoạt động khi mất kết nối Internet hay không?
Có. Hệ thống được thiết kế theo kiến trúc Client-Server chạy trên nền tảng mạng cục bộ (LAN). Cơ sở dữ liệu đặt tại máy chủ nội bộ của khách sạn nên toàn bộ các thao tác đặt phòng, xuất hóa đơn vẫn hoạt động bình thường kể cả khi mất kết nối Internet.
2. Dữ liệu khách hàng và lịch sử hóa đơn được sao lưu và phục hồi như thế nào?
Cơ sở dữ liệu Microsoft SQL Server được cấu hình lịch sao lưu định kỳ tự động (Automated Daily Backup) ra ổ cứng ngoài hoặc máy chủ lưu trữ NAS. Khi có sự cố phần cứng, kỹ thuật viên có thể phục hồi dữ liệu hoàn chỉnh trong vòng chưa đầy 15 phút.
3. Quy trình tính phụ thu trễ giờ có thể tùy chỉnh theo chính sách từng thời điểm không?
Lớp nghiệp vụ HoaDonBUS được thiết kế linh hoạt cho phép người quản lý có quyền cấu hình lại tỷ lệ % phụ phí và các mốc thời gian nhận/trả phòng tiêu chuẩn thông qua giao diện quản trị mà không cần can thiệp trực tiếp vào mã nguồn.
4. Hệ thống xử lý thế nào khi có nhiều máy lễ tân cùng truy cập một phòng trống?
Hệ thống sử dụng cơ chế khóa bi quan/lạc quan (Locking Mechanism) và ràng buộc trạng thái giao dịch (Transaction) trong SQL Server. Khi một máy lễ tân bắt đầu tạo phiếu thuê cho phòng X, trạng thái phòng lập tức chuyển sang chế độ tạm giữ, ngăn chặn hoàn toàn tình trạng máy lễ tân khác chọn trùng phòng.
5. Khả năng mở rộng của phần mềm khi khách sạn tăng số lượng phòng?
Kiến trúc CSDL được thiết kế không giới hạn cứng số lượng phòng. Khi khách sạn mở rộng từ 30 phòng lên hàng trăm phòng, người quản lý chỉ cần sử dụng chức năng "Thêm phòng" trên giao diện quản trị, hệ thống sẽ tự động phân trang và hiển thị theo từng tầng tương ứng.
Kết luận
Đồ án môn học Công nghệ Phần mềm "Thiết kế và xây dựng phần mềm quản lý khách sạn" của nhóm sinh viên Trường Đại học Sài Gòn đã giải quyết thành công bài toán chuyển đổi số nghiệp vụ cho Khách sạn Katanat. Dự án không chỉ đáp ứng xuất sắc các tiêu chuẩn kỹ thuật về mô hình kiến trúc 3 lớp, chuẩn hóa cơ sở dữ liệu và bảo mật phân quyền mà còn mang lại giá trị thực tiễn cao trong việc tối ưu hóa chi phí vận hành và nâng cao trải nghiệm lưu trú của khách hàng. Đây là tiền đề vững chắc để nhóm tiếp tục nghiên cứu và mở rộng hệ thống lên các nền tảng điện toán đám mây và ứng dụng di động trong tương lai.