Giới thiệu dự án

Trong môi trường đào tạo công nghệ và làm việc nhóm tại các trung tâm lập trình như CodeGym Đà Nẵng, việc tối ưu hóa tài nguyên cơ sở vật chất (CSVC) đóng vai trò quyết định đến hiệu suất vận hành. Theo các khảo sát quản trị cơ sở vật chất doanh nghiệp, phương thức quản lý thủ công qua sổ sách hoặc tin nhắn chat nội bộ gây lãng phí tới 25–35% thời gian tìm kiếm phòng, đồng thời dẫn đến tỷ lệ xung đột lịch họp (double-booking) lên đến 18%.

Đề tài "Xây dựng hệ thống website quản lý phòng họp áp dụng tại Trung tâm CodeGym Đà Nẵng" của tác giả Trần Minh Khoa (Khoa Công nghệ số – Trường Đại học Sư phạm Kỹ thuật, Đại học Đà Nẵng, hướng dẫn bởi ThS. Đỗ Phú Huy) giải quyết triệt để bài toán điều phối phòng học, phòng họp và thiết bị trợ giảng tại trung tâm.

Vấn đề thực tiễn (Problem Statement)

Trước khi hệ thống được triển khai, giảng viên, trợ giảng (tutor) và học viên tại CodeGym Đà Nẵng gặp phải những khó khăn:

  • Tốn thời gian tìm kiếm: Nhân sự phải di chuyển trực tiếp giữa các tầng để kiểm tra phòng trống.
  • Xung đột tài nguyên: Tình trạng hai nhóm cùng sử dụng một phòng do thiếu cơ chế đồng bộ lịch theo thời gian thực.
  • Thiếu kiểm soát trang thiết bị: Không nắm bắt được tình trạng điều hòa, máy chiếu, bảng vẽ trong phòng đang hoạt động hay hỏng hóc.
  • Quy trình phản hồi thủ công: Khi xảy ra sự cố kỹ thuật, việc báo cáo đến ban quản trị (Admin) mất nhiều thời gian và thiếu hình ảnh đối chứng.

Mục tiêu đề tài

  1. Số hóa quy trình đăng ký: Xây dựng cổng web tương tác cho phép tra cứu phòng trống và đặt phòng trong vòng dưới 30 giây.
  2. Kiểm soát nghiệp vụ tự động: Ngăn chặn đặt trùng khung giờ; áp dụng cơ chế tự động chuyển yêu cầu đặt phòng trên 2 ngày liên tục vào hàng đợi chờ Admin phê duyệt (room_booking_pending).
  3. Quản lý vòng đời tài sản & sự cố: Theo dõi danh mục tài sản đi kèm từng phòng, tiếp nhận và xử lý phiếu phản hồi sự cố (kèm hình ảnh minh chứng).
  4. Báo cáo & Thống kê: Cung cấp dashboard trực quan hóa tần suất sử dụng phòng theo tháng, ngày và loại hình sinh hoạt.

Giải pháp kỹ thuật và Phạm vi

Hệ thống được phát triển theo mô hình Single Page Application (SPA) tách biệt Client-Server:

  • Backend: Java 11, Spring Boot (Spring MVC, Spring Data JPA, Spring Security, RESTful API).
  • Frontend: TypeScript, Angular 9+, Bootstrap 4/5, AJAX, FullCalendar.
  • Database: MySQL 8.0 Engine InnoDB hỗ trợ giao dịch toàn vẹn ACID.
  • Phạm vi ứng dụng: Triển khai trực tiếp tại CodeGym Đà Nẵng, khả năng đóng gói nhân rộng cho các trường đại học, cao đẳng và doanh nghiệp vừa và nhỏ (SMEs).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và Yêu cầu nghiệp vụ

Hệ thống được đặt trong tương quan so sánh với các giải pháp quản lý phổ biến hiện nay:

Tiêu chí Quản lý sổ sách / Excel Google Calendar / Form Hệ thống CodeGym Meeting Room
Kiểm soát xung đột lịch Thủ công, dễ sai sót (tỷ lệ lỗi > 15%) Cần cấu hình Resource phức tạp Tự động 100% bằng thuật toán SQL Overlap
Kiểm duyệt đặt phòng dài hạn Không có workflow Thủ công qua email/chat Tự động điều hướng (> 2 ngày chuyển Admin duyệt)
Gắn kết tài sản & Thiết bị Tách rời, không đồng bộ Không hỗ trợ chi tiết tài sản phòng Quản lý quan hệ phòng - thiết bị (property_meeting_room)
Báo hỏng & Xử lý sự cố Ghi nhận chậm, thiếu ảnh lỗi Form riêng biệt, khó đối soát Module Feedback khép kín, upload ảnh trực tiếp
Chi phí bản quyền Thấp Chi phí theo tài khoản Google Workspace Mã nguồn mở hoàn toàn miễn phí

Phân loại yêu cầu theo mô hình MoSCoW:

  • Must Have: Đăng nhập/xác thực RBAC (Role-Based Access Control), tra cứu phòng trống theo ngày/giờ, đặt phòng qua Calendar, kiểm tra trùng lịch, phê duyệt lịch trên 2 ngày, quản lý danh mục phòng.
  • Should Have: Quản lý phản hồi sự cố kỹ thuật/CSVC kèm ảnh, thống kê biểu đồ cột số lần đặt phòng, hủy lịch đặt trước giờ sử dụng.
  • Could Have: Đăng nhập bằng Google OAuth2, lọc nâng cao theo loại thiết bị có trong phòng.
  • Won't Have (Giai đoạn này): Tích hợp IoT nhận diện thẻ từ mở cửa phòng, thanh toán phí thuê ngoài.

Thiết kế hệ thống

graph TD
    Client[Angular 9+ SPA / Bootstrap Web Client] -->|HTTP / JSON REST Requests| API_Gateway[Spring Boot REST Controllers]
    
    subgraph Spring Boot Backend Application
        API_Gateway --> Auth_Module[Spring Security & JWT/Session Filter]
        API_Gateway --> Booking_Service[Booking & Collision Service]
        API_Gateway --> Room_Service[Room & Asset Management Service]
        API_Gateway --> Feedback_Service[Feedback & Incident Service]
        
        Booking_Service --> JPA_Repo[Spring Data JPA Repositories]
        Room_Service --> JPA_Repo
        Feedback_Service --> JPA_Repo
    end
    
    subgraph Data Persistence Layer
        JPA_Repo -->|HikariCP / SQL Queries| MySQL[(MySQL 8.0 Database)]
    end

Thiết kế Cơ sở dữ liệu (Database Schema)

Hệ thống sử dụng hệ quản trị CSDL quan hệ MySQL với 12 bảng chính tối ưu hóa chuẩn hóa dữ liệu 3NF:

-- Bảng phòng họp
CREATE TABLE meeting_room (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    room_name VARCHAR(100) NOT NULL,
    capacity INT NOT NULL,
    status VARCHAR(50) NOT NULL DEFAULT 'AVAILABLE', -- AVAILABLE, UNDER_MAINTENANCE
    description TEXT,
    floor INT NOT NULL
) ENGINE=InnoDB;

-- Bảng đăng ký phòng
CREATE TABLE room_bookings (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    room_id BIGINT NOT NULL,
    user_id BIGINT NOT NULL,
    meeting_type_id BIGINT NOT NULL,
    start_time DATETIME NOT NULL,
    end_time DATETIME NOT NULL,
    booking_date DATE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    CONSTRAINT fk_booking_room FOREIGN KEY (room_id) REFERENCES meeting_room(id),
    CONSTRAINT fk_booking_user FOREIGN KEY (user_id) REFERENCES user(id)
) ENGINE=InnoDB;

-- Bảng đăng ký chờ duyệt (> 2 ngày)
CREATE TABLE room_booking_pending (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    room_id BIGINT NOT NULL,
    user_id BIGINT NOT NULL,
    start_date DATE NOT NULL,
    end_date DATE NOT NULL,
    reason TEXT NOT NULL,
    approval_status VARCHAR(30) DEFAULT 'PENDING', -- PENDING, APPROVED, REJECTED
    admin_note TEXT,
    CONSTRAINT fk_pending_room FOREIGN KEY (room_id) REFERENCES meeting_room(id)
) ENGINE=InnoDB;

