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

Trong công tác quản lý đào tạo tại các trường đại học, quy trình tổ chức, đăng ký, theo dõi tiến độ và chấm điểm khóa luận tốt nghiệp là một chuỗi nghiệp vụ phức tạp, liên quan đến nhiều đối tượng từ sinh viên, giảng viên đến giáo vụ khoa. Trước khi đề tài được thực hiện, Khoa Công nghệ Thông tin (CNTT) thuộc Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (HCMUTE) phần lớn quản lý quá trình này bằng các phương pháp thủ công và bảng tính Excel. Thực trạng đó dẫn đến nhiều hạn chế trong việc quản lý dữ liệu tập trung, khó khăn trong việc cập nhật thông tin tức thời, theo dõi tiến độ thực hiện cũng như thiếu sự đồng bộ trong việc thành lập hội đồng và chấm điểm theo tiêu chí.

Để giải quyết các bất cập thực tế này, đề tài "Xây dựng Website Quản lý đề tài Khóa luận tốt nghiệp Khoa CNTT" được nhóm sinh viên Ngô Đình Đại, Nguyễn Văn Truyền và Nguyễn Hồng Đức thực hiện dưới sự hướng dẫn của ThS. Ngô Ngọc Đăng Khoa (thời gian thực hiện từ tháng 09/2023 đến tháng 12/2023) nhằm tin học hóa toàn diện quy trình quản lý đề tài tốt nghiệp.

Theo văn bản đồ án, các nhiệm vụ nghiên cứu cụ thể được xác định gồm 6 nội dung:

  1. Tìm hiểu và phân tích yêu cầu của hệ thống: Xác định các tính năng, chức năng cần thiết để hỗ trợ toàn bộ quy trình quản lý đề tài khóa luận.
  2. Thiết kế cơ sở dữ liệu: Xây dựng mô hình cơ sở dữ liệu phản ánh chính xác cấu trúc thông tin của đề tài, đảm bảo tính toàn vẹn và mối quan hệ giữa các bảng để phục vụ truy xuất dữ liệu hiệu quả.
  3. Phát triển website: Sử dụng các công nghệ phát triển web hiện đại để xây dựng giao diện người dùng và triển khai đầy đủ các tính năng quản lý.
  4. Bảo mật thông tin: Thiết lập cơ chế bảo mật và phân quyền truy cập, bảo vệ dữ liệu người dùng và ngăn chặn truy cập trái phép.
  5. Kiểm thử và đánh giá: Thực hiện kiểm thử hệ thống nhằm đảm bảo tính ổn định, đáp ứng đúng yêu cầu nghiệp vụ và thu thập phản hồi cải tiến.
  6. Hướng dẫn sử dụng: Biên soạn tài liệu hướng dẫn chi tiết dành cho người quản trị và người sử dụng cuối.

Đối tượng và phạm vi nghiên cứu của đề tài được giới hạn như sau:

  • Đối tượng nghiên cứu: Các đối tượng tham gia vào quy trình quản lý và thực hiện khóa luận tốt nghiệp, bao gồm Sinh viên, Giảng viên và Giáo vụ khoa.
  • Phạm vi không gian: Áp dụng cho các hoạt động quản lý đề tài khóa luận tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh.
  • Phạm vi thời gian: Đồ án được triển khai thực hiện từ tháng 09/2023 đến tháng 12/2023.

Phân công nhiệm vụ của các thành viên tham gia đồ án được tổng hợp theo bảng sau:

STT Thành viên Mã số sinh viên Nhiệm vụ đảm nhiệm chính Tỷ lệ đóng góp
1 Ngô Đình Đại 19110160 Viết báo cáo, vẽ biểu đồ Use Case, đặc tả Use Case, thiết kế CSDL, lập trình Frontend, kiểm thử 33%
2 Nguyễn Văn Truyền 19110306 Viết báo cáo, vẽ biểu đồ Use Case, đặc tả Use Case, thiết kế CSDL, lập trình Backend, xây dựng API, kiểm thử 33%
3 Nguyễn Hồng Đức 19110156 Viết báo cáo, vẽ biểu đồ Use Case, đặc tả Use Case, thiết kế CSDL, lập trình Frontend, kiểm thử 33%

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

