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

Khóa luận tốt nghiệp "Hệ thống hỗ trợ truy vết Covid tại Trường Đại học Tây Đô (Module ứng dụng di động)" do sinh viên Nguyễn Minh Nhuật thực hiện dưới sự hướng dẫn của ThS. Lâm Tấn Phương, thuộc Khoa Kỹ thuật – Công nghệ, Trường Đại học Tây Đô (Cần Thơ, năm 2022). Nghiên cứu thuộc ngành Công nghệ thông tin, tập trung vào mô hình kỹ thuật xây dựng và triển khai phần mềm ứng dụng di động kết hợp hệ thống quản trị phục vụ y tế học đường.

Bối cảnh thực tiễn được tác giả nêu rõ xuất phát từ những tác động của đại dịch Covid-19 tại Việt Nam. Theo thống kê dẫn từ nguồn báo Tuổi Trẻ, thiệt hại kinh tế năm 2020 ước tính khoảng 160.000 tỉ đồng, năm 2021 là 346.000 tỉ đồng (tổng cộng giai đoạn 2020–2021 khoảng 507.000 tỉ đồng tính theo giá năm 2010), cùng hơn 43.084 ca tử vong do Bộ Y tế công bố. Đối với 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 trực tiếp, kế hoạch năm học bị gián đoạn và chương trình đào tạo buộc phải tinh giản. Dù độ bao phủ tiêm chủng đã nâng cao, nguy cơ bùng phát trở lại vẫn tồn tại với các biến chủng mới (như biến chủng BA.5) hoặc các đợt tái nhiễm cục bộ (như ghi nhận 26 ca tái nhiễm và 2 trường hợp tử vong trẻ em tại Bạc Liêu được văn bản viện dẫn).

Tại môi trường giảng đường, phương thức kiểm soát dịch bệnh truyền thống bằng giấy tờ tại các chốt chặn tiêu tốn nhân lực, mất nhiều thời gian và khó đảm bảo tính chính xác khi tổng hợp số liệu sinh viên ra vào hàng ngày. Mặt khác, các ứng dụng khai báo y tế trên kho ứng dụng Google Play chủ yếu xây dựng cho quy mô toàn quốc, chưa đáp ứng nhu cầu quản lý chi tiết, truy vết tiếp xúc nội bộ tại từng phòng học, phòng thực hành của Trường Đại học Tây Đô.

Từ thực tế đó, mục tiêu và nhiệm vụ nghiên cứu được xác định cụ thể:

  1. Xây dựng giải pháp phần mềm liên kết giữa ứng dụng di động Android và trang quản trị Website nhằm số hóa quá trình khai báo, kiểm soát lưu lượng người ra vào và truy vết đối tượng có nguy cơ lây nhiễm.
  2. Xây dựng quy trình xác thực người dùng di động bằng số điện thoại qua mã OTP để đảm bảo tính định danh, hỗ trợ quét mã QR tại phòng học để lưu vết di chuyển.
  3. Thiết lập hệ thống thông báo tự động đếm ngược ngày cách ly cho người dùng có tiếp xúc gần và cho phép gửi phản ánh thông tin dịch tễ trực tiếp về ban quản trị.
  4. Xây dựng phân hệ quản trị trên Website hỗ trợ phân quyền đối tác, quản lý thông tin lô vaccine, địa điểm và truy xuất dữ liệu dạng bảng tính.

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

  • Đối tượng nghiên cứu: Quy trình quản lý, giám sát dịch tễ và tình huống sinh viên mắc hoặc tiếp xúc gần với người mắc Covid-19 tại Trường Đại học Tây Đô; cơ chế tương tác dữ liệu giữa thiết bị di động của sinh viên và máy chủ quản trị.
  • Phạm vi không gian: Triển khai thử nghiệm tại khuôn viên Trường Đại học Tây Đô (các giảng đường, phòng học lý thuyết, phòng thực hành được gắn mã QR định danh địa điểm).
  • Phạm vi thời gian và công nghệ: Nghiên cứu thực hiện trong năm 2022; tập trung chuyên sâu vào phân hệ module ứng dụng di động hệ điều hành Android, kết nối API với hệ thống máy chủ và cơ sở dữ liệu chung.

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

