Bối cảnh và vấn đề nghiên cứu

Tại Trung tâm CodeGym Đà Nẵng, trước thời điểm nghiên cứu, quy trình quản lý và đăng ký phòng họp chưa được số hóa hoặc áp dụng hệ thống phần mềm chuyên dụng. Thực tế vận hành cho thấy số lượng học viên và lớp học ngày càng gia tăng, dẫn đến nhu cầu sử dụng không gian làm việc, phòng học và phòng họp nhóm tăng cao. Khi giảng viên hoặc trợ giảng (tutor) có nhu cầu sử dụng phòng để tổ chức họp chuyên môn, sinh hoạt nhóm hoặc hỗ trợ học viên, họ phải trực tiếp đi tìm phòng trống trong khuôn viên trung tâm. Phương thức thủ công này làm phát sinh nhiều bất cập: tiêu tốn thời gian, lãng phí công sức di chuyển, dễ gây xung đột lịch sử dụng phòng và gián đoạn hoạt động đào tạo.

Xuất phát từ thực trạng trên, đề 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 sinh viên Trần Minh Khoa thực hiện dưới sự hướng dẫn của ThS. Đỗ Phú Huy (chuyên ngành Công nghệ thông tin, Khoa Công nghệ số, Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng) nhằm giải quyết triệt để nhu cầu quản trị không gian phòng họp.

Mục tiêu nghiên cứu tổng quát của đề tài là xây dựng hoàn chỉnh một hệ thống ứng dụng web hỗ trợ tự động hóa quy trình quản lý, tìm kiếm và đăng ký phòng họp. Các nhiệm vụ nghiên cứu cụ thể được xác định bao gồm 7 nội dung chính:

  1. Thu thập thông tin, tài liệu liên quan và thực hiện khảo sát thực tế tại trung tâm.
  2. Phân tích và thiết kế các chức năng nghiệp vụ của hệ thống cho từng nhóm tác nhân.
  3. Phân tích và thiết kế cơ sở dữ liệu quan hệ phục vụ lưu trữ thông tin hệ thống.
  4. Thiết kế giao diện tương tác người dùng (UI/UX) cho các chức năng.
  5. Hiện thực hóa và xây dựng hệ thống website dựa trên các công nghệ đã lựa chọn.
  6. Thực hiện kiểm thử chương trình nhằm bảo đảm tính đúng đắn của các luồng xử lý.
  7. Hoàn thành báo cáo tổng hợp đồ án tốt nghiệp.

Đối tượng nghiên cứu của đề tài tập trung vào việc phân tích, thiết kế và hiện thực hóa các chức năng quản lý, đăng ký và điều phối sử dụng phòng họp. Phạm vi nghiên cứu về không gian áp dụng trực tiếp tại Trung tâm CodeGym Đà Nẵng, đồng thời định hướng khả năng mở rộng sang các trung tâm đào tạo, trường đại học, cao đẳng hoặc các doanh nghiệp có nhu cầu tương tự. Phạm vi thời gian nghiên cứu và hoàn thiện đồ án được thực hiện đến mốc bảo vệ tháng 06/2022 (ngày nộp đồ án: 20/06/2022).

Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa phương pháp nghiên cứu lý thuyết và phương pháp triển khai thực nghiệm phần mềm nhằm xây dựng hệ thống hoàn chỉnh từ khâu khảo sát đến sản phẩm thực tế:

  • Phương pháp nghiên cứu lý thuyết: Thu thập, tổng hợp và phân tích tài liệu chuyên ngành qua giáo trình, sách kỹ thuật, trang web tài liệu chính thống và nguồn tham khảo chuyên môn để xác định kiến trúc ứng dụng, giao thức truyền thông và công nghệ lập trình tối ưu.
  • Phương pháp triển khai thực nghiệm: Khảo sát thực tế môi trường vận hành tại CodeGym Đà Nẵng, phân tích yêu cầu người dùng, thiết kế mô hình hệ thống và trực tiếp lập trình, kiểm thử ứng dụng web.

