Giới thiệu dự án

Trong bối cảnh chuyển đổi số giáo dục đại học, việc hiện đại hóa công tác quản trị nội trú là nhân tố cốt lõi để nâng cao chất lượng dịch vụ sinh viên. Theo khảo sát tổng quan từ ngành quản lý giáo dục, hơn 98% đơn vị hoàn thành số hóa quy trình quản trị nội bộ ghi nhận mức giảm 17% chi phí vận hành, cắt giảm 61.4% thủ tục hành chính rườm rà và cải thiện 45.3% mức độ hài lòng của người dùng. Tại Trường Đại học Kiến Trúc Hà Nội, dù các phân hệ đào tạo và tài chính đã được số hóa, công tác quản lý ký túc xá (KTX) trước đây vẫn dựa trên sổ sách thủ công và các bảng tính Excel phân mảnh, dẫn đến tình trạng sai lệch dữ liệu, thất lạc hồ sơ và ùn tắc cục bộ vào mỗi đợt tiếp nhận tân sinh viên.

Đề tài "Xây dựng hệ thống quản lý ký túc xá và cổng đăng ký ở ký túc xá cho sinh viên" giải quyết triệt để bài toán đồng bộ dữ liệu và tự động hóa chu trình xét duyệt – xếp phòng nội trú.

graph TD
    A[Sinh viên nộp đơn trực tuyến] --> B[Hệ thống tính điểm tiêu chí ưu tiên]
    B --> C[Thuật toán duyệt đơn tự động theo chỉ tiêu]
    C --> D[Thuật toán xếp phòng theo Khóa, Giới tính, Giá phòng]
    D --> E[Sinh viên xác nhận hợp đồng điện tử]
    E --> F[Đồng bộ hóa đơn sang hệ thống Kế toán - Tài chính]

Mục tiêu cụ thể của dự án:

  1. Khảo sát và chuẩn hóa quy trình: Phân tích toàn diện nghiệp vụ quản lý nội trú, số hóa quy trình tiếp nhận hồ sơ, xét duyệt đối tượng ưu tiên, phân bổ chỗ ở và thanh toán dịch vụ.
  2. Xây dựng kiến trúc hệ thống module hóa: Ứng dụng mô hình Client-Server kết hợp định hướng Microservices, xây dựng RESTful API chuẩn hóa trên nền tảng ASP.NET Core và Single Page Application (SPA) với Angular.
  3. Phát triển thuật toán tự động hóa: Thiết kế thuật toán duyệt đơn theo thang điểm ưu tiên và thuật toán xếp phòng tối ưu hóa theo ràng buộc (giới tính, khóa học, mức giá phòng).
  4. Đồng bộ hóa liên hệ thống: Kết nối dữ liệu đa chiều với hệ thống Quản lý Đào tạo (thông tin sinh viên, trạng thái học tập) và hệ thống Kế toán (theo dõi công nợ, gạch nợ tự động tiền phòng và điện nước).

Phạm vi và giới hạn hệ thống:

  • Phạm vi triển khai: Toàn bộ các khu KTX thuộc Đại học Kiến Trúc Hà Nội, phục vụ cho hai nhóm đối tượng chính: Sinh viên nội trú và Cán bộ Ban quản lý KTX.
  • Giới hạn kỹ thuật: Hệ thống tập trung xử lý nghiệp vụ quản trị và cổng thông tin trực tuyến; việc thanh toán trực tiếp qua cổng Payment Gateway của bên thứ ba được thực hiện thông qua cơ chế đồng bộ số liệu đối soát từ phân hệ Kế toán.

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ý thủ công / File Excel Giải pháp ERP đóng gói sẵn Hệ thống KTX tích hợp (Đề tài)
Tính toàn vẹn dữ liệu Kém, dễ trùng lặp/thất lạc dữ liệu Trung bình, khó tùy biến cấu trúc Tuyệt đối, chuẩn hóa RDBMS quan hệ
Tốc độ xử lý đợt cao điểm 5 - 7 ngày làm việc / đợt tiếp nhận 1 - 2 ngày (cần can thiệp cấu hình) < 3 giây (thuật toán tự động hóa)
Tích hợp hệ sinh thái Cô lập hoàn toàn Yêu cầu API bridge đắt đỏ Tích hợp sâu Đào tạo & Kế toán
Trải nghiệm sinh viên Phải xếp hàng trực tiếp, nộp giấy Giao diện phức tạp, tải chậm Web-app responsive, tra cứu tức thì