Khóa luận được thực hiện theo phương pháp xây dựng phần mềm ứng dụng thực nghiệm, kết hợp phân tích yêu cầu từ thực tế sinh viên và thiết kế hệ thống thông tin. Quy trình nghiên cứu bao gồm: khảo sát nhu cầu quản lý lớp học khi xuất hiện ca nhiễm; mô hình hóa trường hợp sử dụng (Use Case); thiết kế luồng dữ liệu và lược đồ cơ sở dữ liệu phi quan hệ; lập trình đóng gói module và kiểm thử chức năng trên thiết bị thực tế.

Nền tảng công nghệ và thư viện kỹ thuật được sử dụng bao gồm:

Phân loại Công nghệ / Thư viện Vai trò trong hệ thống
Nền tảng di động Android Studio, Java Môi trường tích hợp (IDE) và ngôn ngữ lập trình phát triển ứng dụng di động cho người dùng.
Thư viện mạng Volley Quản lý luồng gửi/nhận yêu cầu mạng (Network Request), xử lý cache trên bộ nhớ cho chuỗi JSON và ảnh.
Thiết kế giao diện di động Material Design Chuẩn giao diện của Google hỗ trợ thiết kế các thành phần trực quan (Button, Grid view, List).
Giao diện Website quản trị ReactJS, Material UI, Bootstrap, Vite Xây dựng bảng điều khiển cho Quản trị viên và Đối tác tiếp nhận dữ liệu.
Máy chủ dịch vụ (Backend) NodeJS Xây dựng hệ thống API xử lý logic nghiệp vụ và điều phối kết nối.
Cơ sở dữ liệu MongoDB, Mongoose ODM Hệ cơ sở dữ liệu hướng tài liệu (NoSQL) lưu trữ dữ liệu dưới dạng JSON/BSON documents.
Dịch vụ đám mây Firebase Authentication, Firebase Remote Config, Firebase Cloud Messaging Xác thực số điện thoại bằng mã OTP; cấu hình giao diện từ xa; đẩy thông báo (push notifications) cảnh báo cách ly.
Triển khai và kiểm thử Heroku, Postman, Git Nền tảng PaaS triển khai máy chủ; công cụ kiểm thử REST API; hệ thống quản lý phiên bản mã nguồn phân tán.

Nguồn dữ liệu của nghiên cứu bao gồm số liệu dịch tễ từ các cơ quan y tế, báo chí chính thống tại Việt Nam và tập dữ liệu mô phỏng gồm các thông tin tài khoản người dùng, địa điểm phòng học, số lô vaccine tiêm chủng và biên bản phản ánh do sinh viên gửi lên hệ thống.

Thiết kế và triển khai

Hệ thống được thiết kế theo kiến trúc hướng dịch vụ với 3 phân hệ tương tác: Quản trị viên (Admin), Đối tác (Partner) và Người dùng sinh viên (User). Cơ sở dữ liệu MongoDB sử dụng thông qua Mongoose gồm 9 bảng tài liệu (collections) chính:

  1. admin: Lưu trữ tài khoản quản trị tối cao (username, password kiểu String).
  2. partner: Quản lý tài khoản đối tác được ủy quyền gồm fullname, password và các cờ phân quyền kiểu Boolean (permissionUser, permissionPlace, permissionScan, permissionDeclaration, permissionInfoVaccine).
  3. place: Định danh các khu vực phòng học, phòng chức năng gồm name, address (String).
  4. user: Lưu thông tin khách hàng/sinh viên gồm gender, phoneNumber, fullName, address, tokenUser, cờ cảnh báo lây nhiễm alert (Boolean) và ngày ghi nhận dateCheck.
  5. userPlace: Lưu vết di chuyển của sinh viên qua các lần quét mã QR, gồm trường user (ObjectID tham chiếu user) và place (ObjectID tham chiếu place).
  6. userVaccine: Lưu dữ liệu mũi tiêm cá nhân, liên kết các trường user, vaccine và vaccineLot.
  7. vaccine: Danh mục tên các loại vaccine (name kiểu String).
  8. vaccineLot: Quản lý lô vaccine gồm name, quantity (tổng số lượng), vaccinated (số lượng đã tiêm) và trường tham chiếu đến vaccine.
  9. feedBack: Lưu phản ánh dịch tễ từ người dùng gồm user (ObjectID), namePlace (tên khu vực phản ánh), comment (nội dung) và statusComment (trạng thái xử lý kiểu Boolean).