Khung lý thuyết và công nghệ áp dụng

Đồ án xây dựng hệ thống web dựa trên mô hình kiến trúc MERN Stack (MongoDB, ExpressJS/NestJS, ReactJS, NodeJS) nhằm xây dựng ứng dụng Universal App hướng tới hiệu năng cao và tính mở rộng:

  • NodeJS: Môi trường thực thi JavaScript phía máy chủ xây dựng trên nền tảng Chrome V8 Engine, sử dụng cơ chế hướng sự kiện (Event-Driven) và I/O không đồng bộ (Asynchronous Non-blocking I/O) giúp xử lý đồng thời nhiều kết nối.
  • NestJS: Framework phía server chạy trên nền tảng NodeJS, phát triển bằng ngôn ngữ TypeScript. NestJS kết hợp các nguyên lý Lập trình hướng đối tượng (OOP), Lập trình hàm (FP) và Lập trình phản ứng chức năng (FRP), cung cấp cấu trúc kiến trúc module hóa chặt chẽ, hỗ trợ cơ chế Tiêm phụ thuộc (Dependency Injection - DI), Decorators, Middleware, Pipes và tích hợp ORM.
  • ReactJS: Thư viện JavaScript mã nguồn mở cho tầng Client-side do Meta phát triển. ReactJS hoạt động dựa trên cấu trúc thành phần (Component-based), sử dụng cú pháp JSX, cơ chế Virtual DOM tối ưu hóa việc kết xuất giao diện và luồng dữ liệu một chiều (One-way data binding).
  • MongoDB: Hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) dạng tài liệu (Document Database). Dữ liệu được lưu trữ linh hoạt dưới dạng BSON/JSON trong các Collection, hỗ trợ cơ chế đánh chỉ mục (Index) và khóa định danh _id duy nhất.
  • JSON Web Token (JWT): Tiêu chuẩn mở phục vụ việc xác thực và phân quyền giữa Client và Server. Cấu trúc JWT bao gồm 3 phần: Header (loại token và thuật toán ký mã hóa HMAC/RSA), Payload (chứa các thông tin xác thực/claims) và Signature (chữ ký số xác minh tính toàn vẹn dữ liệu).

Phương pháp nghiên cứu và nguồn dữ liệu

Nhóm tác giả đã áp dụng kết hợp các phương pháp nghiên cứu kỹ thuật phần mềm:

  • Phương pháp khảo sát hiện trạng:
    • Khảo sát sơ cấp: Thiết kế và triển khai biểu mẫu Google Forms gửi đến các giảng viên và trưởng ngành trong Khoa CNTT - HCMUTE để thu thập thực trạng sử dụng công cụ quản lý, các khó khăn gặp phải và mức độ cần thiết của các tính năng dự kiến.
    • Khảo sát thứ cấp: Khảo sát trên Internet để tìm kiếm các hệ thống tương tự tại các trường đại học khác thông qua các từ khóa chuyên ngành.
  • Phương pháp phân tích và mô hình hóa: Sử dụng ngôn ngữ mô hình hóa UML để xây dựng sơ đồ Use Case, đặc tả chi tiết kịch bản tương tác và thiết kế sơ đồ thực thể quan hệ (ERD).
  • Phương pháp kiểm thử: Áp dụng phương pháp kiểm thử chức năng và kiểm thử giao diện lập trình ứng dụng (API Testing) thông qua công cụ chuyên dụng Postman để kiểm tra các phương thức HTTP (GET, POST, PUT, DELETE, PATCH).

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình Client-Server phân tách độc lập giữa giao diện người dùng và hệ thống xử lý API.

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

Hệ thống sử dụng MongoDB với 13 collection (bảng dữ liệu) chính phục vụ lưu trữ toàn diện thông tin quản lý khóa luận:

STT Tên Collection (Bảng) Chức năng lưu trữ dữ liệu trong hệ thống
1 Users Thông tin tài khoản người dùng, mã số, phân quyền vai trò (Giáo vụ, Giảng viên, Sinh viên)
2 Topics Thông tin chi tiết đề tài khóa luận, trạng thái duyệt, mô tả, giảng viên hướng dẫn
3 UserNotifications Thông tin thông báo gửi tới người dùng trong hệ thống
4 TopicCategories Danh mục phân loại lĩnh vực, chuyên ngành của đề tài
5 Semesters Dữ liệu về các học kỳ tổ chức khóa luận
6 ScoreBoards Bảng điểm tổng hợp của sinh viên thực hiện đề tài
7 RubricEvaluations Dữ liệu đánh giá chi tiết theo từng tiêu chí chấm điểm
8 Rubrics Phiếu đánh giá và các tiêu chí chấm điểm cấu hình sẵn
9 RegistrationPeriods Đợt đăng ký đề tài trong từng học kỳ kèm mốc thời gian
10 Majors Danh mục các chuyên ngành đào tạo trong khoa
11 GroupStudents Thông tin nhóm sinh viên cùng đăng ký thực hiện một đề tài
12 Faculties Danh mục các khoa / đơn vị quản lý
13 Assemblies Thông tin hội đồng bảo vệ, danh sách thành viên và các đề tài được gán vào hội đồng

Thiết kế các phân hệ và triển khai hệ thống

Hệ thống phân chia thành 3 phân hệ ứng dụng giao diện web tương ứng với 3 tác nhân người dùng:

  • Phân hệ Sinh viên: Cung cấp luồng đăng nhập xác thực JWT, tra cứu danh sách đề tài đang mở, nộp đơn đề xuất đề tài mới, ghi danh vào đề tài có sẵn, hủy ghi danh, nộp các biểu mẫu bổ sung (đơn xin hướng dẫn, đơn xin bảo vệ) và theo dõi kết quả đánh giá điểm số.
  • Phân hệ Giảng viên: Cung cấp các luồng nghiệp vụ tạo mới và quản lý đề tài cá nhân, chỉnh sửa thông tin, gửi đề tài lên giáo vụ phê duyệt, duyệt lựa chọn nhóm sinh viên thực hiện, chấm điểm đề tài hướng dẫn, chấm điểm đề tài phản biện và tham gia chấm điểm tại hội đồng bảo vệ theo mẫu phiếu rubric.
  • Phân hệ Giáo vụ: Đóng vai trò quản trị viên toàn hệ thống, quản trị danh mục học kỳ, cấu hình đợt đăng ký, quản lý danh mục phiếu đánh giá và tiêu chí (rubrics), quản lý người dùng (hỗ trợ nhập liệu đơn lẻ và import hàng loạt bằng tệp tin Excel), phê duyệt đề tài chính thức, phân công giảng viên phản biện (GVPB), thành lập hội đồng bảo vệ, gán đề tài vào hội đồng và xuất báo cáo/danh sách bảng điểm.
  • Môi trường triển khai: Hệ thống backend và cơ sở dữ liệu được cấu hình, triển khai trên nền tảng Cloud Cluster, kiểm thử hoạt động của toàn bộ REST API Server đảm bảo khả năng đáp ứng dữ liệu đồng bộ.

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

Chương 1: Tổng quan

Chương 1 trình bày tính cấp thiết của việc xây dựng hệ thống trực tuyến trong quản lý đề tài tốt nghiệp nhằm tạo ra môi trường làm việc minh bạch, giúp tiết kiệm thời gian cho giảng viên và sinh viên. Chương này xác định rõ 3 đối tượng tác động (Sinh viên, Giảng viên, Giáo vụ), phạm vi nghiên cứu tại Khoa CNTT - HCMUTE, các kết quả dự kiến của sản phẩm và bảng phân chia chi tiết khối lượng công việc giữa 3 thành viên thực hiện.

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