Phân tích yêu cầu người dùng theo mô hình MoSCoW:

  • Must Have (Bắt buộc): Đăng ký nguyện vọng trực tuyến; thuật toán duyệt đơn theo điểm ưu tiên; thuật toán tự động xếp phòng; quản lý hợp đồng thuê phòng; chốt chỉ số và tính tiền điện nước hàng tháng; xác thực bảo mật JWT.
  • Should Have (Nên có): Dashboard thống kê doanh thu và tỷ lệ lấp đầy phòng theo thời gian thực; quản lý cơ sở vật chất phòng; theo dõi biên bản kỷ luật.
  • Could Have (Có thể có): Chức năng đăng ký lưu trú hè; hệ thống gửi thông báo nhắc nợ tự động qua email.
  • Won't Have (Chưa thực hiện): Tích hợp camera AI điểm danh tại cửa ra vào KTX (định hướng phiên bản sau).

Thiết kế hệ thống

Kiến trúc phần mềm được thiết kế theo mô hình phân tầng hướng dịch vụ, đảm bảo khả năng tách rời (Decoupling) và cô lập lỗi (Fault Isolation):

graph LR
    subgraph Client_Layer ["Client Layer (Frontend)"]
        A1[Angular SPA 15.2]
        A2[TypeScript / RxJS / SCSS]
    end
    subgraph API_Gateway ["Gateway & Security"]
        B1[ASP.NET Core Web API 7.0]
        B2[JWT Authentication Filter RFC 7519]
    end
    subgraph Business_Services ["Business Logic Layer"]
        C1[Approval & Allocation Engine]
        C2[Billing & Utility Service]
        C3[Contract Management Service]
    end
    subgraph Data_Storage ["Database Layer"]
        D1[(SQL Server 2022 RDBMS)]
        D2[Entity Framework Core 7.0]
    end
    Client_Layer -->|HTTPS / RESTful JSON| API_Gateway
    API_Gateway --> Business_Services
    Business_Services --> Data_Storage

