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

Đại dịch Covid-19 tại Việt Nam đã để lại những tổn thất nghiêm trọng về mặt kinh tế và xã hội. Theo số liệu thống kê được tác giả trích dẫn từ báo chí (tuoitre.vn), thiệt hại kinh tế năm 2020 ước tính khoảng 160.000 tỉ đồng và năm 2021 là 346.000 tỉ đồng, tổng cộng hai năm 2020–2021 thiệt hại khoảng 507.000 tỉ đồng (theo thời giá năm 2010). Về sức khỏe cộng đồng, theo Bộ Y tế đã có 43.084 ca tử vong do Covid-19. Riêng trong ngành giáo dục, dịch bệnh khiến gần 20 triệu học sinh, sinh viên không thể đến trường, kế hoạch năm học bị gián đoạn và chương trình đào tạo phải tinh giản theo hướng chỉ giữ lại phần cốt lõi. Mặc dù tỷ lệ bao phủ vaccine đã đạt mức cao, nguy cơ bùng phát trở lại vẫn hiện hữu với các biến chủng mới (như biến thể phụ BA.5) cùng các trường hợp tái nhiễm thực tế (như ghi nhận 26 ca mắc lại chủng cũ tại Bạc Liêu khiến 2 trẻ em tử vong).

Trong bối cảnh đó, công tác quản lý dịch tễ tại các cơ sở giáo dục gặp nhiều trở ngại khi áp dụng phương pháp thủ công:

  • Việc kiểm soát, thống kê lượng sinh viên ra vào hàng ngày tại các chốt chặn bằng biểu mẫu giấy tiêu tốn nhiều nhân lực, thời gian và dễ xảy ra sai sót.
  • Các nền tảng khai báo y tế hiện hành trên kho ứng dụng Google Play chủ yếu vận hành ở quy mô toàn quốc, tính bao quát cao nhưng thiếu sự chuyên biệt hóa cho không gian lớp học, phòng thực hành tại Trường Đại học Tây Đô.

Nhằm giải quyết bài toán trên, khóa luận xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể:

  1. Xây dựng môi trường thông tin, liên lạc và quản lý dịch tễ tập trung giữa ba đối tượng: Quản trị hệ thống, Đối tác và Người dùng (sinh viên).
  2. Thiết lập cơ chế định danh và đăng nhập người dùng thông qua xác thực mã OTP gửi về số điện thoại cá nhân.
  3. Số hóa quy trình ghi nhận nhật ký di chuyển bằng cách quét mã QR tại từng phòng học/phòng thực hành nhằm lưu trữ chính xác thời gian, địa điểm và danh tính người quét.
  4. Xây dựng chức năng truy vết tiếp xúc gần (F1), hỗ trợ đánh dấu các đối tượng có nguy cơ nhiễm bệnh, tự động tính toán thời hạn cách ly và gửi thông báo trực tiếp về ứng dụng di động.
  5. Cung cấp công cụ xuất dữ liệu nhật ký khai báo ra tập tin Excel và phân quyền linh hoạt cho tài khoản đối tác để hỗ trợ vận hành hệ thống liên tục.
  • Đối tượng nghiên cứu: Sinh viên Trường Đại học Tây Đô và các tình huống phát sinh ca nhiễm Covid-19 trong phạm vi nhà trường; quy trình truy vết tiếp xúc qua mã QR và quản lý tiêm chủng.
  • Phạm vi nghiên cứu: Khu vực Trường Đại học Tây Đô (định hướng khả năng áp dụng mở rộng cho các trường trung học cơ sở, trung học phổ thông, cao đẳng, đại học tại Việt Nam). Về mặt kỹ thuật, khóa luận tập trung sâu vào phân hệ Website (dành cho Quản trị hệ thống và Đối tác).

Cơ sở lý thuyết và phương pháp nghiên cứu

Đề tài áp dụng các lý thuyết và mô hình công nghệ trong kỹ thuật phần mềm ứng dụng web hiện đại:

  • Kiến trúc runtime hướng sự kiện (Event-driven): Sử dụng nền tảng NodeJS để xây dựng dịch vụ máy chủ (Server Backend) xử lý các luồng dữ liệu I/O không đồng bộ, phục vụ việc tiếp nhận và xử lý nhiều yêu cầu đồng thời từ client.
  • Mô hình lập trình giao diện dựa trên thành phần (Component-based UI): Ứng dụng thư viện ReactJS với các khái niệm cốt lõi như Functional Components, Class-based Components, cú pháp JSX, cùng các React Hooks quản lý trạng thái và vòng đời (useState, useEffect).
  • Cơ sở dữ liệu phi quan hệ (NoSQL Document Store): Sử dụng MongoDB và thư viện Object Data Modeling (Mongoose ODM) để tổ chức dữ liệu dưới dạng JSON/BSON, tối ưu hóa tốc độ truy xuất và lưu trữ dữ liệu nhật ký quét mã linh hoạt.