Nền tảng công nghệ và lý thuyết được tác giả ứng dụng bao gồm:

  • Ngôn ngữ lập trình Java và Spring Framework: Java là ngôn ngữ lập trình hướng đối tượng (OOP) chạy trên môi trường máy ảo thông qua mã bytecode. Phía máy chủ (backend) ứng dụng Spring Framework và Spring Boot để phát triển kiến trúc dịch vụ doanh nghiệp với các mô-đun cốt lõi: Spring Core, Spring Bean, Cơ chế tiêm phụ thuộc (Dependency Injection - DI), Spring Context, Spring Expression Language (SpEL), Spring MVC, Spring Data và Spring Security.
  • Kiến trúc RESTful API: Sử dụng @RestController trong Spring Boot để xử lý yêu cầu và trả về dữ liệu dưới định dạng JSON thông qua bộ chuyển đổi Jackson converter, hỗ trợ đóng gói đối tượng phản hồi bằng ResponseEntity, tiếp nhận dữ liệu thân gửi (@RequestBody) và tham số đường dẫn (@PathVariable).
  • Ngôn ngữ TypeScript và Angular Framework: TypeScript là siêu ngôn ngữ (superset) của JavaScript do Microsoft phát triển. Giao diện người dùng (frontend) được xây dựng trên nền tảng Angular 9 kết hợp TypeScript 3, vận hành theo kiến trúc khối gồm các thành phần: Component (kết hợp template HTML và class xử lý logic), Angular Template (data binding), Angular Service, Angular Injector (Dependency Injection), Directive (thao tác DOM) và Module (NgModule).
  • Hệ quản trị cơ sở dữ liệu MySQL: Hệ quản trị cơ sở dữ liệu quan hệ nguồn mở, truy vấn thông qua ngôn ngữ SQL, đảm bảo tính toàn vẹn và bảo mật dữ liệu.
  • Thư viện và giao diện bổ trợ: Bootstrap cung cấp giải pháp thiết kế giao diện thích ứng (Responsive Web Design, Mobile-first) trên đa thiết bị; kết hợp thư viện jQuery và kỹ thuật truyền tải dữ liệu không đồng bộ Ajax.
  • Công cụ phát triển: StarUML (thiết kế sơ đồ phân tích), IntelliJ IDEA (lập trình backend Java/Spring Boot), WebStorm (lập trình frontend Angular), MySQL Workbench (quản trị và mô hình hóa cơ sở dữ liệu).
Thành phần hệ thống Công nghệ / Công cụ sử dụng Vai trò kỹ thuật trong đồ án
Backend Java, Spring Boot, Spring Data, Spring Security Xây dựng RESTful API, quản lý business logic và xác thực phân quyền
Frontend Angular 9, TypeScript 3, HTML, CSS Xây dựng Single Page Application (SPA), xử lý giao diện và gọi API
Thư viện UI/Script Bootstrap, jQuery, Ajax Định dạng giao diện Responsive đa thiết bị, tương tác bất đồng bộ
Cơ sở dữ liệu MySQL Server, MySQL Workbench Lưu trữ dữ liệu quan hệ, quản trị và thiết kế bảng dữ liệu
Mô hình hóa & IDE StarUML, IntelliJ IDEA, WebStorm Vẽ biểu đồ hệ thống (Use-case, Activity, Sequence, ERD), môi trường phát triển mã nguồn

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo mô hình phân tầng hướng dịch vụ, chia tách rõ rệt giữa tầng giao diện người dùng (Angular Frontend) và tầng xử lý nghiệp vụ/dịch vụ dữ liệu (Spring Boot RESTful API). Quá trình trao đổi dữ liệu giữa hai tầng diễn ra thông qua giao thức HTTP với định dạng JSON chuẩn.

1. Phân quyền tác nhân và ca sử dụng (Use Case)