Chương 2 tập trung trình bày các nền tảng công nghệ sử dụng trong đồ án:

  • Phân tích kiến trúc tổng thể của MERN Stack và cơ chế truyền nhận dữ liệu phi đồng bộ thông qua định dạng JSON.
  • Phân tích công nghệ backend: Đặc tính bất đồng bộ, kiến trúc sự kiện của NodeJS và cấu trúc phân tầng hướng module, Dependency Injection của NestJS.
  • Phân tích công nghệ frontend: Thư viện ReactJS với cơ chế Virtual DOM, cú pháp JSX và One-way data binding.
  • Phân tích hệ quản trị cơ sở dữ liệu MongoDB: Cấu trúc Document, Collection, cơ chế Index và tối ưu hóa truy vấn.
  • Phân tích tiêu chuẩn xác thực JSON Web Token (JWT) và công cụ kiểm thử Postman.

Chương 3: Khảo sát hiện trạng và mô hình hóa yêu cầu

Chương 3 trình bày kết quả khảo sát thực tế và mô hình hóa hệ thống:

  • Kết quả khảo sát: Khảo sát qua Google Forms chỉ ra rằng việc quản lý bằng Excel thủ công tạo ra nhiều bất cập trong lưu trữ và phân chia hội đồng; khảo sát internet cho thấy thiếu vắng các giải pháp web chuyên biệt cho khoa CNTT.
  • Mô hình hóa yêu cầu: Xác định 44 yêu cầu chức năng nghiệp vụ cụ thể cho 3 nhóm tác nhân và 4 nhóm yêu cầu phi chức năng.

Bảng tổng hợp yêu cầu chức năng nghiệp vụ của hệ thống:

Nhóm tác nhân Số lượng yêu cầu Các chức năng nghiệp vụ tiêu biểu
Giáo vụ (Admin) 28 Quản lý học kỳ, quản lý đợt đăng ký, quản lý phiếu đánh giá và tiêu chí, quản lý người dùng (thêm/sửa/xóa/import Excel), phân công GVPB, thành lập và gán hội đồng, duyệt đề tài thực hiện, xuất danh sách và bảng điểm
Giảng viên 10 Đăng ký đề tài, duyệt nhóm sinh viên thực hiện, chấm điểm đề tài hướng dẫn, chấm điểm phản biện, chấm điểm hội đồng, xem lịch sử đề tài, gửi thông báo
Sinh viên 6 Đề xuất đề tài mới, hủy đề xuất, đăng ký ghi danh đề tài, xem thông tin đề tài đang làm, cập nhật báo cáo/đơn từ quan trọng, xem điểm số

Bảng tổng hợp yêu cầu phi chức năng của hệ thống:

STT Loại yêu cầu phi chức năng Nội dung yêu cầu kỹ thuật
1 Tính tiện dụng Giao diện thân thiện, trực quan, dễ thao tác đối với từng vai trò người dùng
2 Tính tiến hóa Hệ thống có kiến trúc mở, dễ dàng nâng cấp, mở rộng tính năng trong tương lai
3 Tính hiệu quả Tốc độ tải trang ổn định, thời gian phản hồi thao tác nhanh chóng
4 Tính bảo mật Bảo mật dữ liệu, kiểm soát truy cập và xác thực bằng token an toàn

Chương này cũng hoàn thiện các sơ đồ Use Case tổng quát và bảng đặc tả chi tiết kịch bản cho từng Use Case.

Chương 4: Thiết kế phần mềm

Chương 4 trình bày chi tiết về mặt thiết kế cấu trúc dữ liệu của hệ thống:

  • Xây dựng sơ đồ thực thể quan hệ (ERD).
  • Chi tiết hóa các trường dữ liệu, kiểu dữ liệu và ràng buộc logic cho 13 collection trên MongoDB (Users, Topics, UserNotifications, TopicCategories, Semesters, ScoreBoards, RubricEvaluations, Rubrics, RegistrationPeriods, Majors, GroupStudents, Faculties, Assemblies).

Chương 5: Tổng quan hệ thống