-- Bảng phản hồi sự cố
CREATE TABLE handle_feedback (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT NOT NULL,
    room_id BIGINT,
    feedback_type_id BIGINT NOT NULL,
    title VARCHAR(200) NOT NULL,
    content TEXT NOT NULL,
    image_url VARCHAR(255),
    process_status VARCHAR(50) DEFAULT 'UNPROCESSED', -- UNPROCESSED, PROCESSING, RESOLVED
    admin_response TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

Danh sách API RESTful tiêu biểu:

  • POST /api/v1/bookings/check-availability: Kiểm tra các phòng còn trống theo khoảng thời gian và sức chứa.
  • POST /api/v1/bookings/create: Tạo yêu cầu đặt phòng (kèm kiểm tra trùng lặp và điều kiện số ngày).
  • GET /api/v1/bookings/history: Lấy lịch sử đặt phòng của người dùng hiện tại (hỗ trợ phân trang).
  • DELETE /api/v1/bookings/{id}: Hủy lịch đặt phòng chưa diễn ra.
  • POST /api/v1/feedback/submit: Gửi phản hồi sự cố kỹ thuật có đính kèm tệp đa phương tiện.
  • PUT /api/v1/admin/feedback/{id}/process: Quản trị viên cập nhật trạng thái xử lý sự cố.

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

Dự án áp dụng mô hình phát triển phần mềm lặp Agile/Scrum rút gọn với 4 Sprint (mỗi Sprint 2 tuần):

  • Sprint 1 (Khảo sát & Kiến trúc): Đặc tả 11 Use Case, thiết kế ERD 12 bảng, cấu hình khung Spring Boot + Angular.
  • Sprint 2 (Core Booking Engine): Xây dựng module đặt phòng, tìm kiếm theo bộ lọc, Calendar tương tác, phân quyền Spring Security.
  • Sprint 3 (Phê duyệt & Phản hồi): Xây dựng hàng đợi room_booking_pending, module upload ảnh sự cố, dashboard thống kê Admin.
  • Sprint 4 (Kiểm thử & Tinh chỉnh): Viết Unit Test, kiểm thử giao diện Responsive trên đa thiết bị, triển khai chạy thử nghiệm tại CodeGym.

Implementation và kết quả

Chi tiết phát triển phần mềm

1. Thuật toán kiểm tra xung đột lịch đặt phòng (Collision Prevention Algorithm)

Để đảm bảo không bao giờ xảy ra tình trạng hai người dùng đặt cùng một phòng vào các khung giờ giao nhau, hệ thống sử dụng thuật toán kiểm tra giao đoạn thời gian [start_req, end_req] với các bản ghi [start_db, end_db] đang tồn tại:

$$\text{Collision} \iff (\text{start_req} < \text{end_db}) \land (\text{end_req} > \text{start_db})$$

Đoạn mã xử lý tại Spring Boot Repository & Service:

package com.codegym.meetingroom.repository;

import com.codegym.meetingroom.entity.RoomBooking;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List;

@Repository
public interface RoomBookingRepository extends JpaRepository<RoomBooking, Long> {

    @Query("SELECT b FROM RoomBooking b WHERE b.room.id = :roomId " +
           "AND (:startTime < b.endTime AND :endTime > b.startTime)")
    List<RoomBooking> findConflictingBookings(@Param("roomId") Long roomId,
                                             @Param("startTime") LocalDateTime startTime,
                                             @Param("endTime") LocalDateTime endTime);
}
package com.codegym.meetingroom.service.impl;

import com.codegym.meetingroom.dto.BookingRequestDto;
import com.codegym.meetingroom.exception.RoomConflictException;
import com.codegym.meetingroom.repository.RoomBookingRepository;
import com.codegym.meetingroom.service.BookingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.temporal.ChronoUnit;

@Service
public class BookingServiceImpl implements BookingService {

    @Autowired
    private RoomBookingRepository bookingRepository;

    @Transactional
    public BookingResponseDto processBooking(BookingRequestDto request, Long userId) {
        // Kiểm tra xung đột lịch
        var conflicts = bookingRepository.findConflictingBookings(
            request.getRoomId(), request.getStartTime(), request.getEndTime()
        );
        if (!conflicts.isEmpty()) {
            throw new RoomConflictException("Phòng đã được đặt trong khoảng thời gian này!");
        }

        // Kiểm tra nghiệp vụ đặt trên 2 ngày
        long daysBetween = ChronoUnit.DAYS.between(
            request.getStartTime().toLocalDate(), 
            request.getEndTime().toLocalDate()
        );

        if (daysBetween >= 2) {
            return saveToPendingQueue(request, userId);
        }

        return saveDirectBooking(request, userId);
    }
}

2. Xử lý phía Client (Angular Service & Component)

Phía Frontend Angular sử dụng RxJS Observable để kết nối API bất đồng bộ và cơ chế Reactive Forms để validate ràng buộc dữ liệu:

import { Injectable } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { Observable } from 'rxjs';
import { RoomBooking, BookingSearchCriteria } from '../models/booking.model';

@Injectable({
  providedIn: 'root'
})
export class BookingService {
  private readonly API_URL = 'http://localhost:8080/api/v1/bookings';

  constructor(private http: HttpClient) {}

  searchAvailableRooms(criteria: BookingSearchCriteria): Observable<any[]> {
    const params = new HttpParams()
      .set('startDate', criteria.startDate)
      .set('endDate', criteria.endDate)
      .set('startTime', criteria.startTime)
      .set('endTime', criteria.endTime)
      .set('capacity', criteria.capacity.toString());

    return this.http.get<any[]>(`${this.API_URL}/available-rooms`, { params });
  }

  createBooking(bookingData: Partial<RoomBooking>): Observable<any> {
    return this.http.post<any>(`${this.API_URL}/create`, bookingData);
  }
}

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

Quá trình kiểm thử được thực hiện qua các giai đoạn nghiêm ngặt:

  • Unit Testing: Đạt 82% code coverage trên tầng Service và Controller với JUnit 5 và Mockito.
  • Integration Testing: Kiểm thử kịch bản tranh chấp tài nguyên (Concurrency) với 50 luồng đặt phòng đồng thời vào cùng một slot thời gian. Kết quả: 1 luồng thành công, 49 luồng nhận thông báo xung đột chính xác, 0 bản ghi lỗi.
  • Hiệu năng hệ thống (Apache Benchmark):
    • Thời gian phản hồi trung bình (Average Latency): 86ms với API tra cứu phòng và 114ms với API đặt phòng có kiểm tra xung đột.
    • Thông lượng (Throughput): Đạt 240 Requests/giây (RPS) trên môi trường máy chủ cục bộ tiêu chuẩn (Intel Core i5, 8GB RAM).
  • Kiểm thử chấp nhận người dùng (UAT): Thực nghiệm với 35 người dùng tại CodeGym Đà Nẵng (gồm 5 giảng viên, 10 tutor và 20 học viên) trong 2 tuần:
    • 100% người dùng đánh giá giao diện FullCalendar trực quan, dễ thao tác.
    • Tỷ lệ thao tác thành công ngay lần đầu đạt 94.3%.

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

  1. Cơ chế phân luồng duyệt lịch tự động theo ngưỡng thời gian: Loại bỏ hoàn toàn sự can thiệp thủ công đối với các ca họp ngắn hạn trong ngày (< 2 ngày), đồng thời áp dụng chốt chặn an toàn (room_booking_pending) đối với các sự kiện dài hạn để tránh chiếm dụng tài nguyên kéo dài.
  2. Module quản trị sự cố kỹ thuật gắn liền với vị trí vật lý: Cho phép người dùng gửi feedback kèm hình ảnh minh chứng ngay khi phòng gặp sự cố (điều hòa không mát, hỏng remote máy chiếu). Quản trị viên cập nhật tiến độ giải quyết trực tiếp trên portal, giúp giảng viên chủ động đổi phòng trước giờ dạy.
  3. Hiệu quả định lượng vượt trội:
    • Giảm 85% thời gian tìm kiếm và xác nhận phòng trống (từ trung bình 10–15 phút xuống dưới 1.5 phút).
    • Triệt tiêu 100% hiện tượng trùng lịch họp giữa các lớp học và nhóm tự học.
    • Giảm 60% thời gian phản hồi và xử lý các hỏng hóc kỹ thuật tại trung tâm.

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

Kịch bản sử dụng thực tế (Real-world Use Cases)

  • Kịch bản 1 (Tutor tổ chức code review đột xuất): Mở web trên điện thoại -> Xem lịch Calendar tầng 2 -> Chọn phòng Lab 3 còn trống 1 giờ tới -> Nhấn Đăng ký -> Hệ thống xác nhận tức thì.
  • Kịch bản 2 (Giảng viên tổ chức bảo vệ đồ án 3 ngày liên tiếp): Điền form đăng ký từ thứ 2 đến thứ 4 -> Hệ thống ghi nhận trạng thái Pending và gửi thông báo tới Admin -> Admin duyệt -> Hệ thống tự động gửi thông báo xác nhận thành công.
  • Kịch bản 3 (Báo cáo máy chiếu hỏng): Học viên chụp ảnh cáp HDMI bị đứt tại phòng 201 -> Đăng tải phiếu phản hồi -> Nhân viên kỹ thuật nhận thông báo, sửa chữa và chuyển trạng thái "Đã xử lý".

Yêu cầu hệ thống và Triển khai

  • Server Requirements:
    • Môi trường chạy: Ubuntu 20.04 LTS / Windows Server, OpenJDK 11+, MySQL Server 8.0.
    • Cấu hình phần cứng tối thiểu: 2 Core CPU, 4GB RAM, 20GB SSD Storage.
  • Client Requirements: Bất kỳ trình duyệt hiện đại nào (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari) hỗ trợ HTML5/JavaScript.

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

Hạn chế kỹ thuật hiện tại

  • Hệ thống gửi thông báo qua giao diện web nội bộ, chưa tích hợp gửi email tự động (SMTP) hoặc push notification qua Zalo ZNS/Telegram Bot.
  • Chưa có tính năng quét mã QR dán tại cửa phòng để check-in/check-out thời gian thực.
  • Kiến trúc triển khai nguyên khối (Monolith) phía backend, phù hợp cho quy mô 1–5 chi nhánh nhưng cần tối ưu lại nếu mở rộng quy mô toàn quốc.

Hướng phát triển nâng cấp

  • Tích hợp IoT & QR Code: Cung cấp mã QR động trước cửa mỗi phòng để nhân sự quét mã nhận phòng (tự động hủy nếu sau 15 phút không check-in).
  • Tích hợp Notification Service đa kênh: Kết nối Telegram API / Firebase Cloud Messaging (FCM) / Gmail API để gửi nhắc lịch họp tự động trước 15 phút.
  • Mở rộng kiến trúc Microservices & Docker hóa: Đóng gói Container hóa với Docker và Kubernetes (K8s) để sẵn sàng mở rộng đa chi nhánh cho toàn bộ hệ thống CodeGym trên toàn quốc.

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

mindmap
  root((Hệ thống Quản lý Phòng họp))
    Sinh viên & Học viên
      Tìm phòng học nhóm nhanh chóng
      Tránh xung đột không gian tự học
      Báo cáo CSVC hỏng kịp thời
    Giảng viên & Tutor
      Lên lịch giảng dạy và Review đồ án dễ dàng
      Nắm rõ trang thiết bị có trong phòng
      Chủ động quản lý thời gian
    Bộ phận Quản trị & IT
      Quản lý tài sản phòng họp tập trung
      Nắm bắt lịch sử và tần suất sử dụng
      Xử lý sự cố kỹ thuật minh bạch, có đối chứng
    Lập trình viên tham khảo
      Mẫu kiến trúc chuẩn Java Spring Boot + Angular
      Cách xử lý thuật toán Overlap và Dynamic Query
  • Học viên CodeGym: Tiết kiệm trung bình 45 phút mỗi tuần trong việc tìm kiếm phòng sinh hoạt nhóm và nhận phòng học tiêu chuẩn.
  • Giảng viên & Trợ giảng: Nâng cao 40% hiệu suất điều phối các buổi mentor và đồ án tốt nghiệp.
  • Ban Quản trị (Admin/Ban điều hành): Giảm tải 90% khối lượng công việc trả lời tin nhắn điều phối phòng thủ công.
  • Cộng đồng Lập trình viên: Đồ án là tài liệu tham khảo hoàn chỉnh về thiết kế hướng đối tượng (OOP), xây dựng kiến trúc RESTful API chuẩn mực với Spring Boot và triển khai SPA với Angular Framework.

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

1. Hệ thống cần cấu hình hạ tầng như thế nào để triển khai?

Để triển khai, máy chủ chỉ cần cài đặt Java Runtime Environment (JRE 11 trở lên) và MySQL Server 8.0. Backend được đóng gói dưới dạng file JAR tự thực thi (nhúng sẵn Tomcat), Frontend được biên dịch thành các tệp tĩnh (HTML/CSS/JS) có thể phục vụ qua Nginx hoặc Apache.

2. Hệ thống xử lý thế nào khi có 2 người cùng bấm đặt 1 phòng tại cùng 1 giây?

Hệ thống sử dụng cơ chế transaction của Spring Data JPA (@Transactional) kết hợp với câu lệnh kiểm tra xung đột thời gian thực trong Database Engine InnoDB. Bản ghi đầu tiên được commit sẽ thành công; yêu cầu thứ hai đến sau sẽ bị chặn bởi exception RoomConflictException và trả về mã lỗi 409 Conflict kèm thông báo rõ ràng cho người dùng.

3. Có thể tích hợp hệ thống vào cổng thông tin đào tạo sẵn có của trường/trung tâm không?

Hoàn toàn có thể. Do hệ thống được thiết kế theo chuẩn RESTful API với định dạng trao đổi dữ liệu JSON thuần túy, bất kỳ ứng dụng di động (Flutter/React Native) hoặc hệ thống quản lý học tập (LMS) nào cũng có thể gọi trực tiếp các Endpoint của hệ thống để đồng bộ lịch học.

4. Quy trình bảo trì và sao lưu dữ liệu diễn ra như thế nào?

Dữ liệu được quản trị tập trung trong MySQL, cho phép thiết lập script sao lưu tự động (cronjob mysqldump) định kỳ mỗi ngày. Mã nguồn phân tách rõ ràng giữa Controller - Service - Repository giúp việc nâng cấp tính năng không làm gián đoạn cấu trúc hiện tại.

5. Chi phí triển khai và thời gian hoàn vốn (ROI) ước tính?

Hệ thống sử dụng 100% nền tảng công nghệ mã nguồn mở (Java, Spring, Angular, MySQL), do đó chi phí bản quyền phần mềm là 0 VNĐ. Đối với một trung tâm quy mô như CodeGym Đà Nẵng, việc tiết kiệm hàng trăm giờ lao động của nhân sự điều phối giúp hệ thống đạt điểm hoàn vốn giá trị vận hành chỉ sau 1 đến 2 tháng đưa vào sử dụng.


Kết luận

Đồ án tốt nghiệp "Xây dựng hệ thống website quản lý phòng họp áp dụng tại Trung tâm CodeGym Đà Nẵng" của sinh viên Trần Minh Khoa đã giải quyết xuất sắc một bài toán quản trị thực tế bằng tư duy kỹ thuật công nghệ bài bản.

Bằng việc kết hợp sức mạnh xử lý nghiệp vụ của Java Spring Boot, tính linh hoạt trong hiển thị của Angular, cùng độ tin cậy của MySQL, công trình không chỉ dừng lại ở mức độ khóa luận học thuật mà đã chứng minh được tính khả thi và giá trị ứng dụng cao trong môi trường vận hành thực tế. Đây là nền tảng vững chắc để tiếp tục mở rộng thêm các tính năng thông minh như tích hợp IoT, check-in mã QR và phát triển thành giải pháp quản trị không gian làm việc toàn diện cho các tổ chức giáo dục và doanh nghiệp hiện đại.