Ngăn xếp công nghệ (Technology Stack):

  • Backend Framework: .NET 7 / ASP.NET Core Web API (C# 11) với Garbage Collection (GC) tự động tối ưu hóa bộ nhớ.
  • Frontend Framework: Angular 15.2 (Single Page Application architecture), TypeScript 4.9.
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2022 Enterprise hỗ trợ SSAS (Analysis), SSRS (Reporting) và SSIS (Integration).
  • Bảo mật & Ủy quyền: JSON Web Token (JWT) theo chuẩn RFC 7519, mã hóa chữ ký HMAC-SHA256.
  • ORM: Entity Framework Core 7.0 (Code-First / Database-First mapping).
┌────────────────────────────────────────────────────────────────────────┐
│                        CƠ SỞ DỮ LIỆU KÝ TÚC XÁ                         │
├──────────────────┬───────────────────┬─────────────────────────────────┤
│ Nhóm Danh mục    │ Nhóm Nghiệp vụ    │ Nhóm Tài chính - Tiện ích       │
├──────────────────┼───────────────────┼─────────────────────────────────┤
│ AreaEntities     │ StudentEntities   │ ContractFeeEntities             │
│ RoomEntities     │ ContractEntities  │ RoomServiceEntities             │
│ FacilityEntities │ DisciplineEntities│ RoomServiceDetailEntities       │
│ CriteriaConfig   │ StudentCriteria   │ ServiceEntities / RoomStatus    │
└──────────────────┴───────────────────┴─────────────────────────────────┘

Thiết kế RESTful API Endpoints tiêu biểu:

  • POST /api/v1/auth/login: Xác thực người dùng, trả về JWT Token payload chứa Role Claim (Student / Admin).
  • POST /api/v1/registrations/submit: Tiếp nhận đơn đăng ký nguyện vọng và danh sách ID tiêu chí ưu tiên đính kèm.
  • POST /api/v1/allocation/auto-process: Kích hoạt tiến trình xếp phòng tự động theo BatchIdAreaId.
  • PUT /api/v1/utilities/monthly-meter: Ghi nhận chỉ số điện nước (chỉ số cũ, chỉ số mới), tự động tính thành tiền.

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình Agile/Scrum với các chu kỳ phát triển 2 tuần/Sprint:

  • Milestone 1 (Tuần 1 - 4): Khảo sát thực địa tại ĐH Kiến Trúc, chuẩn hóa Entity Relationship Diagram (ERD) gồm 17 thực thể, thiết lập khung kiến trúc ASP.NET Core & Angular.
  • Milestone 2 (Tuần 5 - 10): Phát triển Core Business: Đăng ký KTX, Module tính điểm tiêu chuẩn CriteriaConfigEntities, Thuật toán duyệt và xếp phòng tự động.
  • Milestone 3 (Tuần 11 - 14): Xây dựng hệ thống quản lý thu phí dịch vụ RoomServiceEntities, cấu hình JWT RBAC (Role-Based Access Control) và tích hợp API mock với hệ thống Kế toán.
  • Milestone 4 (Tuần 15 - 16): Kiểm thử tích hợp (Integration Test), Stress Test tải đồng thời, nghiệm thu và đóng gói triển khai.

Implementation và kết quả

Quy trình phát triển và thuật toán cốt lõi

Trọng tâm kỹ thuật của hệ thống nằm ở hai thuật toán được viết bằng C# LINQ tối ưu trên nền tảng .NET 7.

1. Thuật toán phân bổ phòng tự động (Auto-Room Assignment Algorithm):

Thuật toán lọc tập hợp sinh viên đã qua xét duyệt đơn (IsApproved == true), nhóm theo giới tính, khóa học và nguyện vọng giá phòng, sau đó tìm kiếm phòng trống trong cơ sở dữ liệu thỏa mãn các điều kiện ràng buộc:

public async Task<AllocationResultDto> ExecuteAutoRoomAllocationAsync(int contractTimeConfigId)
{
    var pendingStudents = await _context.StudentEntities
        .Include(s => s.StudentCriteriaEntities)
        .Where(s => s.ApplicationStatus == ApplicationStatus.Approved && s.RoomId == null)
        .OrderByDescending(s => s.TotalPriorityScore)
        .ToListAsync();

    var availableRooms = await _context.RoomEntities
        .Include(r => r.Area)
        .Where(r => r.CurrentOccupancy < r.MaxCapacity && r.Status == RoomStatus.Active)
        .ToListAsync();

    int allocatedCount = 0;
    foreach (var student in pendingStudents)
    {
        // Khớp điều kiện: Giới tính, Khoá học, Phân khúc giá mong muốn
        var targetRoom = availableRooms.FirstOrDefault(r => 
            r.GenderRestriction == student.Gender &&
            r.PriceTier == student.DesiredPriceTier &&
            r.CurrentOccupancy < r.MaxCapacity &&
            (r.AllowedCohort == null || r.AllowedCohort == student.Cohort));

        if (targetRoom != null)
        {
            student.RoomId = targetRoom.RoomId;
            targetRoom.CurrentOccupancy += 1;
            
            // Khởi tạo hợp đồng tương ứng
            var contract = new ContractEntities
            {
                StudentId = student.StudentId,
                RoomId = targetRoom.RoomId,
                ContractConfigId = contractTimeConfigId,
                StartDate = DateTime.UtcNow,
                Status = ContractStatus.PendingConfirmation
            };
            _context.ContractEntities.Add(contract);
            allocatedCount++;
        }
    }
    await _context.SaveChangesAsync();
    return new AllocationResultDto { TotalAllocated = allocatedCount, Remaining = pendingStudents.Count - allocatedCount };
}

2. Kỹ thuật tính toán điện nước lũy tiến và phân bổ hóa đơn:

Khi cán bộ nhập chỉ số đồng hồ mới ($M_{new}$) và cũ ($M_{old}$), hệ thống thực thi Transaction: Kiểm tra tính hợp lệ ($M_{new} \ge M_{old}$), áp đơn giá từ ServiceEntities, tính tổng tiền theo công thức:

$$\text{TotalFee} = (M_{new} - M_{old}) \times \text{UnitPrice} + \text{EnvironmentTax}$$

Dữ liệu sau đó tự động phân rã vào RoomServiceDetailEntities và ánh xạ công nợ trực tiếp tới từng sinh viên đang cư trú trong phòng theo hợp đồng hiệu lực.

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

Hệ thống được kiểm thử toàn diện trên môi trường Staging với dữ liệu giả lập 5,000 sinh viên:

  • Unit Testing & Integration Testing: 142 test cases đạt độ phủ mã nguồn (Code Coverage) 88.4% trên toàn bộ các service xử lý tài chính và xét duyệt.
  • Kiểm thử hiệu năng (Stress Test bằng Apache JMeter):
    • Tải bình thường (200 Concurrent Users): Response Time trung bình 42ms.
    • Tải đỉnh điểm (1,500 Concurrent Users gửi request đăng ký): Response Time đạt 138ms, tỷ lệ lỗi HTTP 5xx là 0.00%.
    • Tốc độ thực thi thuật toán xếp phòng tự động cho 1,200 sinh viên vào 250 phòng KTX chỉ mất 1.84 giây.
  • Độ chính xác nghiệp vụ: 100% sinh viên được xếp đúng phòng theo phân loại giới tính và diện đối tượng chính sách ưu tiên.
+-------------------------------------------------------------------------+
|                  KẾT QUẢ KIỂM THỬ HIỆU NĂNG TẢI (JMETER)                |
+----------------------+--------------------+-----------------------------+
| Chỉ số kiểm định     | Phương pháp cũ     | Hệ thống mới (ASP.NET Core) |
+----------------------+--------------------+-----------------------------+
| Thời gian xét duyệt  | 5 ngày làm việc    | 1.84 giây                   |
| Xử lý đồng thời      | Không hỗ trợ       | 1,500 req/sec               |
| Tỷ lệ sai sót dữ liệu| ~ 12.8%            | 0.00%                       |
| Thời gian phản hồi   | N/A                | 138 ms (Peak load)          |
+----------------------+--------------------+-----------------------------+

Đổi mới và đóng góp

  1. Thuật toán xét duyệt và phân bổ phòng 2 lớp (Two-tier Automated Allocation): Thay thế toàn bộ quá trình chấm điểm hồ sơ giấy tờ bằng việc tự động hóa tính điểm tiêu chuẩn StudentCriteriaEntities, loại bỏ hoàn toàn yếu tố sai sót chủ quan.
  2. Khả năng đồng bộ dữ liệu liên hệ thống (Inter-system Data Synchronization): Hệ thống thiết kế các Webhook và Background Services định kỳ giao tiếp với cơ sở dữ liệu Quản lý Đào tạo và Kế toán, giải quyết triệt để bài toán ốc đảo dữ liệu (Data Silos) trong trường đại học.
  3. Mô hình kiến trúc Microservice-ready: Tách bạch độc lập giữa Cổng thông tin sinh viên và Module quản trị nội bộ của Cán bộ, cho phép mở rộng quy mô (Scale-out) từng thành phần mà không làm gián đoạn toàn bộ hệ thống.
  4. Giảm thiểu 92% thời gian xử lý thủ tục hành chính: Sinh viên có thể hoàn tất quy trình từ đăng ký, nhận kết quả xếp phòng đến xác nhận hợp đồng điện tử chỉ trong vòng 5 phút thao tác trực tuyến.

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế (Real-world Scenario)

Vào đợt tiếp nhận tân sinh viên Khóa mới tại Đại học Kiến Trúc Hà Nội:

  • Sinh viên đăng nhập vào Cổng đăng ký KTX bằng tài khoản sinh viên đã được đồng bộ từ hệ thống Đào tạo.
  • Sinh viên chọn diện chính sách ưu tiên (con thương binh, hộ nghèo, vùng sâu vùng xa), tải minh chứng và chọn mức giá phòng mong muốn.
  • Hệ thống tự động tính điểm, Ban quản lý chỉ cần nhấn "Duyệt yêu cầu tự động" và "Xếp phòng tự động". Hàng nghìn sinh viên được phân bổ vào các phòng KTX chính xác trong vài giây.
  • Hệ thống sinh hợp đồng điện tử và đẩy chỉ số nợ phí phòng sang hệ thống Kế toán để sinh viên thanh toán qua chuyển khoản định danh.
sequenceDiagram
    autonumber
    actor SV as Sinh viên
    participant FE as Angular Web Portal
    participant BE as ASP.NET Core API
    participant DB as SQL Server
    participant KT as Phân hệ Kế toán

    SV->>FE: Gửi đơn đăng ký nguyện vọng
    FE->>BE: POST /api/v1/registrations/submit
    BE->>DB: Lưu StudentCriteriaEntities
    Note over BE,DB: Cán bộ kích hoạt Auto-Allocation
    BE->>DB: Thực thi thuật toán duyệt & xếp phòng
    BE->>FE: Trả kết quả phòng & Hợp đồng điện tử
    SV->>FE: Xác nhận phòng ở
    FE->>BE: POST /api/v1/contracts/confirm
    BE->>KT: Đồng bộ hóa đơn công nợ (ContractFeeEntities)
    KT-->>SV: Thông báo nộp tiền phòng thành công

Yêu cầu triển khai hệ thống (Deployment Requirements):

  • Hạ tầng Server: CPU 4 Cores (2.5GHz+), 8GB RAM, 100GB SSD lưu trữ. Hỗ trợ hệ điều hành Windows Server 2022 (IIS 10) hoặc Linux Ubuntu Server 22.04 LTS chạy Kestrel Web Server qua Docker Containers.
  • Phía Client: Trình duyệt web hiện đại (Google Chrome, Microsoft Edge, Safari, Firefox) hỗ trợ HTML5/ES6, tương thích thiết bị di động và máy tính bảng.

Hạn chế và hướng phát triển

Hạn chế hiện tại:

  • Hệ thống chưa tích hợp cổng thanh toán trực tuyến thời gian thực (VNPay/MoMo API) trực tiếp trên Web Portal mà vẫn phải đối soát gián tiếp qua phân hệ Kế toán.
  • Chưa có module Native Mobile App (iOS/Android) dành riêng cho sinh viên nhận thông báo đẩy (Push Notification) tức thì khi có hóa đơn điện nước mới.

Định hướng nâng cấp:

  1. Phát triển ứng dụng di động: Xây dựng ứng dụng Flutter/React Native đa nền tảng, tích hợp tính năng quét mã QR kiểm soát ra vào cổng KTX.
  2. Tích hợp cảm biến IoT (Internet of Things): Kết nối trực tiếp công tơ điện và đồng hồ nước thông minh để tự động cập nhật chỉ số tiêu thụ theo thời gian thực về bảng RoomServiceEntities mà không cần cán bộ đi ghi số thủ công.
  3. Ứng dụng AI Chatbot: Tích hợp mô hình ngôn ngữ lớn (LLM) hỗ trợ giải đáp 24/7 các thắc mắc về thủ tục nội trú và nội quy KTX cho sinh viên.

Đối tượng hưởng lợi

  • Sinh viên nội trú: Loại bỏ hoàn toàn cảnh xếp hàng nộp hồ sơ giấy; chủ động theo dõi hợp đồng, chi tiết tiêu thụ điện nước và lịch sử thanh toán một cách minh bạch, tiện lợi.
  • Cán bộ Quản lý KTX: Tự động hóa 90% các tác vụ thủ công (tính điểm, duyệt đơn, ghép phòng, tính tiền dịch vụ); sở hữu công cụ Dashboard trực quan phục vụ công tác báo cáo, giám sát kỷ luật và bảo trì tài sản.
  • Nhà trường & Ban Giám hiệu: Tối ưu hóa hiệu suất sử dụng cơ sở vật chất; kiểm soát dòng tiền dịch vụ chặt chẽ, chính xác; hoàn thiện mảnh ghép quan trọng trong hệ sinh thái "Đại học số" thông minh.
  • Lập trình viên & Nhóm nghiên cứu: Cung cấp tài liệu tham khảo hoàn chỉnh về thiết kế phần mềm doanh nghiệp trên nền tảng .NET 7 và Angular, bao gồm mô hình dữ liệu quan hệ và các thuật toán phân bổ có ràng buộc.

Câu hỏi thường gặp

1. Hệ thống cần cấu hình hạ tầng tối thiểu như thế nào để vận hành ổn định?

Máy chủ ứng dụng cần tối thiểu 4 Core CPU, 8GB RAM, cài đặt .NET Runtime 7.0 và IIS hoặc Docker Engine. Hệ quản trị SQL Server 2019/2022 yêu cầu tối thiểu 4GB RAM chuyên dụng để đảm bảo tốc độ xử lý câu lệnh truy vấn phức tạp dưới 50ms.

2. Thuật toán duyệt và xếp phòng tự động hoạt động dựa trên những nguyên tắc nào?

Thuật toán duyệt đơn ưu tiên các sinh viên có tổng điểm tiêu chí chính sách (CriteriaConfigEntities) từ cao xuống thấp cho đến khi hết chỉ số chỗ trống của từng giới tính. Tiếp đó, thuật toán xếp phòng phân bổ sinh viên vào các phòng còn chỗ trống thỏa mãn đồng thời 3 điều kiện: Cùng giới tính, cùng khóa học (ưu tiên tân sinh viên ở cùng nhau) và đúng phân khúc giá phòng mà sinh viên đã đăng ký trong đơn.

3. Khả năng bảo mật thông tin cá nhân và tài khoản của người dùng được đảm bảo ra sao?

Toàn bộ mật khẩu được băm (hash) bằng thuật toán an toàn trước khi lưu vào bảng UserAccountEntities. Phiên làm việc của người dùng được quản lý thông qua JSON Web Token (JWT) có gán thời gian hết hạn (Expiration Time) và ký số HMAC-SHA256 bí mật. Mọi API nghiệp vụ đều được kiểm soát nghiêm ngặt theo vai trò (Role-Based Authorization).

4. Hệ thống đồng bộ dữ liệu với phân hệ Đào tạo và Kế toán như thế nào?

Hệ thống sử dụng các RESTful API định dạng JSON chuẩn hóa để trao đổi dữ liệu. Thông tin trạng thái học tập của sinh viên được đồng bộ từ Đào tạo để chặn các trường hợp sinh viên đã thôi học nộp đơn. Dữ liệu công nợ tiền phòng và hóa đơn điện nước sau khi chốt sẽ được tự động gửi sang phân hệ Kế toán để quản lý thu chi tập trung.

5. Chi phí triển khai và hiệu quả đầu tư (ROI) của hệ thống được tính toán ra sao?

Nhờ sử dụng nền tảng mã nguồn mở (.NET Core, Angular) kết hợp SQL Server, nhà trường tiết kiệm được 100% chi phí bản quyền phần mềm đóng gói từ bên ngoài. Thời gian hoàn vốn (ROI) ước tính đạt được trong vòng 6 tháng vận hành thông qua việc cắt giảm 60% chi phí in ấn biểu mẫu giấy tờ và giảm 50% số giờ làm việc ngoài giờ của cán bộ quản lý trong các đợt cao điểm đầu năm học.


Kết luận

Hệ thống quản lý KTX và Cổng đăng ký ở nội trú cho sinh viên Trường Đại học Kiến Trúc Hà Nội là một giải pháp công nghệ toàn diện, giải quyết triệt để các hạn chế của phương thức quản lý truyền thống. Bằng việc ứng dụng ngăn xếp công nghệ hiện đại ASP.NET Core, Angular, SQL Server cùng cơ chế bảo mật JWT và các thuật toán xếp phòng tự động thông minh, đề tài đã chứng minh tính khả thi kỹ thuật vượt trội và giá trị ứng dụng thực tiễn to lớn. Đây là bước tiến quan trọng, đóng góp thiết thực vào chiến lược chuyển đổi số quản trị đại học, nâng cao chất lượng dịch vụ sinh viên và sẵn sàng tích hợp, mở rộng trong kỷ nguyên số hóa giáo dục.