Chương 5 hiện thực hóa giao diện và luồng hoạt động chi tiết của các phân hệ:

  • Giới thiệu mô hình hoạt động tổng quan của hệ thống.
  • Chi tiết hóa luồng xử lý và giao diện màn hình cho 6 luồng thao tác của Sinh viên (đăng nhập, đề xuất đề tài, ghi danh, hủy ghi danh, cập nhật hồ sơ bổ sung, xem chi tiết đề tài).
  • Chi tiết hóa luồng xử lý và giao diện cho các chức năng của Giảng viên (tạo mới, sửa đề tài, gửi giáo vụ, chọn nhóm sinh viên, chấm điểm rubric).
  • Chi tiết hóa 18 luồng hoạt động trên giao diện Giáo vụ phục vụ quản trị toàn diện học kỳ, đợt đăng ký, tiêu chí chấm điểm, người dùng, phê duyệt đề tài và phân công hội đồng.

Chương 6: Kiểm thử hệ thống

Chương 6 trình bày công tác kiểm thử phần mềm:

  • Xác định mục đích và phạm vi kiểm thử cho các chức năng cốt lõi.
  • Thiết lập kế hoạch và áp dụng chiến lược kiểm thử chức năng, kiểm thử giao tiếp API Server bằng Postman nhằm đảm bảo các endpoint trả về dữ liệu đúng định dạng JSON, kiểm tra tính ổn định và tính đúng đắn của logic nghiệp vụ trước khi triển khai.

Chương 7: Tổng kết

Chương 7 tổng hợp lại toàn bộ kết quả đạt được sau quá trình thực hiện đồ án, cung cấp thông tin về mã nguồn, cấu hình triển khai hệ thống trên Cloud Cluster, đồng thời đưa ra các đánh giá khách quan về ưu nhược điểm và đề xuất hướng nâng cấp tiếp theo.


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

Kết quả kỹ thuật và chức năng đạt được

  • Xây dựng hoàn chỉnh hệ thống website quản lý đề tài khóa luận tốt nghiệp dựa trên MERN Stack (NestJS, ReactJS, MongoDB) với 3 phân hệ độc lập.
  • Thiết lập thành công cơ chế xác thực và phân quyền người dùng chặt chẽ thành 3 nhóm quyền (Giáo vụ, Giảng viên, Sinh viên) thông qua JSON Web Token (JWT).
  • Số hóa quy trình đăng ký, xét duyệt đề tài, nộp đơn từ bổ sung và quản lý nhóm sinh viên thực hiện.
  • Hỗ trợ nghiệp vụ quản trị phức tạp cho giáo vụ: quản lý đợt đăng ký, cấu hình tiêu chí chấm điểm (rubrics) linh hoạt, nhập dữ liệu người dùng hàng loạt qua tệp Excel, xếp hội đồng bảo vệ và phân công giảng viên phản biện.
  • Triển khai và kiểm thử thành công hệ thống trên nền tảng Cloud Cluster.

Đóng góp của đề tài

  • Chuyển đổi mô hình quản lý thủ công dựa trên bảng tính Excel sang hệ thống cơ sở dữ liệu tập trung, nâng cao tính minh bạch và độ chính xác trong công tác quản lý khóa luận tại Khoa CNTT.
  • Cung cấp giải pháp quản lý trực tuyến giúp tiết kiệm thời gian cho cán bộ quản lý, giảng viên và sinh viên trong toàn bộ chu kỳ thực hiện khóa luận.

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

Hạn chế ghi nhận trong văn bản

  • Hệ thống mới đáp ứng các chức năng nghiệp vụ cơ bản trong phạm vi quản lý khóa luận nội bộ của Khoa CNTT.
  • Chưa tích hợp sâu với các hệ thống quản lý đào tạo chung toàn trường của nhà trường.
  • Giao diện và một số tiện ích tương tác người dùng vẫn cần tiếp tục tinh chỉnh để tối ưu hóa trải nghiệm sử dụng.

Hướng phát triển tiếp theo

  • Nghiên cứu tối ưu hóa hiệu năng hệ thống và tốc độ truyền tải dữ liệu thông qua việc nâng cấp các phiên bản công nghệ mới.
  • Tự động hóa hoàn toàn quy trình xếp lịch hội đồng và phân công phản biện dựa trên thuật toán tối ưu.
  • Bổ sung và mở rộng các tính năng thống kê, trích xuất báo cáo chuyên sâu phục vụ phòng đào tạo và ban chủ nhiệm khoa.

