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

Đánh giá chất lượng hoạt động giảng dạy là một trong những minh chứng thiết yếu phản ánh chất lượng đào tạo tại các cơ sở giáo dục đại học. Hoạt động này nhằm thực hiện quy chế dân chủ, nâng cao tinh thần trách nhiệm, đạo đức nghề nghiệp và năng lực chuyên môn của đội ngũ giảng viên; đồng thời là cơ sở minh bạch để bình xét thi đua, khen thưởng, phân bổ thu nhập tăng thêm và quy hoạch nhân sự.

Tại Trường Đại học Quản lý và Công nghệ Hải Phòng (HPU), công tác thu thập ý kiến phản hồi về hoạt động giảng dạy trước đây chủ yếu thực hiện bằng phương pháp thủ công thông qua việc phát phiếu giấy trực tiếp đến từng sinh viên trên lớp. Quy trình truyền thống này bộc lộ nhiều bất cập thực tiễn:

  • Chi phí và nguồn lực: Tốn kém chi phí in ấn biểu mẫu và tiêu tốn nhiều thời gian, nhân lực trong khâu phát và thu hồi phiếu.
  • Xử lý dữ liệu: Việc nhập liệu, tổng hợp và tính toán thủ công gặp khó khăn khi quy mô sinh viên, giảng viên và lớp môn học lớn, dễ dẫn đến sai sót và làm giảm độ chính xác của kết quả.
  • Tính kịp thời: Thời gian xử lý kéo dài khiến báo cáo tổng hợp bị chậm trễ, ảnh hưởng đến tiến độ ra quyết định quản lý.

Nhằm giải quyết các hạn chế trên, đồ án tốt nghiệp ngành Công nghệ thông tin của sinh viên Bùi Đức Thắng tập trung vào đề tài "Xây dựng Website lấy ý kiến trực tuyến về công tác giảng dạy của giảng viên HPU".

Nhiệm vụ và mục tiêu nghiên cứu cụ thể bao gồm:

  1. Tìm hiểu tổng quan về kiến trúc Microservices và khả năng áp dụng vào hệ thống phần mềm phân tán.
  2. Tìm hiểu và phân tích, thiết kế hệ thống theo phương pháp Thiết kế hướng miền (Domain Driven Design - DDD).
  3. Sử dụng công nghệ GraphQL và REST API để giải quyết các bài toán giao tiếp dữ liệu và cập nhật trạng thái thời gian thực.
  4. Xây dựng và triển khai hoàn chỉnh website thu thập ý kiến đánh giá công tác giảng dạy trực tuyến, đáp ứng đầy đủ các quy định nghiệp vụ hiện hành của Nhà trường.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ đánh giá công tác giảng dạy, các tiêu chí phản hồi và kiến trúc phần mềm hướng dịch vụ (Microservices, DDD, RESTful API, JWT, GraphQL).
  • Phạm vi không gian: Trường Đại học Quản lý và Công nghệ Hải Phòng (áp dụng cho sinh viên, giảng viên, tổ dự giờ, trưởng khoa và đơn vị quản lý đào tạo).
  • Phạm vi thời gian thực hiện: Đề tài được giao ngày 27/03/2023 và hoàn thành vào ngày 17/06/2023.

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

Đồ án kết hợp nghiên cứu lý thuyết về kiến trúc phần mềm hiện đại với phương pháp phân tích nghiệp vụ thực tế dựa trên văn bản pháp quy:

1. Cơ sở pháp lý và quy chuẩn nghiệp vụ

  • Quyết định số 73/QĐ-HĐT: Quyết định của Hội đồng trường Trường Đại học Quản lý và Công nghệ Hải Phòng về việc ban hành Quy chế đánh giá công tác giảng dạy. Đây là căn cứ xác định công thức tính điểm, hệ thống tiêu chí khảo sát và phân loại xếp hạng giảng viên.