Kiểm thử hệ thống được thực hiện qua các kịch bản cụ thể:

  • Kiểm thử chức năng: Kiểm tra các nút bấm, luồng đăng nhập OTP, quét camera QR code, gửi phản hồi và gọi điện/nhắn tin Zalo từ ứng dụng.
  • Kiểm thử tính khả dụng: Đánh giá sự thuận tiện trong thao tác giao diện, khả năng thích ứng màn hình của các thành phần Material Design.
  • Kiểm thử cơ sở dữ liệu: Xác thực tính toàn vẹn dữ liệu khi tạo mới, cập nhật hồ sơ, tham chiếu khóa ngoại giữa các collections và tính chính xác của dữ liệu xuất ra bảng tính Excel phục vụ truy vết.

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

Chương 1: Tổng quan về đề tài

Chương này phân tích thực trạng dịch bệnh, trình bày tính cấp thiết của việc xây dựng hệ thống giám sát y tế trường học và mô tả tổng quan chức năng của 3 nhóm tác nhân (Người dùng, Đối tác, Quản trị viên). Tác giả làm rõ cơ chế người dùng sử dụng ứng dụng di động Android đăng nhập qua OTP, cập nhật thông tin cá nhân, quét mã QR ghi nhận địa điểm và gửi phản ánh. Phân hệ đối tác nhận các quyền giới hạn do quản trị cấp để hỗ trợ cập nhật dữ liệu. Quản trị hệ thống đóng vai trò trung tâm điều hành Dashboard, quản lý danh mục địa điểm, kho vaccine, phân quyền tài khoản, thực hiện truy vết lịch sử quét mã theo mốc thời gian và gắn cờ cảnh báo cách ly. Chương 1 cũng giới thiệu chi tiết đặc tính kỹ thuật của các nền tảng: Android Studio, ngôn ngữ Java, cơ chế hàng đợi bất đồng bộ của thư viện Volley, thư viện Material UI, các dịch vụ Firebase (Auth, Cloud Messaging, Remote Config), dịch vụ đám mây Heroku và công cụ Postman.

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

Chương 2 tập trung vào việc mô hình hóa hệ thống và thiết kế chi tiết cơ sở dữ liệu. Tác giả xây dựng sơ đồ luồng dữ liệu phía người dùng từ bước xác thực tài khoản đến khi được cấp phép thực hiện các thao tác chức năng. Nội dung trọng tâm là thiết kế lược đồ cho 9 collections trong Mongoose (admin, partner, place, user, userPlace, userVaccine, vaccine, vaccineLot, feedBack). Từng collection được mô tả chi tiết về cấu trúc các trường thông tin, kiểu dữ liệu tương ứng (String, Number, Boolean, ObjectID) và mối quan hệ liên kết dữ liệu giữa sinh viên, địa điểm quét mã và lịch sử tiêm chủng vaccine.

Chương 3: Module ứng dụng trên thiết bị di động

Chương 3 trình bày chi tiết giao diện và quy trình vận hành các chức năng trên ứng dụng Android:

  • Đăng nhập và đăng ký: Người dùng nhập số điện thoại để nhận mã OTP xác thực qua Firebase Authentication. Hệ thống tự động kiểm tra số điện thoại; nếu là tài khoản mới, giao diện chuyển sang màn hình khởi tạo hồ sơ (không cho phép sửa số điện thoại sau khi đăng ký).
  • Cập nhật thông tin: Cho phép sinh viên chỉnh sửa họ tên, địa chỉ, giới tính; số điện thoại được khóa cố định nhằm đảm bảo tính định danh trong điều tra dịch tễ.
  • Tải mã QR cá nhân: Tạo mã QR chứa thông tin định danh người dùng để phục vụ quét nhanh tại các điểm kiểm soát hoặc gửi qua mạng xã hội (Zalo, Email) cho quản trị viên.
  • Xem thông tin tiêm chủng: Hiển thị số lượng mũi tiêm, tên loại vaccine và thời gian tiêm. Để đảm bảo dữ liệu trung thực, sinh viên không được tự nhập mũi tiêm mà phải liên hệ ban quản trị để cập nhật từ hồ sơ y tế.
  • Quét mã QR địa điểm: Ứng dụng tích hợp camera quét mã dán tại các phòng học, tự động đồng bộ mã phòng và thời gian quét lên máy chủ.
  • Gửi phản ánh và liên hệ: Cung cấp biểu mẫu gửi phản ánh kèm lựa chọn địa điểm phòng học nghi vấn có ca bệnh; tích hợp nút gọi điện thoại trực tiếp hoặc kết nối ứng dụng Zalo tới số điện thoại đường dây nóng của ban quản trị.
  • Nhận cảnh báo: Khi phát hiện ca nhiễm trùng khớp lịch trình di chuyển, hệ thống gửi thông báo cảnh báo về điện thoại kèm số ngày cách ly quy định.