Phương pháp nghiên cứu thực tế bao gồm:

  • Phương pháp phân tích yêu cầu: Tiến hành khảo sát thực trạng quản lý lớp học khi có ca nhiễm Covid-19, thu thập ý kiến đóng góp từ sinh viên Trường Đại học Tây Đô để đặc tả các ca sử dụng (Use Case) và yêu cầu chức năng.
  • Phương pháp thiết kế hệ thống: Xây dựng sơ đồ luồng dữ liệu (Data Flow Diagram - DFD) giữa Quản trị hệ thống, Đối tác và Người dùng; thiết kế chi tiết cấu trúc các Collections trong cơ sở dữ liệu Mongoose.
  • Phương pháp cài đặt và kiểm thử phần mềm: Lập trình front-end bằng ReactJS (công cụ xây dựng Vite, giao diện Material UI và Bootstrap), back-end bằng NodeJS; thực hiện kiểm thử chức năng (Functional Testing), kiểm thử tính khả dụng (Usability Testing) và kiểm thử cơ sở dữ liệu (Database Testing) qua các kịch bản thực nghiệm.
  • Nguồn dữ liệu: Dữ liệu mô phỏng và thực tế thu thập từ danh mục phòng học, phòng thực hành, thông tin sinh viên, danh mục lô vaccine và nhật ký quét mã QR tại Trường Đại học Tây Đô.

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

Hệ thống được thiết kế theo cấu trúc liên kết 3 phân hệ chính: Quản trị hệ thống (Admin Website), Đối tác (Partner Website) và Người dùng (Ứng dụng Di động Android).

Thành phần Công nghệ / Thư viện sử dụng Vai trò và chức năng chính
Front-end Web ReactJS, Vite, Material UI, Bootstrap Xây dựng giao diện trang Quản trị (Admin) và Đối tác (Partner); hiển thị Dashboard biểu đồ, quản lý bảng dữ liệu, lọc truy vết, xuất Excel.
Back-end Server NodeJS, JavaScript Xử lý logic nghiệp vụ, tiếp nhận API request, điều phối luồng dữ liệu giữa cơ sở dữ liệu và các giao diện người dùng.
Cơ sở dữ liệu MongoDB, Mongoose ODM Lưu trữ tài liệu phi quan hệ (documents) dạng JSON; quản trị 9 collections phục vụ lưu trữ thông tin người dùng, địa điểm, vaccine và nhật ký quét.
Ứng dụng Di động Android Studio, Java, Firebase Cung cấp giao diện cho sinh viên: đăng nhập OTP số điện thoại, quét mã QR phòng học, nhận cảnh báo cách ly, gửi phản hồi.
Công cụ hỗ trợ & Triển khai Heroku, Postman, Git, Visual Studio / VS Code Quản lý phiên bản mã nguồn (Git), kiểm thử giao tiếp REST API (Postman), lưu trữ và triển khai đám mây (Heroku PaaS).

Cấu trúc cơ sở dữ liệu trên Mongoose được thiết kế thông qua 9 collections chính:

Tên Collection Các trường dữ liệu chính Kiểu dữ liệu & Mô tả quan hệ
admin username, password String; lưu tài khoản và mật khẩu của Quản trị hệ thống.
partner fullname, password, permissionUser, permissionPlace, permissionScan, permissionDeclaration, permissionInfoVaccine String và Boolean; lưu danh sách đối tác kèm các cờ phân quyền thao tác chi tiết.
place name, address String; lưu tên và địa chỉ các phòng học/phòng thực hành được thiết lập mã QR.
user gender, phoneNumber, fullName, address, alert, dateCheck, tokenUser String, Boolean (alert để đánh dấu nguy cơ F1), lưu thời gian đánh dấu và mã token định danh.
userPlace user, place ObjectID; liên kết tham chiếu hai chiều giữa Collection user và place nhằm ghi nhận vết di chuyển.
userVaccine user, vaccine, vaccineLot ObjectID; lưu thông tin mũi tiêm của người dùng tham chiếu tới user, vaccine, vaccineLot.
vaccine name String; danh mục tên các loại vaccine phòng Covid-19.
vaccineLot name, quantity, vaccinated, vaccine String, Number (số lượng tổng, số đã tiêm) và Object tham chiếu tới Collection vaccine.
feedBack user, namePlace, comment, statusComment ObjectID tham chiếu user, String (tên khu vực, nội dung bình luận) và Boolean (trạng thái phản hồi).

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