Giá trị tham khảo

Tài liệu đồ án 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 chuyên ngành Công nghệ phần mềm / CNTT: Là tài liệu tham khảo chi tiết về quy trình phân tích thiết kế hệ thống theo chuẩn UML, thiết kế CSDL NoSQL MongoDB và kỹ thuật xây dựng ứng dụng Full-stack với NestJS và ReactJS.
  • Kỹ sư phát triển phần mềm: Cung cấp tài liệu mẫu về việc triển khai cơ chế xác thực JWT, cấu trúc module trong NestJS và phương pháp kiểm thử REST API bằng Postman.
  • Cán bộ quản lý đào tạo: Cung cấp mô hình phân tích nghiệp vụ thực tế về quy trình tổ chức, phân công và đánh giá khóa luận tốt nghiệp theo hình thức phiếu chấm rubric tại các đơn vị đào tạo đại học.

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

1. Hệ thống sử dụng ngăn xếp công nghệ (tech stack) cụ thể nào để phát triển?
Hệ thống được phát triển dựa trên kiến trúc MERN Stack với các công nghệ chính: ReactJS ở tầng Frontend, NestJS và NodeJS ở tầng Backend, hệ quản trị cơ sở dữ liệu NoSQL MongoDB và sử dụng công cụ Postman để kiểm thử API.

2. Hệ thống quản lý và phân quyền cho những đối tượng (tác nhân) nào?
Hệ thống phân quyền cho 3 tác nhân chính: Sinh viên (đề xuất, đăng ký đề tài, nộp báo cáo, xem điểm), Giảng viên (tạo đề tài, duyệt nhóm, chấm điểm hướng dẫn/phản biện/hội đồng) và Giáo vụ (quản trị học kỳ, đợt đăng ký, tiêu chí rubric, người dùng, phân công phản biện và hội đồng).

3. Cơ sở dữ liệu MongoDB của hệ thống gồm những bảng (collection) nào?
Cơ sở dữ liệu bao gồm 13 collection: Users, Topics, UserNotifications, TopicCategories, Semesters, ScoreBoards, RubricEvaluations, Rubrics, RegistrationPeriods, Majors, GroupStudents, Faculties và Assemblies.

4. Phương pháp khảo sát hiện trạng thực tế được nhóm tác giả tiến hành như thế nào?
Nhóm tác giả thực hiện khảo sát qua 2 phương án: Phương án 1 sử dụng Google Forms gửi đến các giảng viên và trưởng ngành trong Khoa CNTT để ghi nhận nhu cầu thực tế; Phương án 2 tra cứu các giải pháp tương tự trên Internet thông qua các từ khóa chuyên ngành.

5. Cơ chế bảo mật và xác thực người dùng trong hệ thống được thực hiện bằng giải pháp nào?
Hệ thống áp dụng tiêu chuẩn JSON Web Token (JWT) gồm 3 thành phần (Header, Payload, Signature) để mã hóa, xác thực các yêu cầu gửi từ Client tới Server và phân chia quyền truy cập tương ứng với từng nhóm người dùng.


Kết luận

Đồ án tốt nghiệp "Xây dựng Website Quản lý đề tài Khóa luận tốt nghiệp Khoa CNTT" của nhóm tác giả tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh đã giải quyết trọn vẹn bài toán số hóa quy trình quản lý khóa luận thông qua việc áp dụng nền tảng MERN Stack hiện đại. Công trình đã hoàn thành đầy đủ từ khâu khảo sát thực tế, mô hình hóa 44 yêu cầu nghiệp vụ, thiết kế 13 bảng dữ liệu trên MongoDB đến việc lập trình hoàn thiện 3 phân hệ giao diện cho Giáo vụ, Giảng viên và Sinh viên. Hệ thống được kiểm thử bằng Postman, triển khai trên Cloud Cluster và bảo mật bằng cơ chế JWT, tạo ra một giải pháp quản lý đào tạo trực tuyến có tính khả thi và giá trị ứng dụng thực tiễn cao.