Hệ thống phân định 2 tác nhân chính với các phạm vi quyền hạn và nghiệp vụ riêng biệt:

  • Tác nhân Người dùng (User - Giảng viên/Tutor/Học viên):
    • Xem danh sách phòng họp và thông tin chi tiết từng phòng.
    • Tìm kiếm phòng họp trống theo nhiều tiêu chí (tên phòng, ngày/giờ bắt đầu, ngày/giờ kết thúc, số người tham dự, thiết bị phòng).
    • Đăng ký phòng họp (qua giao diện thanh Calendar hoặc menu thả xuống - dropdown item).
    • Xem lịch sử đăng ký phòng họp cá nhân.
    • Thống kê số lần đặt phòng cá nhân (hiển thị dạng bảng và biểu đồ cột).
    • Gửi phản hồi sự cố phòng họp (ví dụ: điều hòa không mát) và phản hồi lỗi kỹ thuật hệ thống (bắt buộc đính kèm hình ảnh minh chứng).
    • Xem danh sách và trạng thái phản hồi cá nhân đã gửi.
    • Quản trị tài khoản cá nhân: đăng nhập hệ thống nội bộ hoặc đăng nhập nhanh qua Google (Gmail), xem thông tin hồ sơ cá nhân, đổi mật khẩu và đăng xuất.
  • Tác nhân Quản trị viên (Admin):
    • Kế thừa các quyền tìm kiếm, đăng ký phòng, thống kê và quản lý tài khoản như người dùng nhưng có quyền truy cập toàn diện trên mọi dữ liệu.
    • Quản lý danh mục phòng họp (thêm mới, chỉnh sửa thông tin, xóa phòng, cập nhật trạng thái hoạt động/hỏng hóc, thiết lập sức chứa và hình ảnh).
    • Quản lý lịch sử đăng ký toàn hệ thống với chức năng tìm kiếm nâng cao.
    • Thống kê tần suất và số lượt đặt phòng theo khoảng thời gian tùy chỉnh.
    • Tiếp nhận và xử lý phản hồi từ người dùng (phân loại sự cố, nhập nội dung phản hồi xử lý, gán nhân viên phụ trách và gửi thông báo kết quả xử lý về tài khoản người dùng).
    • Quản lý tài khoản người dùng toàn hệ thống (thêm mới tài khoản, chỉnh sửa thông tin, phân quyền, xóa tài khoản).
    • Quản lý danh mục tài sản và trang thiết bị gắn liền với từng phòng họp (thêm, sửa, xóa, theo dõi trạng thái sử dụng).

2. Ràng buộc và quy tắc nghiệp vụ hệ thống

Tác giả đã đặc tả và lập trình chặt chẽ các kịch bản ngoại lệ và quy tắc vận hành nhằm đảm bảo tính toàn vẹn dữ liệu:

  • Ràng buộc đăng ký phòng: Người dùng không được phép đăng ký lịch sử dụng phòng liên tục từ 2 ngày trở lên một cách tự động. Các yêu cầu đặt lịch vượt quá giới hạn này sẽ được chuyển sang trạng thái chờ duyệt (room_booking_pending), chỉ khi Quản trị viên phê duyệt thì lịch đặt mới chính thức có hiệu lực. Người dùng được phép chỉnh sửa hoặc hủy yêu cầu khi lịch đặt đang ở trạng thái chờ duyệt.
  • Ràng buộc xóa dữ liệu lịch sử: Chỉ cho phép hủy/xóa các phiên đăng ký phòng chưa diễn ra. Các phiên sử dụng phòng đã hoàn thành trong quá khứ không được phép xóa nhằm bảo toàn dữ liệu phục vụ thống kê, báo cáo.
  • Ràng buộc xử lý và xóa phản hồi: Quản trị viên chỉ được phép xóa các phản hồi sau khi đã hoàn tất quy trình xử lý. Đối với các phản hồi chưa xử lý, hệ thống khóa tính năng xóa để tránh bỏ sót sự cố. Người dùng thông thường chỉ có quyền xem danh sách phản hồi do chính tài khoản của mình gửi lên.
  • Ràng buộc gửi phản hồi kỹ thuật: Khi người dùng gửi báo cáo lỗi kỹ thuật của hệ thống, trường hình ảnh là thông tin bắt buộc. Nếu người dùng chưa chọn tệp hình ảnh đính kèm, nút chức năng "Gửi phản hồi" sẽ tự động bị vô hiệu hóa (disable).
  • Ràng buộc quản lý tài sản: Hệ thống ngăn chặn hành vi xóa các trang thiết bị/tài sản đang được gán và sử dụng trong các phòng họp thực tế. Quản trị viên chỉ có thể xóa các tài sản chưa được phân bổ sử dụng.

3. Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL, chuẩn hóa quan hệ và bao gồm 12 bảng thực thể chính:

  1. use_role: Lưu trữ thông tin phân quyền vai trò người dùng trong hệ thống.
  2. count_bookings_per_month: Lưu trữ số liệu thống kê tổng hợp số lượt đặt phòng theo từng tháng.
  3. property_meeting_room: Quản lý mối quan hệ liên kết và số lượng tài sản, trang thiết bị trong từng phòng họp.
  4. meeting_room: Lưu trữ thông tin danh mục phòng họp (tên phòng, sức chứa, trạng thái hoạt động).
  5. image_of_meeting_room: Lưu trữ đường dẫn và danh mục hình ảnh trực quan của các phòng họp.
  6. meeting_types: Danh mục các loại hình cuộc họp hoặc mục đích sử dụng phòng.
  7. room_bookings: Lưu trữ các phiên đăng ký phòng họp thành công và lịch sử sử dụng phòng.
  8. room_booking_pending: Quản lý danh sách các yêu cầu đăng ký phòng đang ở trạng thái chờ duyệt từ Admin (các trường hợp đăng ký dài ngày hoặc cần xác thực).
  9. booking_cancellation: Ghi nhận dữ liệu và lý do hủy đặt phòng của người dùng.
  10. type_error: Danh mục phân loại các dạng lỗi hoặc sự cố phát sinh.
  11. feedback_type: Danh mục phân loại phản hồi (phản hồi phòng họp, phản hồi lỗi kỹ thuật).
  12. handle_feedback: Quản lý dữ liệu chi tiết quá trình tiếp nhận, nhân viên xử lý và nội dung phản hồi gửi lại cho người dùng.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý thuyết

Nội dung chương 1 tập trung khảo cứu các công nghệ nền tảng tạo cơ sở kỹ thuật cho việc xây dựng website:

  • Trình bày lịch sử phát triển của ngôn ngữ Java từ phiên bản sơ khai Oak (1991) của James Gosling tại Sun Microsystems cho đến các mốc phiên bản JDK 1.2 (1998), J2SE 5.0 (2004), Java SE 8 (2014), Java SE 11 (2018) và Java SE 17 (2021). Phân tích ưu điểm của cơ chế biên dịch bytecode chạy trên môi trường thực thi giúp mã nguồn có tính khả chuyển và độ an toàn cao.
  • Khái quát lịch sử hình thành Spring Framework từ cuốn sách của Rod Johnson năm 2002 nhằm thay thế EJB phức tạp, hướng tới mô hình đối tượng POJO và nới lỏng liên kết qua Dependency Injection. Trình bày chi tiết các dự án thành phần của hệ sinh thái Spring: Spring Core, Spring Bean, Spring Context, SpEL, Spring MVC, Spring Data, Spring Security, Spring Boot, Spring Batch, Spring Integration, Spring XD và Spring Social.
  • Giới thiệu tổng quan hệ quản trị cơ sở dữ liệu quan hệ MySQL, tính năng đa nền tảng (Windows, Linux, Mac OS X, Unix, Solaris...) và cấu trúc truy vấn chuẩn SQL.
  • Phân tích nguyên lý xây dựng dịch vụ RESTful API trên nền tảng Spring Boot: sự khác biệt giữa @Controller (trả về view template) và @RestController (trả về dữ liệu thô JSON), cơ chế chuyển đổi tự động Object sang JSON thông qua Jackson converter, cách thức đóng gói thực thể phản hồi ResponseEntity, tiếp nhận tham số qua @RequestBody và @PathVariable.
  • Khái quát về framework Bootstrap trong thiết kế giao diện thích ứng (Responsive Web Design), cấu trúc Mobile-first và khả năng hiển thị tương thích trên nhiều độ phân giải màn hình.
  • Trình bày kiến trúc TypeScript và Angular Framework (phiên bản Angular 9 ổn định phát hành ngày 07/02/2020 cùng TypeScript 3), phân tích mối liên hệ tương tác giữa Component, Template, Directive, Angular Service, Angular Injector và NgModule.