Chương 4: Kiểm thử và đánh giá

Chương 4 thiết lập các kịch bản kiểm thử (Bảng 2: 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) và tổng hợp kết quả thực thi (Bảng 5: Kết quả kiểm thử khách hàng). Các ca kiểm thử bao gồm: quy trình xác thực mã OTP, chức năng quét mã QR tại phòng học, chức năng tải ảnh mã QR về bộ nhớ máy, chức năng cập nhật thông tin cá nhân phản ánh ngay lên cơ sở dữ liệu, việc tiếp nhận và đổi trạng thái xử lý đơn phản ánh trên trang quản trị, cùng chức năng kích hoạt cuộc gọi/Zalo liên hệ ban quản trị. Kết quả cho thấy các module trên ứng dụng di động hoạt động ổn định, dữ liệu đồng bộ chính xác với hệ thống máy chủ và trang quản trị Web.

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

Nghiên cứu mang lại các kết quả thực tế thông qua các số liệu và sản phẩm cụ thể:

  • Đã thiết kế và đóng gói hoàn chỉnh tập tin cài đặt ứng dụng Android (.apk) hoạt động ổn định trên các thiết bị di động thông minh, kết nối đồng bộ thời gian thực với hệ thống máy chủ NodeJS và cơ sở dữ liệu MongoDB.
  • Xây dựng thành công cơ sở dữ liệu gồm 9 collections Mongoose, hỗ trợ xử lý đầy đủ các mối quan hệ logic giữa tài khoản người dùng, địa điểm phòng học và dữ liệu tiêm chủng.
  • Triển khai cơ chế xác thực tài khoản người dùng thông qua mã OTP điện thoại, khắc phục tình trạng tạo tài khoản giả mạo. Khóa cố định trường số điện thoại sau khi kích hoạt giúp duy trì tính chính xác của dữ liệu truy vết.
  • Hoàn thiện module quét mã QR địa điểm phục vụ lưu trữ tự động thời gian, danh tính người quét và vị trí phòng học, hỗ trợ chức năng xuất báo cáo định dạng bảng tính Excel và gửi thông báo hiển thị đếm ngược số ngày cách ly an toàn.
  • Cung cấp kênh phản ánh tình hình dịch tễ trực tiếp và tích hợp cổng liên lạc đa kênh (gọi thoại truyền thống và kết nối mạng xã hội Zalo) giữa sinh viên và quản trị viên nhà trường.
  • Đóng góp giải pháp phần mềm chuyên biệt hóa cho cấp cơ sở (trường đại học), giải quyết bài toán quản lý dịch tễ tập trung mà các hệ thống cấp quốc gia chưa bao quát chi tiết đến từng phòng học, phòng thực hành.

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

Khóa luận trình bày các nội dung dựa trên kết quả phát triển ban đầu của đề tài:

  • Hạn chế: Ứng dụng mới chỉ phát triển trên nền tảng hệ điều hành Android bằng ngôn ngữ Java, chưa hỗ trợ người dùng sử dụng hệ điều hành iOS. Việc ghi nhận số mũi tiêm vaccine vẫn phụ thuộc vào quy trình duyệt thủ công của quản trị viên qua thông tin liên hệ, chưa tích hợp tự động hóa với Cơ sở dữ liệu Tiêm chủng Quốc gia. Phạm vi thử nghiệm mới dừng lại ở quy mô nội bộ Trường Đại học Tây Đô.
  • Hướng phát triển tiếp: Tác giả định hướng mở rộng ứng dụng trên nền tảng đa hệ điều hành; nâng cấp các giải pháp bảo trì, sửa chữa hệ thống máy chủ; tối ưu hóa giao diện và phát triển thêm các thuật toán truy vết tự động khi mật độ sinh viên ra vào các phòng thực hành, giảng đường tăng cao.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn đối với sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin:

  • Cung cấp tài liệu mẫu về quy trình phát triển ứng dụng di động Android kết nối với hệ sinh thái JavaScript (NodeJS, ReactJS) và cơ sở dữ liệu NoSQL (MongoDB/Mongoose).
  • Là nguồn tham khảo trực quan về việc tích hợp các dịch vụ Firebase (Authentication OTP, Cloud Messaging, Remote Config) và thư viện Volley trong việc xử lý tương tác mạng và đẩy thông báo di động.
  • Mô tả chi tiết kỹ thuật tích hợp camera quét mã QR code để số hóa quy trình điểm danh, kiểm soát ra vào cơ sở hạ tầng thực tế.
  • Phần hướng dẫn cài đặt mã nguồn trong Android Studio và chuyển tệp APK qua cổng kết nối máy tính hoặc Zalo (từ Hình 52 đến Hình 64) là tài liệu thực hành hữu ích cho sinh viên làm đồ án tốt nghiệp về phần mềm di động.

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