Phần 1: Giới thiệu

Trình bày tổng quan về đề tài thông qua các nội dung: Đặt vấn đề, Lịch sử giải quyết vấn đề, Mục tiêu đề tài, Đối tượng và phạm vi nghiên cứu, Nội dung nghiên cứu cùng Bố cục tổng thể của khóa luận. Tác giả nhấn mạnh nhu cầu chuyển đổi từ phương pháp kê khai giấy thủ công sang hệ thống số hóa liên kết giữa Website và ứng dụng di động tại Trường Đại học Tây Đô.

Phần 2 - Chương 1: Tổng quan về đề tài

Mô tả chi tiết mô hình hoạt động của hệ thống liên kết 3 phân hệ (Quản trị hệ thống, Đối tác, Người dùng). Chương này đặc tả toàn bộ các chức năng chính:

  • Người dùng: Đăng nhập xác thực số điện thoại, tạo tài khoản, tải mã QR cá nhân để cập nhật mũi tiêm, cập nhật thông tin cá nhân, quét mã QR địa điểm phòng học, gửi phản ánh, liên hệ ban quản trị qua số điện thoại/Zalo và theo dõi chi tiết số mũi tiêm.
  • Đối tác: Đăng nhập và thực thi các tác vụ quản lý theo đúng các quyền hạn được Quản trị hệ thống phê duyệt.
  • Quản trị hệ thống: Quản lý toàn diện người dùng, địa điểm khai báo, kho/lô vaccine, thực hiện truy vết khai báo, quét mã nhanh xem thông tin cá nhân, tạo và phân quyền tài khoản đối tác.
  • Cơ sở công nghệ: Trình bày chi tiết lý thuyết nền tảng của NodeJS, ReactJS (kèm bảng phân tích tính năng: Components, Functional Components, Class-based Components, useEffect, useState, JSX), thư viện Material UI, công cụ xây dựng Vite, cơ sở dữ liệu MongoDB, nền tảng Heroku, công cụ kiểm thử Postman và hệ thống Git.

Phần 2 - Chương 2: Thiết kế và cài đặt giải pháp

Trình bày sơ đồ luồng dữ liệu quản trị hệ thống và đối tác. Thiết kế chi tiết lược đồ dữ liệu gồm 9 collections trong Mongoose: admin, partner, place, user, userPlace, userVaccine, vaccine, vaccineLot, feedBack. Mô tả rõ các ràng buộc khóa ngoại kiểu ObjectID giữa các bảng để hỗ trợ truy vấn quan hệ trong cơ sở dữ liệu NoSQL.

Phần 2 - Chương 3: Module Website ứng dụng

Mô tả chi tiết luồng vận hành và giao diện thực tế của từng mô-đun trên Website:

  1. Giao diện Đăng nhập: Xác thực quyền truy cập dành riêng cho Admin và Đối tác.
  2. Giao diện Dashboard: Khu vực tổng hợp số liệu thống kê gồm: tổng số người dùng, số người đã tiêm chủng, lượng vaccine tồn kho, danh sách địa điểm và biểu đồ hình tròn biểu diễn tỷ lệ phân bổ các mũi tiêm cùng các loại vaccine cập nhật mới nhất.
  3. Chức năng Quản lý người dùng: Cung cấp bộ lọc tìm kiếm nhanh theo tên/thông tin; giao diện xem chi tiết hồ sơ; chức năng chỉnh sửa, xóa người dùng; tải mã QR cá nhân; cập nhật số mũi tiêm; tạo mới tài khoản trực tiếp trên web mà không cần thông qua ứng dụng di động.
  4. Chức năng Quản lý địa điểm: Tạo mới phòng học/phòng thực hành; xuất mã QR địa điểm để in ấn và dán tại các cửa phòng; theo dõi danh sách lịch sử sinh viên đã quét mã tại địa điểm theo thời gian thực (tên, địa chỉ, ngày giờ quét).
  5. Chức năng Quản lý lô vaccine: Tạo lô vaccine rỗng; thêm danh mục các loại vaccine vào trong lô; cập nhật số lượng nhập kho, số lượng đã tiêm chủng và hiển thị chi tiết thông tin lô.
  6. Chức năng Truy vết khai báo: Cung cấp bộ lọc truy vết theo tên người khai báo, địa điểm, ngày và giờ; tính năng xuất dữ liệu ra tập tin Excel (toàn bộ hoặc theo kết quả lọc); chức năng đánh dấu người có nguy cơ lây nhiễm F1, nhập số ngày cách ly tương ứng để hệ thống hiển thị thời gian hoàn thành cách ly và cho phép gỡ đánh dấu thủ công hoặc tự động khi hết hạn.
  7. Chức năng Quét mã nhanh: Sử dụng camera/thiết bị quét mã QR của người dùng để truy xuất tức thì thông tin cá nhân và lịch sử tiêm chủng.
  8. Chức năng Quản lý ý kiến & đánh giá và Quản lý đối tác: Tiếp nhận bình luận/phản hồi của sinh viên theo từng địa điểm; tạo tài khoản đối tác và cấp quyền linh hoạt thông qua 5 nhóm quyền độc lập.