Chương 2: Phân tích thiết kế hệ thống

Chương 2 trình bày toàn bộ quy trình phân tích yêu cầu, mô hình hóa nghiệp vụ và thiết kế kiến trúc phần mềm:

  • Kết quả khảo sát: Khảo sát hiện trạng tại Trung tâm CodeGym Đà Nẵng xác nhận việc thiếu vắng công cụ quản lý khiến việc tìm phòng thủ công gây lãng phí thời gian và giảm hiệu suất công việc khi lượng học viên tăng.
  • Đặc tả yêu cầu: Xác định rõ 2 tác nhân chính (Admin, User), liệt kê chi tiết các yêu cầu chức năng nghiệp vụ và các yêu cầu phi chức năng (giao diện trực quan, tốc độ xử lý nhanh chóng, tính năng bảo mật và an toàn dữ liệu).
  • Mô hình hóa biểu đồ UML: Xây dựng hệ thống biểu đồ Use Case tổng quát và 11 biểu đồ ca sử dụng chi tiết (Đăng nhập, Quản lý phòng họp, Tìm kiếm phòng họp, Đăng ký phòng họp, Quản lý lịch sử đăng ký phòng, Thống kê, Xem danh sách phòng họp, Phản hồi, Xử lý phản hồi, Quản lý người dùng, Quản lý tài sản).
  • Đặc tả kịch bản Use Case: Lập 11 bảng kịch bản Use Case chi tiết (từ Bảng 2.1 đến Bảng 2.11) mô tả mục tiêu, tác nhân, điều kiện đầu vào (Input), kết quả đầu ra (Output), luồng sự kiện chính (Basic flow), luồng rẽ nhánh (Alternative flow) và các trường hợp ngoại lệ (Exception flow).
  • Thiết kế sơ đồ hoạt động (Activity Diagrams) và sơ đồ tuần tự (Sequence Diagrams): Xây dựng chuỗi 11 biểu đồ Activity (từ Hình 2.12 đến Hình 2.22) mô tả luồng điều khiển xử lý nghiệp vụ và các biểu đồ Sequence (từ Hình 2.23 đến Hình 2.30) mô tả tuần tự trao đổi thông điệp giữa các đối tượng trong hệ thống (Đăng nhập, Tìm kiếm phòng, Đăng ký phòng, Lịch sử đăng ký, Thêm mới tài khoản, Đổi mật khẩu, Quản lý hồ sơ cá nhân).
  • Thiết kế cơ sở dữ liệu quan hệ: Định nghĩa chi tiết cấu trúc các trường thông tin, khóa chính, khóa ngoại và kiểu dữ liệu cho 12 bảng thực thể từ Bảng 2.12 đến Bảng 2.24.

Chương 3: Xây dựng chương trình