2. Khung lý thuyết kỹ thuật và công nghệ

  • Kiến trúc Microservices: Mô hình phân rã ứng dụng lớn thành các dịch vụ độc lập, mỗi dịch vụ đảm nhận một nghiệp vụ riêng biệt, sở hữu cơ sở dữ liệu riêng, triển khai trên các môi trường tách biệt (container) và giao tiếp qua API.
  • Domain Driven Design (DDD): Phương pháp phát triển phần mềm lấy mô hình nghiệp vụ (core domain) làm trọng tâm, chuẩn hóa thuật ngữ chung (Ubiquitous Language), phân định ranh giới ngữ cảnh (Bounded Context), sử dụng tầng chống suy giảm (Anti-Corruption Layer) và tổ chức mã nguồn theo các thành phần: Thực thể (Entity), Đối tượng giá trị (Value Object), Khối kết hợp (Aggregate/Aggregate Root) và Dịch vụ miền (Domain Services).
  • Giao thức và Xác thực: RESTful API (sử dụng các phương thức chuẩn GET, POST, PUT, DELETE), JSON Web Token (JWT với cấu trúc 3 phần: Header, Payload, Signature) phục vụ xác thực không trạng thái, và GraphQL phục vụ truy vấn dữ liệu linh hoạt.

3. Phương pháp nghiên cứu và tích hợp dữ liệu

  • Phương pháp phân tích - tổng hợp: Trích xuất quy tắc nghiệp vụ từ Quy chế 73/QĐ-HĐT để chuẩn hóa thành các mô hình logic và quy trình người dùng.
  • Phương pháp thiết kế hệ thống hướng đối tượng và hướng miền: Phân rã bài toán theo 4 bước chuẩn hóa dữ liệu, xây dựng mô hình thực thể liên kết (ERD) và các bounded context.
  • Nguồn dữ liệu thực nghiệm: Hệ thống kết nối và lấy dữ liệu danh mục cán bộ, giảng viên, sinh viên, lớp môn học và thời khóa biểu từ các phần mềm quản trị sẵn có của Nhà trường (phần mềm Quản lý đào tạo Edu và phần mềm Quản lý giảng đường QLGD).

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

Hệ thống được thiết kế theo hướng module hóa nhằm đảm bảo tính độc lập, khả năng mở rộng và tương thích với hệ sinh thái phần mềm hiện hữu của HPU.

+-----------------------------------------------------------------------------+
|                                CLIENT LAYER                                 |
|         [ Web Interface: Sinh viên / Giảng viên / Quản lý / Trưởng khoa ]   |
|         [ Mobile Interface: Giao diện phản hồi nhanh cho Sinh viên ]        |
|                         AUTHENTICATION & GATEWAY                            |
|  [ Clerk Auth: Quản lý danh tính, phân quyền và cấp phát JWT chuẩn Hasura ]  |
|                       CORE APPLICATION & API ENGINE                         |
|  [ Hasura GraphQL Engine: Quản lý Endpoints, phân quyền RBAC, Realtime Sync]|
|          DATABASE LAYER               |   |      EXTERNAL INTEGRATION       |
|  [ Microservice Database:             |   |  - Hệ thống Quản lý Đào tạo Edu |
|    level_points, form_survey,         |   |  - Hệ thống QL Giảng đường QLGD |
|    course_respond,                    |   |    (Đồng bộ lớp học, TKB, SV)   |
|    user_respond_detail ]              |   +---------------------------------+
+---------------------------------------+

1. Kiến trúc phân tầng và tích hợp dịch vụ

  • Xác thực và phân quyền (Clerk): Quản lý tài khoản người dùng, chịu trách nhiệm xác thực danh tính sinh viên, giảng viên và quản trị viên. Clerk tự động tạo JWT kèm các trường phân quyền tùy biến theo chuẩn của Hasura để đính kèm vào mỗi yêu cầu API.
  • Công cụ sinh API tự động (Hasura GraphQL Engine): Đóng vai trò làm lớp trung gian kết nối cơ sở dữ liệu, tự động tạo các điểm cuối (Endpoints) GraphQL và REST API, hỗ trợ phân quyền truy cập theo vai trò (Role-Based Access Control - RBAC) và đồng bộ dữ liệu thời gian thực.
  • Tích hợp dữ liệu ngoài: Sử dụng REST API để đồng bộ dữ liệu danh sách lớp môn học, thời khóa biểu và sinh viên đăng ký từ các hệ thống Edu và QLGD.

