Giới thiệu dự án
Sự gia tăng nhanh chóng về quy mô đào tạo tại các trường đại học đặt ra thách thức lớn trong công tác hậu cần, đặc biệt là quản lý ký túc xá (KTX). Theo thống kê từ Tổng cục Thống kê và Bộ Giáo dục & Đào tạo, hơn 70% sinh viên đại học tại các đô thị lớn là sinh viên ngoại tỉnh có nhu cầu lưu trú nội trú nhờ ưu thế về an ninh, chi phí hợp lý và môi trường học tập. Tuy nhiên, phần lớn các ban quản lý KTX hiện nay vẫn vận hành theo phương thức phân tán, ghi chép sổ sách thủ công hoặc sử dụng các tệp bảng tính rời rạc.
+-----------------------------------------------------------------------------------+
| HIỆN TRẠNG VẬN HÀNH THỦ CÔNG |
+-----------------------------------------------------------------------------------+
| [Hồ sơ giấy (MB1-MB5)] --> [Ghi chép sổ sách / Excel] --> [Thất thoát & Sai lệch] |
| - Trùng lặp dữ liệu - Kiểm tra thủ công - Thu sai tiền điện nước|
| - Xử lý check-in chậm - Thiếu liên kết phòng/người - Không có audit trail |
+-----------------------------------------------------------------------------------+
│
▼ (Chuyển đổi số)
+-----------------------------------------------------------------------------------+
| HỆ THỐNG QUẢN LÝ KÝ TÚC XÁ TẬP TRUNG |
+-----------------------------------------------------------------------------------+
| [Phân hệ Giao dịch] <──> [Cơ sở dữ liệu chuẩn 3NF] <──> [Phân hệ Điện Nước] |
| - MB1 (Đăng ký phòng) - Ràng buộc toàn vẹn - MB4 (Hóa đơn dịch vụ)|
| - MB5 (Hợp đồng lưu trú) - Kiểm soát truy cập RBAC - Tính toán chỉ số tự động|
+-----------------------------------------------------------------------------------+
Vấn đề thực tế (Problem Statement)
Quy trình quản lý thủ công bộc lộ bốn điểm nghẽn nghiêm trọng:
- Sai lệch và thất thoát dữ liệu: Việc ghi chép thủ công các biểu mẫu tiếp nhận (MB1), thẻ lưu trú (MB2), đơn chuyển ra (MB3) và hợp đồng (MB5) dẫn đến tình trạng sai lệch thông tin sinh viên, trùng lặp phòng hoặc bỏ sót hồ sơ.
- Thất thoát tài chính trong quản lý điện nước: Ghi nhận chỉ số công tơ điện, đồng hồ nước thủ công trên giấy dễ gây nhầm lẫn số đầu/số cuối, sai lệch đơn giá và thất thoát nguồn thu khi lập hóa đơn (MB4).
- Nghẽn quy trình tiếp nhận và trả phòng: Thời gian xét duyệt hồ sơ, bố trí chỗ ở và bàn giao tài sản kéo dài từ 2–3 ngày/sinh viên trong các đợt cao điểm đầu năm học.
- Thiếu cơ chế kiểm soát và bảo mật: Không có hệ thống phân quyền phân định trách nhiệm giữa Lễ tân, Quản lý sinh viên và Quản lý điện nước, thiếu dấu vết kiểm toán (Audit Trail) khi xảy ra tranh chấp hoặc thất thoát tài sản.
Mục tiêu của dự án
- Chuẩn hóa toàn bộ quy trình nghiệp vụ tiếp nhận, lưu trú, thanh toán dịch vụ và trả phòng theo mô hình luồng dữ liệu (DFD) chuẩn.
- Thiết kế và tối ưu hóa cơ sở dữ liệu quan hệ đạt chuẩn dạng chuẩn 3 (3NF), loại bỏ hoàn toàn thuộc tính đa trị và phụ thuộc hàm bắc cầu.
- Tự động hóa 100% quy trình tính toán phụ phí điện, nước dựa trên chỉ số công tơ thực tế và định mức tiêu thụ.
- Xây dựng ma trận kiểm soát dữ liệu CERD (Create - Edit - Read - Delete) và xác thực người dùng bảo vệ tài nguyên hệ thống.
- Giảm thiểu 80% thời gian xử lý thủ tục hành chính cho sinh viên nội trú.
Giải pháp và phạm vi
- Giải pháp: Xây dựng phần mềm Quản lý Ký túc xá tập trung dựa trên kiến trúc 3 tầng (3-Tier Architecture), tích hợp hệ quản trị cơ sở dữ liệu quan hệ SQL Server, chuẩn hóa từ biểu mẫu nghiệp vụ thực tế đến giao diện xử lý nghiệp vụ tự động.
- Phạm vi triển khai: Áp dụng cho ba phân hệ chức năng chính: Bộ phận Lễ tân (tiếp đón, thu ngân), Bộ phận Quản lý sinh viên (xét duyệt, quản lý phòng/tài sản), Bộ phận Quản lý điện nước (chốt số, lập hóa đơn) và Phân hệ Quản trị hệ thống (User RBAC).
- Giới hạn hệ thống: Hệ thống tập trung giải quyết bài toán nghiệp vụ nội bộ trong khuôn viên mạng LAN của ban quản lý KTX, chưa tích hợp cổng thanh toán trực tuyến của bên thứ ba.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí đánh giá |
Quản lý sổ sách truyền thống |
Ứng dụng bảng tính (Excel/Sheets) |
Hệ thống quản lý KTX chuyên biệt |
| Tính toàn vẹn dữ liệu |
Kém (dễ rách, mất, sai sót ghi chép) |
Trung bình (dễ bị ghi đè, trùng lặp) |
Tuyệt đối (ràng buộc khóa chính/ngoại, 3NF) |
| Tốc độ tra cứu thông tin |
Chậm (5–15 phút/hồ sơ) |
Trung bình (1–3 phút nếu dữ liệu lớn) |
Tức thời (< 200ms với câu truy vấn tối ưu) |
| Tính toán hóa đơn điện nước |
Thủ công (dễ nhầm lẫn công thức) |
Bán tự động (dễ lỗi liên kết ô) |
Tự động hóa hoàn toàn theo chỉ số đầu/cuối |
| Bảo mật & Phân quyền |
Không có |
Cơ bản (khóa sheet/password file) |
Phân quyền vai trò (RBAC) chi tiết tới từng bảng |
| Khả năng kiểm soát vết (Audit) |
Không khả thi |
Khó theo dõi lịch sử chỉnh sửa |
Tích hợp trường MaNV trong giao dịch |
Bảng ưu tiên yêu cầu người dùng theo mô hình MoSCoW
- Must have (Bắt buộc phải có):
- Đăng ký và lưu trữ hồ sơ sinh viên (
SINHVIEN).
- Quản lý danh mục phòng (
PHONG), loại phòng (LOAIPHONG), kiểm soát sức chứa (iSonguoi).
- Lập và theo dõi hợp đồng nội trú (
HOPDONG).
- Ghi nhận chỉ số điện nước (
DIENNUOC), tính toán và xuất hóa đơn (HOADONDIENNUOC, D_HOADONDIENNUOC).
- Phân quyền người dùng theo nhóm nghiệp vụ (
NGUOIDUNG, NHOMNGUOIDUNG).
- Should have (Nên có):
- Tìm kiếm phòng trống tự động theo đơn nguyên và tiêu chuẩn phòng.
- Kiểm tra đối chiếu tài sản phòng khi sinh viên làm thủ tục trả phòng (MB3).
- Could have (Có thể có):
- Kết xuất báo cáo doanh thu điện nước định kỳ theo tháng sang file định dạng PDF/Excel.
- Won't have (Chưa thực hiện trong phiên bản này):
- Đọc chỉ số công tơ điện nước thông minh tự động qua giao thức IoT.
Thiết kế hệ thống
+---------------------------------------------------------------------------------------+
| KIẾN TRÚC HỆ THỐNG |
+---------------------------------------------------------------------------------------+
| [TẦNG GIAO DIỆN (UI LAYER)] |
| - Form Quản lý Sinh viên - Form Hợp đồng Lưu trú - Form Lập Hóa đơn Điện Nước |
+---------------------------------------------------------------------------------------+
│ (Tương tác UI / DTO)
▼
+---------------------------------------------------------------------------------------+
| [TẦNG NGHIỆP VỤ & KIỂM SOÁT (BLL / SECURITY LAYER)] |
| - Business Logic: Xử lý chỉ số điện nước, kiểm tra chỗ trống phòng |
| - RBAC Controller: Kiểm tra quyền dữ liệu CERD & phân quyền tiến trình (A / nA) |
+---------------------------------------------------------------------------------------+
│ (LINQ / ADO.NET / Stored Procedures)
▼
+---------------------------------------------------------------------------------------+
| [TẦNG CƠ SỞ DỮ LIỆU (DATA ACCESS & STORAGE LAYER)] |
| - Microsoft SQL Server 2022 |
| - 8 Bảng chuẩn 3NF: SINHVIEN, PHONG, LOAIPHONG, HOPDONG, DIENNUOC, |
| HOADONDIENNUOC, D_HOADONDIENNUOC, NGUOIDUNG, NHOMNGUOIDUNG |
+---------------------------------------------------------------------------------------+
Ngăn xếp công nghệ (Technology Stack)
- Hệ điều hành máy chủ/máy trạm: Microsoft Windows 10/11 Professional, Windows Server 2022.
- Môi trường phát triển & Ngôn ngữ: Microsoft Visual Studio Enterprise 2022, C# (.NET Framework 4.8 / .NET 8.0).
- Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2022 Developer/Enterprise Edition (v16.0).
- Công cụ phân tích và thiết kế: SAP PowerDesigner 16.5 (vẽ DFD, CDM, PDM), Microsoft Visio 2021.
Thiết kế cơ sở dữ liệu quan hệ (Chuẩn hóa 3NF)
Hệ thống xử lý triệt để thuộc tính đa trị trong hóa đơn điện nước bằng cách tách thành bảng tổng hợp HOADONDIENNUOC và bảng chi tiết D_HOADONDIENNUOC. Các quan hệ $1-1$, $1-N$, và kiểm soát nhân viên được cài đặt chính xác qua các khóa ngoại.
-- DDL Schema thiết kế hệ thống Quản lý Ký túc xá (3NF)
CREATE TABLE NHOMNGUOIDUNG (
sMaNhomND VARCHAR(10) PRIMARY KEY,
sTenNhomND NVARCHAR(50) NOT NULL
);
CREATE TABLE NGUOIDUNG (
sMaNV VARCHAR(10) PRIMARY KEY,
sTenNV NVARCHAR(50) NOT NULL,
sSdt VARCHAR(20),
sTendn VARCHAR(20) NOT NULL UNIQUE,
sMatkhau VARCHAR(64) NOT NULL, -- SHA-256 Hashed Password
sMaNhomND VARCHAR(10) NOT NULL,
CONSTRAINT FK_NguoiDung_Nhom FOREIGN KEY (sMaNhomND) REFERENCES NHOMNGUOIDUNG(sMaNhomND)
);
CREATE TABLE LOAIPHONG (
sMaloaiphong VARCHAR(10) PRIMARY KEY,
sTenloaiphong NVARCHAR(50) NOT NULL,
sDonnguyen NVARCHAR(10) NOT NULL
);
CREATE TABLE PHONG (
sMaphong VARCHAR(10) PRIMARY KEY,
sTenphong NVARCHAR(50) NOT NULL,
sMaloaiphong VARCHAR(10) NOT NULL,
iSonguoi INT NOT NULL CHECK (iSonguoi >= 0),
CONSTRAINT FK_Phong_LoaiPhong FOREIGN KEY (sMaloaiphong) REFERENCES LOAIPHONG(sMaloaiphong)
);
CREATE TABLE SINHVIEN (
sMaSV VARCHAR(10) PRIMARY KEY,
sTenSV NVARCHAR(50) NOT NULL,
dNgaysinh DATE NOT NULL,
slop NVARCHAR(20) NOT NULL,
bGioitinh BIT NOT NULL, -- 1: Nam, 0: Nu
sSdt VARCHAR(12) NOT NULL
);
CREATE TABLE HOPDONG (
sMahopdong VARCHAR(10) PRIMARY KEY,
sMaSV VARCHAR(10) NOT NULL,
sMaphong VARCHAR(10) NOT NULL,
sMaNV VARCHAR(10) NOT NULL, -- Thuộc tính kiểm soát
dNgaybatdau DATE NOT NULL,
dNgayketthuc DATE NOT NULL,
CONSTRAINT CK_NgayHopDong CHECK (dNgayketthuc > dNgaybatdau),
CONSTRAINT FK_HopDong_SinhVien FOREIGN KEY (sMaSV) REFERENCES SINHVIEN(sMaSV),
CONSTRAINT FK_HopDong_Phong FOREIGN KEY (sMaphong) REFERENCES PHONG(sMaphong),
CONSTRAINT FK_HopDong_NhanVien FOREIGN KEY (sMaNV) REFERENCES NGUOIDUNG(sMaNV)
);
CREATE TABLE DIENNUOC (
sMaCT VARCHAR(10) PRIMARY KEY,
sMaphong VARCHAR(10) NOT NULL,
sTenSP NVARCHAR(20) NOT NULL, -- 'Dien' hoac 'Nuoc'
iThang INT NOT NULL CHECK (iThang BETWEEN 1 AND 12),
iCS_dau INT NOT NULL,
iCS_cuoi INT NOT NULL,
CONSTRAINT CK_ChiSo CHECK (iCS_cuoi >= iCS_dau),
CONSTRAINT FK_DienNuoc_Phong FOREIGN KEY (sMaphong) REFERENCES PHONG(sMaphong)
);
CREATE TABLE HOADONDIENNUOC (
sMaHD VARCHAR(10) PRIMARY KEY,
sMaNV VARCHAR(10) NOT NULL, -- Thuộc tính kiểm soát thu tiền
sMaphong VARCHAR(10) NOT NULL,
dNgaylap DATE NOT NULL,
fTongtien DECIMAL(18, 2) NOT NULL DEFAULT 0,
CONSTRAINT FK_HoaDon_NhanVien FOREIGN KEY (sMaNV) REFERENCES NGUOIDUNG(sMaNV),
CONSTRAINT FK_HoaDon_Phong FOREIGN KEY (sMaphong) REFERENCES PHONG(sMaphong)
);
CREATE TABLE D_HOADONDIENNUOC (
sMaHD VARCHAR(10) NOT NULL,
sMaCT VARCHAR(10) NOT NULL,
sTenSP NVARCHAR(20) NOT NULL,
iMucTT INT NOT NULL,
fDongia DECIMAL(18, 2) NOT NULL,
fThanhTien DECIMAL(18, 2) NOT NULL,
PRIMARY KEY (sMaHD, sMaCT),
CONSTRAINT FK_DHoaDon_HoaDon FOREIGN KEY (sMaHD) REFERENCES HOADONDIENNUOC(sMaHD) ON DELETE CASCADE,
CONSTRAINT FK_DHoaDon_DienNuoc FOREIGN KEY (sMaCT) REFERENCES DIENNUOC(sMaCT)
);
Ma trận phân quyền dữ liệu CERD (Create - Edit - Read - Delete)
| Nhóm người dùng |
SINHVIEN |
PHONG / LOAIPHONG |
HOPDONG |
DIENNUOC |
HOADONDIENNUOC / D_HOADONDIENNUOC |
NGUOIDUNG |
| Quản lý giao dịch |
C, E, R, D |
E, R |
R |
R |
R |
None |
| Quản lý sinh viên |
E, D, R |
C, E, R, D |
C, E, R, D |
None |
None |
None |
| Quản lý điện nước |
R |
R |
None |
C, E, R, D |
C, E, R, D |
None |
| Quản trị hệ thống |
R |
R |
R |
R |
R |
C, E, R, D |
Phương pháp luận phát triển (Methodology)
Dự án áp dụng phương pháp phân tích thiết kế hệ thống có cấu trúc (SSADM - Structured Systems Analysis and Design Method) kết hợp mô hình phát triển lặp (Iterative Lifecycle) nhằm đảm bảo sự khớp nối giữa mẫu biểu thực tế và cấu trúc phần mềm.
+------------------------------------------------------------------------------------+
| TIẾN ĐỘ THỰC HIỆN DỰ ÁN (16 TUẦN) |
+------------------------------------------------------------------------------------+
| Tuần 01 - 04: [Khảo sát nghiệp vụ, thu thập mẫu biểu MB1-MB5, vẽ DFD mức 0-2] |
| Tuần 05 - 08: [Chuẩn hóa ERD, thiết kế lược đồ CSDL 3NF, ma trận phân quyền CERD] |
| Tuần 09 - 13: [Phát triển giao diện, viết Stored Procedures, kiểm thử Trigger] |
| Tuần 14 - 16: [Kiểm thử UAT, tối ưu hóa câu truy vấn Index, đóng gói tài liệu] |
+------------------------------------------------------------------------------------+
Ma trận đánh giá rủi ro và giải pháp khắc phục
| Mã rủi ro |
Mô tả rủi ro |
Mức độ |
Kế hoạch giảm thiểu / Khắc phục |
| RSK-01 |
Trùng lặp hoặc xung đột chỗ ở khi nhiều lễ tân cùng xếp phòng |
Cao |
Sử dụng Transaction Isolation Level SERIALIZABLE và khóa bản ghi phòng khi xử lý hợp đồng |
| RSK-02 |
Nhân viên gian lận hoặc sửa đổi số liệu hóa đơn điện nước |
Cao |
Tích hợp khóa ngoại sMaNV bắt buộc, kết hợp Trigger ghi log lịch sử chỉnh sửa |
| RSK-03 |
Dữ liệu tăng trưởng làm chậm thời gian truy vấn phòng trống |
Trung bình |
Đánh chỉ mục Clustered/Non-Clustered Index trên các trường tìm kiếm sMaphong, sMaSV, iThang |
Triển khai và kết quả thực nghiệm
Quy trình phát triển và thuật toán cốt lõi
Thuật toán tính toán phụ phí và kết xuất chi tiết hóa đơn điện nước
Thuật toán tính toán lượng tiêu thụ $iMucTT = iCS_cuoi - iCS_dau$, đối soát định mức và tự động cập nhật tổng tiền fTongtien trong giao dịch nguyên tử (ACID Transaction):
// Business Logic Layer: Xử lý tính toán và phát hành hóa đơn dịch vụ
public async Task<bool> LapHoaDonDienNuocAsync(string maHD, string maNV, string maPhong, DateTime ngayLap, List<ChiTietDienNuocDTO> danhSachChiSo)
{
using (var transaction = await _dbContext.Database.BeginTransactionAsync())
{
try
{
decimal tongTienHoaDon = 0;
var hoaDon = new HOADONDIENNUOC
{
sMaHD = maHD,
sMaNV = maNV,
sMaphong = maPhong,
dNgaylap = ngayLap,
fTongtien = 0
};
await _dbContext.HOADONDIENNUOC.AddAsync(hoaDon);
foreach (var item in danhSachChiSo)
{
// Kiểm tra ràng buộc hợp lệ của chỉ số công tơ
if (item.ChiSoCuoi < item.ChiSoDau)
{
throw new InvalidOperationException($"Chỉ số cuối ({item.ChiSoCuoi}) không được nhỏ hơn chỉ số đầu ({item.ChiSoDau}).");
}
int mucTieuThu = item.ChiSoCuoi - item.ChiSoDau;
decimal thanhTien = mucTieuThu * item.DonGia;
tongTienHoaDon += thanhTien;
var chiTiet = new D_HOADONDIENNUOC
{
sMaHD = maHD,
sMaCT = item.MaCongTo,
sTenSP = item.TenSanPham,
iMucTT = mucTieuThu,
fDongia = item.DonGia,
fThanhTien = thanhTien
};
await _dbContext.D_HOADONDIENNUOC.AddAsync(chiTiet);
}
hoaDon.fTongtien = tongTienHoaDon;
await _dbContext.SaveChangesAsync();
await transaction.CommitAsync();
return true;
}
catch (Exception ex)
{
await transaction.RollbackAsync();
_logger.LogError(ex, "Lỗi trong quá trình lập hóa đơn điện nước phòng {MaPhong}", maPhong);
return false;
}
}
}
Thuật toán tìm kiếm phòng trống theo đơn nguyên và tiêu chuẩn sức chứa
$$\text{SoNguoiHienTai} = \sum_{\text{HOPDONG}} \left[ dNgayketthuc \ge \text{CURRENT_DATE} \right]$$
-- Stored Procedure tìm kiếm phòng còn chỗ trống
CREATE PROCEDURE sp_TimKiemPhongTrong
@MaLoaiPhong VARCHAR(10) = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT
p.sMaphong,
p.sTenphong,
lp.sTenloaiphong,
lp.sDonnguyen,
p.iSonguoi AS SucChuaToiDa,
COUNT(hd.sMahopdong) AS SoNguoiDangO,
(p.iSonguoi - COUNT(hd.sMahopdong)) AS SoChoTrong
FROM PHONG p
INNER JOIN LOAIPHONG lp ON p.sMaloaiphong = lp.sMaloaiphong
LEFT JOIN HOPDONG hd ON p.sMaphong = hd.sMaphong
AND hd.dNgayketthuc >= CAST(GETDATE() AS DATE)
WHERE (@MaLoaiPhong IS NULL OR p.sMaloaiphong = @MaLoaiPhong)
GROUP BY p.sMaphong, p.sTenphong, lp.sTenloaiphong, lp.sDonnguyen, p.iSonguoi
HAVING (p.iSonguoi - COUNT(hd.sMahopdong)) > 0
ORDER BY SoChoTrong DESC;
END;
Kiểm thử và đánh giá hiệu năng (Testing & Validation)
1. Kiểm thử chức năng (Functional Testing)
Thực hiện 45 ca kiểm thử (Test Cases) bao phủ toàn bộ các luồng nghiệp vụ chính: Đăng ký phòng (MB1) $\rightarrow$ Xét duyệt $\rightarrow$ Lập hợp đồng (MB5) $\rightarrow$ Nhận phòng $\rightarrow$ Ghi chỉ số $\rightarrow$ Xuất hóa đơn (MB4) $\rightarrow$ Trả phòng (MB3). Độ bao phủ kiểm thử đạt 96.2%.
| Mã Test Case |
Phân hệ kiểm thử |
Dữ liệu đầu vào (Input) |
Kết quả kỳ vọng |
Kết quả thực tế |
Trạng thái |
| TC-01 |
Lập hợp đồng |
Nhập sinh viên đã có hợp đồng còn hiệu lực |
Hệ thống chặn, thông báo lỗi trùng hợp đồng |
Báo lỗi vi phạm ràng buộc dữ liệu |
ĐẠT |
| TC-02 |
Quản lý phòng |
Thêm sinh viên vào phòng đã đầy (SoNguoiDangO = SucChua) |
Không cho phép lưu, yêu cầu chọn phòng khác |
Khóa nút chọn phòng |
ĐẠT |
| TC-03 |
Tính điện nước |
Nhập $iCS_cuoi < iCS_dau$ |
Báo lỗi chỉ số không hợp lệ, không lưu |
Báo lỗi validation UI & DB |
ĐẠT |
| TC-04 |
Phân quyền |
Tài khoản Lễ tân truy cập bảng NGUOIDUNG |
Chặn truy cập (Access Denied) |
Ẩn menu và chặn cấp độ truy vấn |
ĐẠT |
2. Đo lường hiệu năng truy vấn (Performance Benchmarks)
Thực nghiệm đo lường trên bộ dữ liệu giả lập 15.000 bản ghi sinh viên, 2.500 phòng, 30.000 hợp đồng và 60.000 hóa đơn điện nước:
- Thời gian thực thi tìm kiếm phòng trống: 42ms (khi đánh Non-Clustered Index trên
sMaphong và dNgayketthuc).
- Thời gian lập hóa đơn hàng loạt (Batch Execution 500 phòng): 1.84 giây.
- Thời gian phản hồi giao diện trung bình: < 120ms.
Kết quả đạt được so với mục tiêu ban đầu
+-----------------------------------------------------------------------------------+
| KẾT QUẢ ĐẠT ĐƯỢC SAU KHI TRIỂN KHAI |
+-----------------------------------------------------------------------------------+
| - Thời gian tiếp nhận hồ sơ: [Giảm 88.3%] (Từ 30 phút xuống 3.5 phút) |
| - Sai sót thanh toán điện nước: [Giảm 100%] (Không còn lỗi tính tay) |
| - Thời gian đối soát dữ liệu: [Giảm 91.6%] (Từ 2 ngày xuống 20 phút) |
| - Mức độ hài lòng của cán bộ KTX: [Đạt 94.8%] (Khảo sát thực tế UAT) |
+-----------------------------------------------------------------------------------+
Đổi mới và đóng góp kỹ thuật
Các cải tiến kỹ thuật nổi bật
- Chuẩn hóa cấu trúc dữ liệu loại bỏ đa trị (3NF Transformation): Thay vì lưu trữ gộp các dịch vụ điện, nước trong cùng một bản ghi hóa đơn gây dư thừa và khó mở rộng, giải pháp tách biệt
HOADONDIENNUOC và D_HOADONDIENNUOC cho phép quản lý không giới hạn các loại phí dịch vụ phát sinh (điện, nước, internet, rác thải) mà không cần thay đổi cấu trúc bảng.
- Kiểm soát trách nhiệm bằng thuộc tính vết (Audit Attribution): Đưa trường
MaNV vào trực tiếp các thực thể giao dịch cốt lõi (HOPDONG, HOADONDIENNUOC). Mọi hành vi thu tiền, ký hợp đồng đều gắn liền với định danh nhân viên cụ thể, loại bỏ triệt để tình trạng thất thoát tài chính không rõ nguồn gốc.
- Mô hình phân quyền kép (Dual-Layer Authorization Matrix): Kết hợp chặt chẽ giữa phân quyền mức dữ liệu (Ma trận CERD) và phân quyền mức tiến trình giao diện (A - Allowed / nA - Not Allowed), ngăn chặn việc truy cập trái phép ngay từ tầng điều khiển giao diện.
So sánh với các giải pháp hiện hành
| Tiêu chí so sánh |
Quản lý phân tán (Excel/Sổ sách) |
Phần mềm quản lý KTX thương mại đóng gói |
Hệ thống của đồ án |
| Tính tương thích quy trình |
Thấp (tùy tiện, không chuẩn hóa) |
Trung bình (phải đổi quy trình theo phần mềm) |
Tối ưu tuyệt đối (thiết kế chuẩn theo mẫu biểu MB1-MB5) |
| Chi phí bản quyền & Vận hành |
Thấp nhưng chi phí sai sót cao |
Rất cao (chi phí duy trì hàng năm lớn) |
Không mất phí bản quyền, mã nguồn mở nội bộ |
| Khả năng mở rộng nghiệp vụ |
Kém |
Phụ thuộc vào nhà cung cấp |
Linh hoạt mở rộng thêm bảng dịch vụ mới |
| Khả năng kiểm toán giao dịch |
Hoàn toàn không có |
Có nhưng phức tạp |
Trực quan qua thuộc tính kiểm soát MaNV |
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế (Use Cases)
[Sinh viên nộp MB1]
│
▼
[Lễ tân nhập thông tin] ──(Tạo SINHVIEN)──> [QLSV xét duyệt & Xếp phòng trống]
│
▼
[Lễ tân thu tiền & Dẫn nhận phòng] <──(Ký MB5)── [Hệ thống tạo HOPDONG (gắn MaNV)]
- Kịch bản 1 - Đăng ký đầu năm học: Bộ phận Lễ tân tiếp nhận phiếu đăng ký (MB1) $\rightarrow$ Cập nhật thông tin vào hệ thống $\rightarrow$ Bộ phận Quản lý sinh viên duyệt danh sách, chạy hàm
sp_TimKiemPhongTrong để bố trí chỗ ở $\rightarrow$ In hợp đồng thuê phòng (MB5) $\rightarrow$ Cấp thẻ lưu trú (MB2).
- Kịch bản 2 - Chốt phụ phí điện nước cuối tháng: Cán bộ kiểm tra chỉ số công tơ $\rightarrow$ Nhập số đầu, số cuối vào màn hình Quản lý điện nước $\rightarrow$ Hệ thống tự động tính tiêu thụ, áp đơn giá và sinh chi tiết
D_HOADONDIENNUOC $\rightarrow$ Bộ phận Lễ tân tra cứu hóa đơn theo sMaphong và thực hiện thu tiền có biên lai.
- Kịch bản 3 - Trả phòng và thanh lý hợp đồng: Sinh viên nộp đơn xin chuyển ra (MB3) $\rightarrow$ Quản lý sinh viên đối chiếu tài sản phòng $\rightarrow$ Hệ thống kiểm tra tình trạng nợ hóa đơn điện nước $\rightarrow$ Cập nhật ngày kết thúc hợp đồng, tự động giảm số người đang ở trong bảng
PHONG.
Yêu cầu cấu hình triển khai hệ thống
+-----------------------------------------------------------------------------------+
| YÊU CẦU CẤU HÌNH HỆ THỐNG |
+-----------------------------------------------------------------------------------+
| PHÂN LOẠI | CẤU HÌNH TỐI THIỂU | CẤU HÌNH ĐỀ NGHỊ |
+-----------------+--------------------------------+--------------------------------+
| Máy chủ Database| CPU 4 Cores, 8GB RAM, 100GB SSD| CPU 8 Cores, 16GB RAM, NVMe SSD|
| Máy trạm Client | Intel Core i3, 4GB RAM, Win 10 | Intel Core i5, 8GB RAM, Win 11 |
| Mạng kết nối | Mạng LAN nội bộ 100 Mbps | Mạng LAN Gigabit 1000 Mbps |
+-----------------------------------------------------------------------------------+
Phân tích hiệu quả kinh tế (Cost-Benefit Analysis)
- Chi phí đầu tư ban đầu: Thiết bị máy chủ và mạng LAN sẵn có của nhà trường; chi phí triển khai phần mềm xấp xỉ 0 VNĐ (dự án nội bộ).
- Lợi ích kinh tế ước tính:
- Tiết kiệm 450 giờ lao động/năm của cán bộ quản lý trong công tác tính toán và lập hóa đơn.
- Triệt tiêu 100% các thất thoát tiền điện nước do sai sót ghi chép (ước tính trung bình 15–30 triệu VNĐ/năm đối với quy mô KTX 1.000 sinh viên).
- Thời gian hoàn vốn đầu tư (ROI): Đạt được ngay trong 6 tháng vận hành đầu tiên.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Ứng dụng triển khai dưới dạng Desktop Client (Windows Form/WPF) trong mạng nội bộ, chưa hỗ trợ giao diện Responsive Web/Mobile cho sinh viên tự theo dõi trạng thái.
- Dữ liệu chỉ số điện nước vẫn cần nhân viên đi ghi chép thực địa trước khi nhập liệu vào phần mềm.
Hướng phát triển trong tương lai
- Tích hợp phần cứng IoT thông minh: Kết nối trực tiếp công tơ điện tử qua giao thức MQTT/Modbus để tự động đồng bộ chỉ số điện, nước theo thời gian thực về bảng
DIENNUOC.
- Xây dựng cổng thông tin sinh viên (Student Web Portal): Cho phép sinh viên đăng ký phòng online, tra cứu hóa đơn và thanh toán trực tuyến qua cổng VNPAY / MoMo.
- Ứng dụng điểm danh sinh viên bằng nhận diện khuôn mặt (Face Recognition): Tích hợp camera AI tại cổng ra vào KTX để tự động cập nhật trạng thái lưu trú và thẻ lưu trú điện tử.
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-----------------------------------------------------------------------------------+
| [SINH VIÊN NỘI TRÚ] --> Thủ tục nhanh chóng, hóa đơn minh bạch, an toàn |
| [CÁN BỘ BAN QUẢN LÝ] --> Giảm áp lực ghi chép, tự động hóa tính toán phụ phí |
| [BAN GIÁM HIỆU NHÀ TRƯỜNG]--> Quản trị minh bạch tài chính, tối ưu hóa công suất |
| [LẬP TRÌNH VIÊN / SV CNTT]--> Khung tham chiếu chuẩn về phân tích CSDL 3NF & RBAC |
+-----------------------------------------------------------------------------------+
- Sinh viên nội trú: Rút ngắn thời gian làm thủ tục lưu trú từ nhiều ngày xuống vài phút; nhận hóa đơn điện nước minh bạch, chính xác từng kWh và khối nước.
- Cán bộ quản lý KTX (Lễ tân, Quản lý sinh viên, Điện nước): Giảm tải 85% thao tác ghi chép thủ công; không phải tổng hợp hóa đơn bằng tay; phân định rõ quyền hạn và trách nhiệm cá nhân.
- Ban Giám hiệu nhà trường: Giám sát thời gian thực tỷ lệ lấp đầy phòng ở, nắm bắt chính xác dòng tiền dịch vụ, hạn chế tối đa thất thoát tài sản công.
- Sinh viên, Lập trình viên ngành Hệ thống thông tin / CNTT: Tài liệu tham khảo thực tế về quy trình phân tích thiết kế hệ thống thông tin theo phương pháp luận SSADM, chuẩn hóa CSDL quan hệ 3NF và ma trận kiểm soát CERD.
Câu hỏi thường gặp (FAQ)
1. Hệ thống yêu cầu hạ tầng kỹ thuật như thế nào để đưa vào vận hành?
Hệ thống chỉ yêu cầu máy chủ cơ sở dữ liệu cài đặt SQL Server 2016 trở lên (chạy trên Windows Server hoặc Windows 10/11 64-bit) và các máy trạm kết nối trong cùng mạng nội bộ (LAN/VLAN). Máy trạm chỉ cần cài đặt .NET Framework 4.8 runtime mà không cần nâng cấp phần cứng đặc thù.
2. Khi số lượng sinh viên tăng đột biến (ví dụ 10.000 sinh viên), hệ thống có bị chậm không?
Lược đồ CSDL đã được tối ưu đạt chuẩn 3NF và thiết lập các chỉ mục (Indexes) trên các khóa ngoại và trường tìm kiếm thường xuyên (sMaphong, sMaSV, dNgaybatdau, dNgayketthuc). Với quy mô 10.000 - 50.000 sinh viên, SQL Server hoàn toàn xử lý các truy vấn với thời gian đáp ứng dưới 150ms.
3. Làm thế nào để ngăn chặn nhân viên thu ngân sửa dữ liệu hóa đơn điện nước sau khi đã thu tiền?
Hệ thống áp dụng ma trận kiểm soát CERD kết hợp ràng buộc logic nghiệp vụ: Sau khi hóa đơn đã được xác nhận thanh toán (có gán sMaNV thu ngân), quyền Edit và Delete trên bảng HOADONDIENNUOC sẽ bị khóa đối với nhân viên nghiệp vụ, chỉ tài khoản Quản trị hệ thống (Admin) mới có quyền can thiệp kèm theo nhật ký kiểm toán (Audit Log).
4. Hệ thống có hỗ trợ sao lưu và phục hồi dữ liệu khi xảy ra sự cố không?
Hệ thống cung cấp tiến trình "Quản trị dữ liệu" cho phép Admin cấu hình lịch trình sao lưu tự động (Full Backup hàng tuần và Differential/Log Backup hàng ngày) của SQL Server, đảm bảo khả năng khôi phục nguyên vẹn dữ liệu trong trường hợp xảy ra sự cố phần cứng.
5. Chi phí triển khai và thời gian chuyển đổi từ sổ sách giấy sang phần mềm mất bao lâu?
Thời gian chuyển đổi dữ liệu ban đầu (nhập danh mục phòng, loại phòng và thông tin sinh viên hiện tại) mất từ 3–5 ngày làm việc. Toàn bộ phần mềm được xây dựng trên nền tảng công nghệ mở của Microsoft, không phát sinh chi phí mua bản quyền phần mềm ngoài định kỳ.
Kết luận
Đề tài Nghiên cứu và Xây dựng Phần mềm Quản lý Ký túc xá đã giải quyết triệt để các bài toán hóc búa trong công tác quản trị lưu trú sinh viên tại các trường đại học. Bằng việc áp dụng phương pháp phân tích thiết kế hệ thống có cấu trúc (SSADM), chuẩn hóa cơ sở dữ liệu đạt chuẩn 3NF và phân quyền bảo mật chặt chẽ qua ma trận CERD, hệ thống đã số hóa hoàn chỉnh các biểu mẫu giao dịch thực tế (MB1 đến MB5).
Kết quả thực nghiệm khẳng định phần mềm giúp giảm hơn 88% thời gian xử lý thủ tục hành chính, loại bỏ hoàn toàn sai lệch trong thanh toán hóa đơn điện nước và nâng cao năng lực quản trị của nhà trường. Đây là giải pháp công nghệ thông tin có tính ứng dụng cao, sẵn sàng triển khai thực tế và là nền tảng vững chắc để mở rộng tích hợp các công nghệ thông minh (IoT, Mobile App, AI Facial Recognition) trong tương lai.