Chương 3 trình bày việc hiện thực hóa các phân tích, thiết kế thành phần mềm chạy thực tế:

  • Trình bày bộ công cụ lập trình và môi trường phát triển đã sử dụng (IntelliJ IDEA, WebStorm, MySQL Workbench, StarUML).
  • Hiện thực hóa 15 màn hình giao diện người dùng và quản trị viên, đảm bảo tính thẩm mỹ và đáp ứng đầy đủ các quy tắc nghiệp vụ:
    1. Giao diện trang chủ đặt phòng họp (tích hợp thanh Calendar và tìm kiếm nhanh).
    2. Giao diện đăng ký phòng họp (form nhập liệu thông tin đăng ký chi tiết).
    3. Giao diện tìm kiếm phòng trống (bộ lọc đa tiêu chí: thời gian, sức chứa, trang thiết bị).
    4. Giao diện Người dùng - Danh sách phòng họp (chế độ xem thẻ thông tin, trạng thái phòng).
    5. Giao diện Admin - Danh sách phòng họp (bổ sung các nút chức năng thêm, sửa, xóa phòng).
    6. Giao diện Người dùng - Danh sách phản hồi (theo dõi các phản hồi cá nhân đã gửi).
    7. Giao diện Người dùng - Phản hồi phòng họp (form báo cáo sự cố cơ sở vật chất phòng).
    8. Giao diện Người dùng - Phản hồi lỗi kỹ thuật (form báo lỗi hệ thống, bắt buộc đính kèm ảnh).
    9. Giao diện Admin - Danh sách phản hồi (tiếp nhận phản hồi toàn hệ thống, bộ lọc trạng thái).
    10. Giao diện Admin - Xử lý phản hồi phòng họp (form phản hồi kết quả giải quyết tới người dùng).
    11. Giao diện Admin - Xử lý phản hồi lỗi kỹ thuật (gán nhân viên và thông báo kết quả khắc phục).
    12. Giao diện Lịch sử đăng ký (danh sách các phiên đặt phòng, chức năng hủy phòng chưa dùng).
    13. Giao diện Thống kê (bảng tổng hợp số liệu và biểu đồ cột trực quan theo mốc thời gian).
    14. Giao diện Admin - Quản lý tài sản (theo dõi, phân bổ và cập nhật trang thiết bị phòng họp).
    15. Giao diện Admin - Quản lý người dùng (quản lý danh sách tài khoản, phân quyền).

Kết quả và đóng góp

Đồ án đã hoàn thành các mục tiêu đề ra và đạt được các kết quả cụ thể:

  • Sản phẩm phần mềm hoàn chỉnh: Xây dựng thành công hệ thống website quản lý phòng họp hoạt động ổn định trên nền tảng Spring Boot và Angular 9, đáp ứng đầy đủ các yêu cầu quản trị và tương tác người dùng.
  • Tự động hóa và tối ưu quy trình nghiệp vụ: Thay thế hoàn toàn phương thức tìm kiếm và đăng ký phòng thủ công tại Trung tâm CodeGym Đà Nẵng, giúp tiết kiệm thời gian, công sức di chuyển cho giảng viên và tutor, đồng thời loại bỏ nguy cơ trùng lặp lịch họp.
  • Cơ chế điều phối thông minh: Thiết lập thành công các luồng nghiệp vụ kiểm soát đặt phòng liên tục trên 2 ngày cần Admin phê duyệt, quản lý vòng đời xử lý sự cố phòng họp/lỗi kỹ thuật, và bảo đảm tính minh bạch trong quản lý tài sản cơ sở vật chất.
  • Báo cáo và thống kê trực quan: Cung cấp công cụ thống kê số liệu đặt phòng linh hoạt theo khoảng thời gian tùy chọn dưới dạng bảng dữ liệu và biểu đồ cột, hỗ trợ ban quản lý trung tâm đánh giá chính xác tần suất khai thác tài nguyên phòng họp.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi và nội dung nghiên cứu được trình bày trong đồ án, một số hạn chế và hướng mở phát triển tiếp theo bao gồm:

  • Về công nghệ: Tiếp tục cập nhật và nâng cấp các phiên bản mới của framework (Spring Boot, Angular) nhằm tối ưu hóa hiệu năng truyền tải dữ liệu, nâng cao cơ chế bảo mật và tích hợp thêm các dịch vụ thông báo tự động (thông báo qua email, tin nhắn thời gian thực).
  • Về ứng dụng và phạm vi triển khai: Hoàn thiện và đóng gói hệ thống để có thể mở rộng áp dụng từ quy mô thử nghiệm tại Trung tâm CodeGym Đà Nẵng sang hệ thống các cơ sở đào tạo, trường đại học, cao đẳng hoặc các doanh nghiệp có nhu cầu quản lý phòng họp và không gian làm việc dùng chung.

Giá trị tham khảo

Đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho các nhóm đối tượng:

  • Sinh viên ngành Công nghệ thông tin: Là tài liệu tham khảo toàn diện về cấu trúc của một đồ án tốt nghiệp chuẩn mực, từ khâu khảo sát thực tế, phân tích thiết kế hệ thống theo mô hình hướng đối tượng UML (Use Case, Activity, Sequence, ERD) đến thiết kế cơ sở dữ liệu và hiện thực hóa ứng dụng.
  • Lập trình viên phát triển ứng dụng Full-stack: Cung cấp mô hình mẫu kết hợp giữa Spring Boot RESTful API ở tầng backend và Angular Single Page Application ở tầng frontend, cách tổ chức mã nguồn, phân quyền người dùng và tích hợp giao diện Responsive qua Bootstrap.
  • Đơn vị quản lý cơ sở vật chất và đào tạo: Cung cấp mô hình phân tích nghiệp vụ thực tế về quản trị lịch phòng họp, điều phối tài sản và quy trình tiếp nhận, xử lý phản hồi sự cố không gian làm việc.

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

1. Hệ thống xử lý trường hợp người dùng đăng ký lịch phòng họp liên tục từ 2 ngày trở lên như thế nào?

Theo quy tắc nghiệp vụ trong kịch bản ca sử dụng "Đăng ký phòng họp", hệ thống không cho phép người dùng thông thường tự động đặt lịch phòng họp từ 2 ngày liên tục trở lên. Khi người dùng thực hiện đăng ký vượt quá thời gian này, yêu cầu sẽ được lưu vào bảng room_booking_pending và gửi thông báo chờ xét duyệt đến Quản trị viên. Người dùng chỉ được phép sử dụng phòng sau khi Admin đã duyệt yêu cầu.

2. Khi nào người dùng hoặc quản trị viên được phép xóa dữ liệu lịch sử đặt phòng và phản hồi sự cố?

  • Đối với lịch sử đặt phòng: Hệ thống chỉ cho phép xóa/hủy các lịch đăng ký phòng chưa sử dụng. Các lịch phòng đã diễn ra trong quá khứ bị khóa chức năng xóa để đảm bảo toàn vẹn dữ liệu thống kê.
  • Đối với phản hồi: Quản trị viên chỉ được phép xóa các phản hồi sự cố đã được xử lý xong. Các phản hồi đang ở trạng thái chưa xử lý không thể bị xóa khỏi hệ thống.

3. Quy định bắt buộc khi người dùng gửi phản hồi báo lỗi kỹ thuật của hệ thống là gì?

Trong kịch bản ca sử dụng "Phản hồi lỗi kỹ thuật", người dùng bắt buộc phải đính kèm tệp hình ảnh chụp màn hình lỗi. Nếu không chọn hình ảnh minh chứng, nút chức năng "Gửi phản hồi" trên giao diện sẽ tự động bị vô hiệu hóa (disabled).

4. Cơ sở dữ liệu của hệ thống bao gồm những bảng thực thể nào và được xây dựng trên hệ quản trị CSDL nào?

Cơ sở dữ liệu được xây dựng trên hệ quản trị cơ sở dữ liệu quan hệ MySQL, bao gồm 12 bảng thực thể chính: use_role, count_bookings_per_month, property_meeting_room, meeting_room, image_of_meeting_room, meeting_types, room_bookings, room_booking_pending, booking_cancellation, type_error, feedback_type và handle_feedback.

5. Hệ thống hỗ trợ những phương thức đăng nhập nào cho người dùng?

Người dùng có thể đăng nhập vào hệ thống bằng hai phương thức: sử dụng tài khoản/mật khẩu nội bộ đã được cấp hoặc đăng nhập nhanh thông qua tài khoản Google (Gmail).

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 tác giả Trần Minh Khoa đã giải quyết thành công bài toán tự động hóa quy trình quản lý và đăng ký phòng họp tại đơn vị thực nghiệm. Bằng việc kết hợp kiến trúc backend Spring Boot RESTful API với frontend Angular 9 và CSDL MySQL, hệ thống mang lại giải pháp vận hành liền mạch, chính xác và có tính ứng dụng thực tiễn cao. Toàn bộ tài liệu đồ án phản ánh quy trình phát triển phần mềm chặt chẽ từ khảo sát, mô hình hóa UML, thiết kế CSDL đến hiện thực hóa giao diện, là tài liệu tham khảo hữu ích cho các nghiên cứu và dự án phát triển phần mềm quản lý không gian làm việc.