2. Thiết kế cơ sở dữ liệu theo DDD

Cơ sở dữ liệu được xây dựng qua quy trình 4 bước chuẩn hóa, tập trung vào các bảng thực thể cốt lõi:

  • level_points: Lưu trữ các mức điểm và trọng số đánh giá theo từng thang đo.
  • form_survey: Quản lý các biểu mẫu khảo sát, danh mục tiêu chí đánh giá cho từng đối tượng.
  • course_respond: Lưu thông tin tổng hợp phản hồi của từng lớp môn học trong học kỳ.
  • user_respond_detail: Lưu chi tiết câu trả lời và điểm đánh giá của từng cá nhân đối với từng tiêu chí.

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

Chương 1: Tổng quan về kiến trúc Microservices

Chương này tập trung phân tích cơ sở lý thuyết về kiến trúc phần mềm, đặt trong sự so sánh giữa mô hình nguyên khối (Monolithic) và mô hình vi dịch vụ (Microservices):

Tiêu chí so sánh Kiến trúc Nguyên khối (Monolith) Kiến trúc Vi dịch vụ (Microservices)
Cấu trúc mã nguồn Toàn bộ chức năng nằm trong một khối mã nguồn duy nhất. Chia nhỏ thành nhiều dịch vụ độc lập, mã nguồn riêng biệt.
Cơ sở dữ liệu Sử dụng chung một cơ sở dữ liệu tập trung. Mỗi dịch vụ sở hữu cơ sở dữ liệu riêng biệt.
Giao tiếp nội bộ Gọi hàm trực tiếp trong bộ nhớ (Function calls). Giao tiếp qua mạng thông qua API (REST, GraphQL, Message Queue).
Triển khai & Nâng cấp Thay đổi nhỏ yêu cầu biên dịch và triển khai lại toàn bộ hệ thống. Triển khai, cập nhật và mở rộng độc lập từng dịch vụ.
Khả năng cô lập lỗi Lỗi tại một module có thể làm tê liệt toàn bộ ứng dụng. Lỗi được cô lập trong phạm vi dịch vụ, hệ thống duy trì hoạt động.
Yêu cầu quản trị Quản lý và cấu hình môi trường đơn giản ban đầu. Đòi hỏi hạ tầng phức tạp, quản lý mạng, container và điều phối API.

Chương 1 cũng trình bày chi tiết về:

  • Chuẩn RESTful API: Định nghĩa các phương thức truyền tải HTTP (GET, POST, PUT, DELETE) phục vụ quản lý tài nguyên.
  • Cơ chế bảo mật với JWT: Phân tích 3 thành phần của token (Header - thuật toán mã hóa; Payload - thông tin người dùng và thời hạn; Signature - chữ ký số bảo đảm toàn vẹn dữ liệu) nhằm duy trì phiên làm việc không trạng thái an toàn.
  • Nguyên tắc thiết kế Microservices: Phân định kích thước dịch vụ hợp lý, bao gói ứng dụng bên trong Docker container và phân chia cơ sở dữ liệu độc lập.

Chương 2: Tổng quan về Domain Driven Design (DDD)