Phần 2 - Chương 4: Kiểm thử và đánh giá

Xác định mục tiêu kiểm thử nhằm đảm bảo tính chính xác và độ sẵn sàng của hệ thống. Thiết lập các kịch bản kiểm thử bao gồm: Kịch bản kiểm thử chức năng (Bảng 3), Kịch bản kiểm thử tính khả dụng (Bảng 4), Kịch bản kiểm thử cơ sở dữ liệu (Bảng 5). Trình bày kết quả kiểm thử thực nghiệm của Quản trị hệ thống (Bảng 7) và Đối tác (Bảng 8) thông qua 38 hình ảnh giao diện minh họa các ca kiểm thử thực tế.

Phần 3: Kết luận và hướng phát triển

Tổng kết các kết quả đạt được trong việc xây dựng hệ thống trên hai nền tảng Website và Di động; đề xuất phương hướng bảo trì, tối ưu hóa và mở rộng tính năng trong tương lai. Đính kèm danh mục tài liệu tham khảo và phần hướng dẫn chi tiết quy trình cài đặt, khởi chạy server, ứng dụng web trên môi trường Localhost và Heroku.

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

  • Kết quả kỹ thuật:
    • Xây dựng hoàn chỉnh phân hệ Website quản trị (Admin) và Đối tác (Partner) sử dụng ReactJS, NodeJS và MongoDB.
    • Tích hợp thành công cơ chế quản lý dữ liệu tập trung, cho phép đồng bộ hóa dữ liệu quét mã QR từ ứng dụng di động Android về máy chủ theo thời gian thực.
    • Vận hành ổn định các chức năng tạo mã QR cho phòng học, tạo lô vaccine, cập nhật mũi tiêm và trích xuất dữ liệu báo cáo ra định dạng tập tin Excel.
  • Giải pháp quản lý và truy vết:
    • Tự động hóa hoàn toàn quy trình ghi nhận sinh viên ra vào lớp học, loại bỏ thao tác ghi chép giấy tờ thủ công tại các điểm kiểm soát.
    • Cung cấp công cụ truy vết đa tiêu chí (theo tên, địa điểm, mốc thời gian), hỗ trợ đánh dấu đối tượng nghi nhiễm F1 và tự động gửi thông báo thời hạn cách ly về điện thoại cá nhân của sinh viên qua mã token định danh.
  • Phân quyền cộng tác:
    • Thiết lập cơ chế phân quyền chi tiết cho phép Admin phân bổ công việc cho các Đối tác thông qua 5 quyền độc lập (permissionUser, permissionPlace, permissionScan, permissionDeclaration, permissionInfoVaccine), giúp duy trì vận hành liên tục mà vẫn đảm bảo tính an toàn dữ liệu.

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

  • Hạn chế:
    • Phân hệ Quản trị hệ thống (Admin) và Đối tác (Partner) hiện tại mới chỉ được thiết kế và tối ưu cho giao diện máy tính (Desktop Website), chưa hỗ trợ giao diện đáp ứng (responsive) hoàn chỉnh cho màn hình điện thoại di động do tính chất phức tạp của các bảng dữ liệu thống kê và tác vụ quản trị.
    • Việc cập nhật số mũi tiêm chủng ban đầu của sinh viên vẫn cần có sự can thiệp thủ công của Quản trị viên hoặc Đối tác sau khi sinh viên liên hệ đối chiếu thông tin.
  • Hướng nghiên cứu và phát triển tiếp:
    • Nghiên cứu giải pháp bảo trì, tối ưu mã nguồn và nâng cao tính bảo mật của hệ thống.
    • Phát triển giao diện quản trị rút gọn hỗ trợ trực tiếp trên thiết bị di động cho Admin và Đối tác.
    • Mở rộng phạm vi thử nghiệm và triển khai thực tế tại các trường trung học phổ thông, cao đẳng và đại học trên địa bàn.