Khóa luận giải quyết việc xác thực tài khoản sinh viên bằng cách nào?
Hệ thống sử dụng dịch vụ Firebase Authentication để gửi mã OTP về số điện thoại đăng ký của sinh viên. Sau khi nhập đúng mã OTP, ứng dụng mới cho phép đăng nhập hoặc tạo hồ sơ mới, đồng thời khóa không cho người dùng tự ý chỉnh sửa trường số điện thoại.

Tại sao sinh viên không được tự nhập số mũi vaccine trên ứng dụng di động?
Để ngăn ngừa tình trạng tự khai báo số mũi tiêm không chính xác làm sai lệch dữ liệu quản lý dịch tễ của nhà trường, sinh viên chỉ có quyền xem thông tin số mũi, tên loại vaccine và ngày tiêm. Muốn bổ sung hoặc điều chỉnh, sinh viên phải liên hệ trực tiếp quản trị viên hoặc đối tác có thẩm quyền thông qua mã QR cá nhân để cập nhật từ chứng từ tiêm chủng thực tế.

Hệ thống thực hiện truy vết sinh viên tiếp xúc gần bằng phương thức nào?
Sinh viên sử dụng ứng dụng quét mã QR dán tại cửa từng phòng học hoặc phòng thực hành trước khi vào. Hệ thống lưu lại thời gian và địa điểm vào bảng userPlace. Khi ghi nhận ca nhiễm, quản trị viên truy vấn danh sách người đã quét mã tại cùng phòng học trong khung giờ tương ứng, đánh dấu cờ cảnh báo alert trên hệ thống và gửi thông báo cách ly kèm số ngày cần cách ly đến ứng dụng của các sinh viên đó.

Quản trị viên và đối tác trong hệ thống phân chia quyền hạn như thế nào?
Quản trị viên (Admin) có toàn quyền quản trị Dashboard, quản lý tài khoản người dùng, tạo mã địa điểm, quản lý lô vaccine và phân quyền cho đối tác. Đối tác (Partner) chỉ được cấp tài khoản và thực hiện một số quyền hạn cụ thể do Quản trị viên kích hoạt thông qua các cờ phân quyền kiểu Boolean (permissionUser, permissionPlace, permissionScan, permissionDeclaration, permissionInfoVaccine).

Công nghệ mạng nào được sử dụng để kết nối ứng dụng Android với máy chủ backend?
Ứng dụng sử dụng thư viện Volley do Google giới thiệu. Thư viện này điều phối các yêu cầu mạng (Network Request) bất đồng bộ trên các luồng khác nhau với mức độ ưu tiên xác định, đồng thời lưu trữ dữ liệu phản hồi vào bộ nhớ đệm (cache) giúp ứng dụng tải nhanh dữ liệu định dạng JSON, String và hình ảnh.

Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Minh Nhuật đã nghiên cứu và phát triển thành công giải pháp phần mềm "Hệ thống hỗ trợ truy vết Covid tại Trường Đại học Tây Đô (Module ứng dụng di động)". Đề tài tích hợp nền tảng di động Android (Java, Volley, Firebase) với hệ thống quản trị Web (NodeJS, ReactJS, MongoDB), giải quyết bài toán số hóa quy trình quét mã QR theo dõi di chuyển và quản lý dịch tễ tại các phòng học. Công trình hoàn thành đầy đủ các mục tiêu thiết kế, lập trình và kiểm thử chức năng, đóng góp một mô hình ứng dụng công nghệ thông tin có tính thực tiễn cao cho công tác phòng chống dịch bệnh trong môi trường giáo dục đại học.