Chương 2 trình bày phương pháp luận phát triển phần mềm hướng miền nhằm giải quyết sự phức tạp trong việc chuyển đổi nghiệp vụ thực tế thành kiến trúc kỹ thuật:

  • Ubiquitous Language (Ngôn ngữ chung): Thiết lập hệ thống thuật ngữ thống nhất giữa chuyên gia nghiệp vụ (Domain Expert) và nhóm phát triển phần mềm (Developer), loại bỏ sự sai lệch trong việc hiểu và cài đặt logic.
  • Bounded Context (Ngữ cảnh bị giới hạn): Phân chia hệ thống lớn thành các vùng nghiệp vụ độc lập, giúp xác định rõ ranh giới xử lý logic và cơ sở dữ liệu, tạo tiền đề trực tiếp cho việc chia tách Microservices.
  • Anti-Corruption Layer (Tầng chống suy giảm): Đóng vai trò lớp chuyển đổi trung gian, cô lập và điều hướng dữ liệu giữa các ngữ cảnh mới và cũ nhằm ngăn chặn sự phụ thuộc lẫn nhau.
  • Các khối xây dựng cơ bản (Basic Elements):
    • Entity: Đối tượng có danh tính định danh (ID) bất biến và duy nhất trong toàn hệ thống, tự quản lý vòng đời và logic nghiệp vụ nội tại.
    • Value Object: Đối tượng không cần định danh, chỉ mang giá trị, có tính chất bất biến (ví dụ: điểm số, nhãn đánh giá).
    • Aggregates & Aggregate Root: Gom nhóm các Entity và Value Object có liên quan chặt chẽ thành một khối thống nhất; mọi truy xuất từ bên ngoài bắt buộc phải đi qua gốc kết hợp (Aggregate Root).
    • Domain Services: Thành phần chứa các logic nghiệp vụ phức tạp liên quan đến nhiều Aggregate hoặc không thuộc về một Entity cụ thể.

Chương 3: Ứng dụng thực tế

Chương 3 mô tả toàn bộ quá trình áp dụng lý thuyết vào bài toán xây dựng hệ thống tại HPU:

1. Quy chuẩn hóa công thức tính điểm và xếp loại theo Quyết định 73/QĐ-HĐT

Quy chế quy định tỷ trọng và thang điểm thành phần trong đánh giá công tác giảng dạy của một học phần như sau:

Thành phần đánh giá Ký hiệu Tỷ trọng Thang điểm Ghi chú quy chuẩn
Sinh viên phản hồi $d_1$ 40% 1.00 – 5.00 Điểm trung bình các tiêu chí theo 5 mức; làm tròn 2 chữ số thập phân.
Đồng nghiệp dự giờ $d_2$ 40% 0.00 – 10.00 Điểm trung bình đánh giá dự giờ (Phụ lục 02); làm tròn 2 chữ số thập phân.
Đơn vị quản lý đào tạo $d_3$ 20% 0.00 – 10.00 Điểm theo dõi thực hiện quy chế giảng dạy (Phụ lục 03); làm tròn 2 chữ số thập phân.

Điểm đánh giá chung ($d$) của giảng viên cho một học phần được tính theo công thức: $$d = 0{,}8 \times d_1 + 0{,}4 \times d_2 + 0{,}2 \times d_3$$

(Trong đó hệ số $0{,}8$ dùng để quy đổi điểm $d_1$ từ thang 5 về thang điểm tối đa là 4.0; $0{,}4 \times 10 = 4.0$; $0{,}2 \times 10 = 2.0$; tổng điểm $d$ tối đa là 10.0).

Xếp loại công tác giảng dạy căn cứ vào điểm tổng hợp $d$:

  • Loại A: $9{,}00 \le d \le 10{,}00$
  • Loại B: $8{,}00 \le d \le 8{,}99$
  • Loại C: $6{,}00 \le d \le 7{,}99$
  • Loại D: $4{,}00 \le d \le 5{,}99$
  • Loại E: $0{,}00 \le d \le 3{,}99$

2. Quy trình nghiệp vụ của các nhóm người dùng

Đồ án xây dựng lưu đồ quy trình phân quyền cho 7 nhóm đối tượng:

  1. Quản trị viên (Admin): Khởi tạo đợt đánh giá trong kỳ; đồng bộ dữ liệu lớp học từ Edu/QLGD; xuất báo cáo CSV tiến độ lấy ý kiến.
  2. Cán bộ quản lý: Thiết lập bộ câu hỏi khảo sát; chọn và duyệt danh sách lớp môn học được đưa vào khảo sát.
  3. Sinh viên: Đăng nhập hệ thống, chọn lớp môn học đang học trong kỳ và thực hiện đánh giá theo các tiêu chí trực tuyến.
  4. Giảng viên: Đăng nhập và tra cứu kết quả phản hồi của sinh viên đối với các lớp môn học do mình phụ trách.
  5. Trưởng khoa: Chọn lớp môn học thuộc khoa; thành lập hội đồng dự giờ; phân công giảng viên dự giờ và xuất báo cáo phân công ra file CSV.
  6. Giảng viên dự giờ: Tra cứu danh sách lớp được phân công dự giờ và nhập biên bản đánh giá trực tuyến.
  7. Đơn vị quản lý đào tạo: Theo dõi việc chấp hành quy chế giảng dạy và nhập điểm đánh giá định kỳ cho các lớp môn học.