Giá trị tham khảo

  • Đối tượng tham khảo:
    • Sinh viên, học viên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang thực hiện khóa luận, đồ án tốt nghiệp về xây dựng ứng dụng web và di động kết nối đa nền tảng.
    • Các nhà phát triển phần mềm cần tham khảo giải pháp xây dựng hệ thống quản lý dịch tễ, chấm công, hoặc quản lý kiểm soát ra vào theo địa điểm dựa trên công nghệ mã QR.
  • Nội dung giá trị:
    • Mô hình thiết kế cơ sở dữ liệu Mongoose phi quan hệ có liên kết tham chiếu (ref ObjectID) phục vụ bài toán truy vết nhật ký di chuyển.
    • Phương pháp xây dựng giao diện quản trị Dashboard bằng ReactJS kết hợp Material UI và Vite.
    • Quy trình phân quyền động (Role-based/Permission-based Access Control) cho các tài khoản cộng tác viên/đối tác.

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

1. Cơ sở dữ liệu MongoDB trong khóa luận quản lý những thông tin nào để phục vụ việc truy vết tiếp xúc?
Hệ thống sử dụng Collection userPlace (lưu trữ liên kết giữa user và place kèm thời gian quét) kết hợp với Collection user (lưu thông tin cá nhân, cờ cảnh báo alert, thời gian đánh dấu dateCheck và tokenUser). Khi một ca nhiễm được xác định, ban quản trị lọc nhật ký di chuyển trong userPlace theo địa điểm và khung giờ để tìm ra những sinh viên có mặt cùng thời điểm.

2. Tài khoản Đối tác (Partner) có những quyền hạn cụ thể nào và do ai cấp?
Tài khoản Đối tác do Quản trị hệ thống (Admin) tạo và quản lý. Admin có thể bật/tắt 5 quyền hạn độc lập: permissionUser (quản lý người dùng), permissionPlace (quản lý địa điểm), permissionScan (quét mã nhanh), permissionDeclaration (quản lý khai báo và truy vết), và permissionInfoVaccine (quản lý thông tin vaccine). Đối tác chỉ được phép thao tác trên các giao diện tương ứng với quyền được cấp.

3. Chức năng đánh dấu người có nguy cơ nhiễm bệnh hoạt động như thế nào trên Website?
Tại giao diện Truy vết khai báo, Quản trị viên nhập số ngày cách ly dự kiến vào ô "Số ngày chăm sóc", sau đó đánh dấu chọn vào sinh viên có nguy cơ. Hệ thống sẽ cập nhật trạng thái alert, hiển thị thời gian hoàn thành cách ly dự kiến và gửi thông báo về ứng dụng di động của sinh viên. Trạng thái này có thể được gỡ bỏ bằng tay hoặc hệ thống tự động gỡ khi sinh viên hoàn thành đủ số ngày quy định.

4. Dữ liệu tiêm chủng vaccine được tổ chức như thế nào trong hệ thống?
Dữ liệu vaccine được phân tách thành 3 collections: vaccine (danh mục tên loại vaccine), vaccineLot (quản lý lô vaccine, gồm tên lô, tổng số lượng nhập và số lượng đã tiêm, liên kết với vaccine) và userVaccine (lưu trữ lịch sử tiêm của từng sinh viên, tham chiếu đồng thời đến user, vaccine và vaccineLot).

5. Vì sao hệ thống không triển khai giao diện Quản trị và Đối tác trên ứng dụng di động?
Theo phân tích của tác giả, giao diện quản trị chứa Dashboard tổng hợp số liệu, biểu đồ hình tròn, các bảng dữ liệu lớn, bộ lọc truy vết đa tiêu chí và tính năng xuất tập tin Excel. Việc thao tác trên máy tính với màn hình rộng giúp người quản trị dễ dàng xử lý, kiểm soát dữ liệu chính xác và thuận tiện hơn so với màn hình nhỏ của thiết bị di động.

Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Trường An đã hoàn thành việc thiết kế và xây dựng "Hệ thống hỗ trợ truy vết Covid tại trường Đại học Tây Đô (Module ứng dụng Website)". Đề tài đã ứng dụng hiệu quả các công nghệ web hiện đại gồm ReactJS, NodeJS, MongoDB, Vite và Material UI để giải quyết bài toán quản lý dịch tễ, quét mã QR ghi nhận ra vào và truy vết ca tiếp xúc gần trong phạm vi nhà trường. Kết quả kiểm thử thực nghiệm chứng minh hệ thống vận hành chính xác các chức năng quản trị, phân quyền đối tác và xuất báo cáo, cung cấp một giải pháp chuyển đổi số khả thi thay thế quy trình quản lý thủ công truyền thống.