3. Kết quả thực nghiệm giao diện

Hệ thống đã xây dựng hoàn chỉnh các giao diện:

  • Giao diện khảo sát trên nền tảng Web và Mobile dành cho sinh viên.
  • Giao diện quản lý phân công dự giờ dành cho Trưởng khoa.
  • Giao diện xem chi tiết kết quả giảng dạy của giảng viên.
  • Chức năng trích xuất báo cáo tổng kết ra định dạng CSV phục vụ công tác quản lý.

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

1. Kết quả đạt được

  • Số hóa toàn diện quy trình: Chuyển đổi thành công hình thức phát phiếu giấy truyền thống sang quy trình khảo sát trực tuyến tự động, loại bỏ chi phí in ấn và giảm thiểu nhân lực vận hành.
  • Tự động hóa tính toán: Cài đặt chính xác thuật toán tính điểm tổng hợp $d = 0{,}8d_1 + 0{,}4d_2 + 0{,}2d_3$ và tự động xếp loại giảng viên từ A đến E theo đúng Quyết định 73/QĐ-HĐT.
  • Tích hợp hệ thống phân tán: Triển khai thành công dịch vụ xác thực tài khoản qua Clerk và cấu hình Hasura GraphQL Engine để tự động sinh các API danh mục cán bộ, danh sách lớp học và ghi nhận đánh giá với độ trễ thấp.
  • Hỗ trợ đa nền tảng: Cung cấp giao diện tương thích trên cả máy tính và thiết bị di động, tối ưu hóa trải nghiệm điền phiếu khảo sát của người học.

2. Đóng góp khoa học và thực tiễn

  • Đồ án là tài liệu thực nghiệm rõ ràng về việc ứng dụng kết hợp phương pháp DDD và kiến trúc Microservices vào bài toán tin học hóa quản lý trong môi trường đại học.
  • Xây dựng mô hình dữ liệu chuẩn hóa, có khả năng kết nối linh hoạt với các phần mềm quản lý đào tạo có sẵn thông qua REST/GraphQL API.

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

1. Hạn chế

  • Trong phạm vi báo cáo đồ án, tác giả chủ yếu tập trung trình bày chi tiết phân hệ đánh giá từ phía sinh viên; các phân hệ đánh giá của đồng nghiệp dự giờ và đơn vị quản lý đào tạo mới dừng lại ở mức thiết kế luồng và giao diện cơ bản.
  • Hệ thống phụ thuộc vào các dịch vụ nền tảng đám mây bên thứ ba (Clerk, Hasura Cloud/Engine), cần có giải pháp dự phòng khi vận hành trên hạ tầng máy chủ cục bộ (on-premise) của Nhà trường.

2. Hướng nghiên cứu tiếp

  • Hoàn thiện đầy đủ và kiểm thử tải trên quy mô toàn trường cho các phân hệ đánh giá dự giờ và theo dõi của phòng đào tạo.
  • Bổ sung module phân tích dữ liệu chuyên sâu và trực quan hóa kết quả đánh giá (Dashboard) nhằm hỗ trợ lãnh đạo Nhà trường theo dõi xu hướng chất lượng giảng dạy qua các năm.

Giá trị tham khảo

Tài liệu đồ án có giá trị tham khảo thiết thực cho các nhóm đối tượng sau:

  • Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Là tài liệu tham khảo bổ ích về phương pháp phân tích thiết kế hệ thống theo chuẩn Domain Driven Design (DDD) và cách phân rã Bounded Context khi triển khai kiến trúc Microservices.
  • Lập trình viên phát triển web: Cung cấp hướng dẫn thực hành tích hợp các công cụ hiện đại như Hasura GraphQL Engine, cơ chế xác thực JWT và dịch vụ quản lý danh tính Clerk.
  • Cán bộ quản lý giáo dục: Tham khảo mô hình số hóa quy trình lấy ý kiến phản hồi giảng dạy và cách thức xây dựng luồng nghiệp vụ đánh giá đa chiều (sinh viên, đồng nghiệp, đơn vị quản lý) trong các trường đại học.

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

1. Đồ án giải quyết bài toán thực tế nào tại Trường Đại học Quản lý và Công nghệ Hải Phòng?

Đề tài giải quyết bài toán số hóa quy trình lấy ý kiến đánh giá công tác giảng dạy của giảng viên HPU, thay thế phương thức phát phiếu giấy thủ công gây tốn kém chi phí in ấn, mất nhiều thời gian thu hồi và dễ phát sinh sai sót trong quá trình tổng hợp số liệu.

2. Điểm đánh giá chung của một học phần được tính toán theo công thức nào?

Theo Quyết định số 73/QĐ-HĐT được tác giả cài đặt trong hệ thống, điểm đánh giá chung $d$ (thang điểm 0–10) được tính theo công thức: $$d = 0{,}8d_1 + 0{,}4d_2 + 0{,}2d_3$$ Trong đó: $d_1$ là điểm phản hồi của sinh viên (thang 1–5, trọng số 40%); $d_2$ là điểm đánh giá của đồng nghiệp dự giờ (thang 0–10, trọng số 40%); $d_3$ là điểm đánh giá của đơn vị quản lý đào tạo (thang 0–10, trọng số 20%).

3. Thang xếp loại giảng viên sau khi tổng hợp điểm được phân chia như thế nào?

Kết quả xếp loại công tác giảng dạy của từng giảng viên được phân thành 5 mức:

  • Loại A: Từ 9,00 đến 10,00 điểm
  • Loại B: Từ 8,00 đến 8,99 điểm
  • Loại C: Từ 6,00 đến 7,99 điểm
  • Loại D: Từ 4,00 đến 5,99 điểm
  • Loại E: Từ 0,00 đến 3,99 điểm

4. Vai trò của Hasura và Clerk trong kiến trúc hệ thống là gì?

  • Clerk: Đảm nhiệm chức năng quản lý người dùng, xác thực đăng nhập và sinh mã JSON Web Token (JWT) theo cấu hình phân quyền.
  • Hasura: Kết nối cơ sở dữ liệu để tự động sinh các điểm cuối GraphQL/REST API, kiểm soát quyền truy cập dựa trên vai trò (RBAC) thông qua JWT do Clerk cấp và hỗ trợ đồng bộ dữ liệu thời gian thực.

5. Dữ liệu đầu vào của hệ thống được lấy từ những nguồn nào?

Dữ liệu về danh mục giảng viên, sinh viên, danh sách lớp môn học và thời khóa biểu trong học kỳ được hệ thống đồng bộ trực tiếp từ các phần mềm quản trị nội bộ của Trường Đại học Quản lý và Công nghệ Hải Phòng gồm: Phần mềm Quản lý đào tạo (Edu) và Phần mềm Quản lý giảng đường (QLGD) thông qua REST API.


Kết luận

Đồ án tốt nghiệp của sinh viên Bùi Đức Thắng đã nghiên cứu và ứng dụng thành công các nguyên lý kiến trúc Microservices và phương pháp Domain Driven Design vào việc xây dựng hệ thống website lấy ý kiến trực tuyến về công tác giảng dạy tại HPU. Phần mềm đáp ứng đầy đủ các quy định nghiệp vụ theo Quyết định số 73/QĐ-HĐT, giúp tự động hóa quy trình khảo sát, tính điểm và xếp loại giảng viên một cách chính xác, minh bạch. Đây là giải pháp công nghệ có tính thực tiễn cao, góp phần nâng cao hiệu quả quản trị và chất lượng đào tạo của Nhà trường.