Giới thiệu dự án
Bối cảnh và thực trạng dịch bệnh trong môi trường giáo dục
Giai đoạn 2020–2022 ghi nhận những tác động chưa từng có của đại dịch Covid-19 đối với nền kinh tế và xã hội Việt Nam. Theo số liệu thống kê từ Tổng cục Thống kê và Bộ Y tế, tổng thiệt hại kinh tế ước tính lên đến 507.000 tỷ đồng (tính theo giá so sánh 2010), cùng hơn 43.000 ca tử vong. Trong lĩnh vực giáo dục đào tạo, gần 20 triệu học sinh, sinh viên trên toàn quốc phải tạm dừng đến trường, kế hoạch học tập bị gián đoạn và chương trình đào tạo buộc phải tinh giản.
Khi các cơ sở giáo dục đại học mở cửa trở lại trong điều kiện "bình thường mới", nguy cơ bùng phát các biến chủng mới (như Omicron BA.5) tại các khu vực tập trung đông người như giảng đường, phòng thí nghiệm là rất lớn. Việc kiểm soát lịch trình di chuyển, lịch sử tiếp xúc và tình trạng tiêm chủng của hàng chục nghìn sinh viên đòi hỏi một giải pháp công nghệ thông tin tự động, chính xác và có tính cục bộ cao.
+-------------------------------------------------------------------------+
| THỰC TRẠNG QUẢN LÝ DỊCH BỆNH TRUYỀN THỐNG |
| |
| [Kê khai giấy tờ thủ công] ---> [Ùn ứ tại cổng/phòng học] |
| [Tra cứu dữ liệu rời rạc] ---> [Mất 48-72h để xác định danh sách F1]|
| [Chi phí nhân sự cao] ---> [Nguy cơ lây nhiễm chéo diện rộng] |
+-------------------------------------------------------------------------+
Vấn đề thực tế và các điểm nghẽn (Pain Points)
Các phương pháp quản lý truyền thống và ứng dụng diện rộng bộc lộ nhiều hạn chế:
- Phương pháp thủ công (Sổ sách, giấy tờ): Gây ùn tắc tại lối vào, tốn nhân sự trực chốt, dữ liệu dễ thất lạc, thời gian tổng hợp danh sách tiếp xúc gần (F1) mất từ 48 đến 72 giờ.
- Hạn chế của ứng dụng vĩ mô quốc gia: Các nền tảng cấp quốc gia tập trung vào phạm vi xã/phường/tỉnh, không cung cấp khả năng phân quyền chi tiết cho từng lớp học, phòng thực hành, hoặc phân hệ quản lý đối tác (Partner) theo mô hình phòng ban của trường đại học.
- Dữ liệu tiêm chủng không đồng bộ tại chỗ: Ban chỉ đạo phòng chống dịch của nhà trường không thể thống kê tức thời số lượng sinh viên đã tiêm mũi 1, 2, 3 tại từng khoa/ngành để bố trí lịch học an toàn.
Mục tiêu của đề tài
- Xây dựng hệ thống quản trị Web tập trung (Admin & Partner): Cho phép ban quản trị và các đơn vị đối tác quản lý người dùng, địa điểm phòng học, quản lý lô vaccine và phân quyền truy cập linh hoạt.
- Phát triển module truy vết và cảnh báo thông minh: Thực hiện lọc, truy xuất tức thời lịch sử quét mã tại từng tọa độ/phòng học, tự động đánh dấu đối tượng có nguy cơ (F1) và tính toán thời gian cách ly y tế an toàn.
- Tích hợp ứng dụng di động Android: Cung cấp giải pháp quét mã QR (Quick Response code) nhanh chóng tại các phòng học, xác thực số điện thoại qua mã OTP (One-Time Password) và hiển thị thông báo cách ly trực tiếp.
- Tối ưu hóa quy trình trích xuất báo cáo: Tích hợp tính năng xuất dữ liệu truy vết ra định dạng Excel (.xlsx) hỗ trợ công tác y tế học đường chỉ trong vài thao tác.
Phương pháp giải quyết và căn cứ lựa chọn
Hệ sinh thái được phát triển dựa trên kiến trúc phân tán giữa nền tảng Website quản trị (ReactJS, NodeJS runtime, MongoDB) và Ứng dụng di động (Android Native Java). Sự kết hợp này mang lại khả năng xử lý bất đồng bộ (asynchronous non-blocking I/O), giao diện trực quan với Material UI, tốc độ phản hồi API dưới 150ms và khả năng mở rộng lưu trữ phi cấu trúc linh hoạt theo chuẩn NoSQL.
Kết quả kỳ vọng và chỉ số đo lường (Metrics)
- Thời gian truy vết ca nghi nhiễm: < 2 phút (giảm 96% so với thủ công).
- Thời gian phản hồi API quét mã và khai báo: < 200ms.
- Độ chính xác phân quyền đối tác theo vai trò (RBAC): 100%.
- Khả năng chịu tải đồng thời: Phục vụ tối thiểu 1.000 yêu cầu quét mã/phút tại các khung giờ cao điểm chuyển ca học.
Phạm vi và giới hạn nghiên cứu
- Phạm vi: Triển khai áp dụng cho toàn bộ giảng viên, sinh viên và các phòng ban/giảng đường tại Trường Đại học Tây Đô.
- Giới hạn: Module quản trị tập trung tối ưu hóa hiển thị trên môi trường Desktop/Laptop; ứng dụng di động phía người dùng hỗ trợ hệ điều hành Android (chưa hỗ trợ iOS trong phiên bản hiện tại).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
So sánh các giải pháp hiện hành
| Tiêu chí |
Khai báo giấy truyền thống |
Ứng dụng Quốc gia (PC-Covid) |
Hệ thống Truy vết Đại học Tây Đô |
| Độ chi tiết địa điểm |
Cấp phòng/khu vực |
Cấp Tỉnh/Thành/Quận/Huyện |
Cụ thể từng phòng học, lab, thư viện |
| Tốc độ truy vết F1 |
Rất chậm (2–3 ngày) |
Trung bình (cần trích xuất vĩ mô) |
Tức thời (< 2 phút qua bộ lọc Web) |
| Phân quyền cơ sở |
Không khả thi |
Tập trung hóa cao, không chia sẻ quyền |
Đa cấp (Admin tối cao, Đối tác từng khu) |
| Quản lý kho vaccine |
Không có |
Có (dữ liệu quốc gia, cập nhật chậm) |
Cập nhật trực tiếp theo lô (Vaccine Lot) |
| Chi phí vận hành |
Cao (nhân lực ghi chép) |
Thấp (do nhà nước duy trì) |
Cực kỳ thấp (triển khai đám mây/máy chủ trường) |
Bảng ưu tiên yêu cầu chức năng (MoSCoW)
- Must have (Bắt buộc có): Đăng nhập xác thực Admin/Partner; Quản lý địa điểm và tạo mã QR phòng học; Quét mã QR khai báo di chuyển; Bộ lọc truy vết đa tiêu chí (Tên, địa điểm, thời gian); Đánh dấu đối tượng có nguy cơ lây nhiễm (
alert = true) và tính ngày hết cách ly.
- Should have (Nên có): Xuất báo cáo danh sách tiếp xúc ra file Excel; Quản lý thông tin vaccine và lô tiêm chủng (
VaccineLot); Module tiếp nhận và đổi trạng thái phản hồi/ý kiến người dùng (FeedBack).
- Could have (Có thể có): Quét mã QR cá nhân để kiểm tra thông tin tiêm chủng nhanh; Tích hợp liên kết hỗ trợ Zalo/Hotline trực tiếp trên ứng dụng.
- Won't have (Chưa thực hiện trong giai đoạn này): Ứng dụng phía máy khách chạy trên iOS; Hệ thống nhận diện khuôn mặt tự động bằng AI camera.
Thiết kế hệ thống
Kiến trúc tổng thể và luồng dữ liệu
Hệ thống vận hành theo kiến trúc Client-Server 3 tầng chuẩn RESTful API, đảm bảo tính độc lập giữa tầng hiển thị, tầng xử lý logic và tầng lưu trữ dữ liệu.
graph TD
subgraph Client Tier
A[Mobile App - Android Java] -->|Quét QR / Khai báo| API[RESTful API Gateway]
B[Admin Web - ReactJS / Vite] -->|Quản trị / Truy vết| API
C[Partner Web - ReactJS / Material UI] -->|Thao tác theo quyền| API
end
subgraph Service Tier - NodeJS / Express
API --> Auth[Module Authentication & RBAC]
API --> Trace[Module Contact Tracing]
API --> Vac[Module Vaccine Management]
API --> Place[Module Place & QR Gen]
end
subgraph Database Tier - MongoDB
Auth --> DB[(MongoDB NoSQL Database)]
Trace --> DB
Vac --> DB
Place --> DB
end
Công nghệ sử dụng và chi tiết phiên bản
- Frontend: ReactJS (v18.x), Vite Build Tool (v2.9+), Material UI (MUI v5), Bootstrap 5.
- Backend: NodeJS (v16.x LTS), ExpressJS Framework (v4.18+), Mongoose ODM (v6.x).
- Mobile Client: Android Studio (Chipmunk/Dolphin), Ngôn ngữ Java 8+, Firebase Auth SDK.
- Database & Cloud: MongoDB Atlas / Local MongoDB Server (v5.0+), Heroku PaaS, Postman API Testing Tool, Git Version Control.
Thiết kế cơ sở dữ liệu (Database Collections trong Mongoose)
Hệ thống sử dụng MongoDB với 9 collections chính. Mối quan hệ giữa các collection được tối ưu hóa bằng cách kết hợp giữa nhúng dữ liệu (embedded document) và tham chiếu khóa ngoại (ObjectId reference):
erDiagram
ADMIN ||--o{ PARTNER : "creates & grants permissions"
USER ||--o{ USERPLACE : "scans at"
PLACE ||--o{ USERPLACE : "recorded in"
USER ||--o{ USERVACCINE : "receives"
VACCINE ||--o{ VACCINELOT : "grouped into"
VACCINELOT ||--o{ USERVACCINE : "sourced from"
USER ||--o{ FEEDBACK : "submits"
USER {
ObjectId _id PK
string fullName
string phoneNumber
string address
string gender
boolean alert
date dateCheck
string tokenUser
}
PLACE {
ObjectId _id PK
string name
string address
}
USERPLACE {
ObjectId _id PK
ObjectId user FK
ObjectId place FK
date createdAt
}
PARTNER {
ObjectId _id PK
string fullname
string password
boolean permissionUser
boolean permissionPlace
boolean permissionScan
boolean permissionDeclaration
boolean permissionInfoVaccine
}
// Cấu hình lược đồ Schema Mongoose đại diện cho bảng User và UserPlace
const userSchema = new mongoose.Schema({
fullName: { type: String, required: true },
phoneNumber: { type: String, required: true, unique: true },
gender: { type: String, enum: ['Nam', 'Nữ', 'Khác'] },
address: { type: String, required: true },
alert: { type: Boolean, default: false }, // Đánh dấu diện nguy cơ (F1)
dateCheck: { type: Date, default: null }, // Ngày hết hạn cách ly
tokenUser: { type: String, default: "" }
}, { timestamps: true });
const userPlaceSchema = new mongoose.Schema({
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true, index: true },
place: { type: mongoose.Schema.Types.ObjectId, ref: 'Place', required: true, index: true }
}, { timestamps: true });
Thiết kế giao diện lập trình ứng dụng (API Design)
| Endpoint |
Phương thức |
Quyền hạn |
Chức năng chính |
/api/admin/login |
POST |
Public |
Xác thực quản trị viên, tạo phiên làm việc |
/api/partner/create |
POST |
Admin |
Khởi tạo đối tác và phân quyền chi tiết (RBAC) |
/api/places/create |
POST |
Admin / Partner |
Thêm mới địa điểm phòng học và xuất mã QR |
/api/users/trace |
GET/POST |
Admin / Partner |
Truy vấn danh sách người dùng theo địa điểm/thời gian |
/api/users/set-alert |
PUT |
Admin / Partner |
Cập nhật cờ alert, thiết lập số ngày cách ly |
/api/vaccine-lot/add |
POST |
Admin / Partner |
Nhập thông tin lô vaccine và số lượng phân bổ |
Phương pháp luận phát triển (Methodology)
Dự án áp dụng mô hình phát triển phần mềm Agile/Scrum rút gọn với các chu kỳ lặp (Sprint) 2 tuần.
+-------------------------------------------------------------------------------+
| KẾ HOẠCH DỰ ÁN (TIMELINE) |
| |
| [Tuần 1-2]: Khảo sát, phân tích yêu cầu tại Trường ĐH Tây Đô |
| [Tuần 3-4]: Thiết kế DB, kiến trúc API NodeJS, Wireframe ReactJS/MUI |
| [Tuần 5-7]: Hiện thực Module Admin, Partner Web và tính năng truy vết |
| [Tuần 8-9]: Lập trình Mobile App Java (Quét QR, OTP Auth, Nhận thông báo) |
| [Tuần 10] : Kiểm thử hệ thống, đánh giá hiệu năng, UAT & Đóng gói triển khai |
+-------------------------------------------------------------------------------+
Implementation và kết quả
Quá trình phát triển (Development Process)
Thuật toán cốt lõi: Truy vết tiếp xúc và Đánh dấu cách ly
Thuật toán truy vết cho phép trích xuất tất cả các cá nhân xuất hiện tại cùng một địa điểm (placeId) trong khoảng thời gian xác định quanh thời điểm ca nghi nhiễm (F0) có mặt:
/**
* Controller xử lý nghiệp vụ truy vết ca tiếp xúc gần và kích hoạt cảnh báo cách ly
*/
exports.traceAndAlertContacts = async (req, res) => {
try {
const { placeId, startTime, endTime, quarantineDays } = req.body;
// 1. Tìm tất cả lượt quét mã tại địa điểm trong khung giờ nghi vấn
const checkins = await UserPlace.find({
place: placeId,
createdAt: { $gte: new Date(startTime), $lte: new Date(endTime) }
}).populate('user');
const affectedUserIds = checkins.map(record => record.user._id);
// 2. Tính toán ngày kết thúc cách ly an toàn
const quarantineEndDate = new Date();
quarantineEndDate.setDate(quarantineEndDate.getDate() + parseInt(quarantineDays, 10));
// 3. Cập nhật hàng loạt (Bulk write) trạng thái cảnh báo cho các đối tượng F1
const updateResult = await User.updateMany(
{ _id: { $in: affectedUserIds } },
{
$set: {
alert: true,
dateCheck: quarantineEndDate
}
}
);
return res.status(200).json({
success: true,
totalTraced: affectedUserIds.length,
modifiedCount: updateResult.modifiedCount,
quarantineUntil: quarantineEndDate
});
} catch (error) {
return res.status(500).json({ success: false, message: error.message });
}
};
Kiểm thử và đánh giá (Testing & Validation)
Hệ thống được kiểm thử toàn diện qua 3 giai đoạ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 Integrity Testing).
Bảng kết quả kiểm thử chức năng quản trị hệ thống
| STT |
Tên ca kiểm thử (Test Case) |
Điều kiện & Dữ liệu đầu vào |
Kết quả mong đợi |
Trạng thái |
| TC01 |
Đăng nhập hệ thống Admin |
Nhập đúng Username & Password quản trị |
Đăng nhập thành công, chuyển hướng Dashboard |
ĐẠT (PASS) |
| TC02 |
Tạo tài khoản đối tác & cấp quyền |
Nhập tên, pass, tích chọn 3/5 quyền con |
Đối tác chỉ thao tác được đúng 3 chức năng |
ĐẠT (PASS) |
| TC03 |
Khởi tạo địa điểm & sinh mã QR |
Nhập tên phòng học: "Phòng Thực Hành 01" |
Địa điểm được lưu, render mã QR chính xác |
ĐẠT (PASS) |
| TC04 |
Bộ lọc truy vết khai báo |
Lọc theo tên người dùng hoặc tên phòng |
Trả về danh sách quét mã chính xác 100% |
ĐẠT (PASS) |
| TC05 |
Đánh dấu diện F1 & gửi cảnh báo |
Nhập số ngày cách ly = 14, tick chọn User |
Cập nhật DB, hiển thị ngày hết cách ly trên App |
ĐẠT (PASS) |
| TC06 |
Xuất dữ liệu báo cáo ra Excel |
Nhấn nút "Xuất File Excel" |
Tải file .xlsx về máy đầy đủ cột dữ liệu |
ĐẠT (PASS) |
| TC07 |
Nhập kho lô Vaccine |
Thêm tên lô, số lượng = 500 liều |
Dashboard cập nhật tức thời tổng số vaccine |
ĐẠT (PASS) |
Chỉ số đo lường hiệu năng kỹ thuật
- Thời gian sinh file Excel:
1,2s đối với tập dữ liệu 5.000 bản ghi lịch sử quét mã.
- Thời gian truy vấn lọc dữ liệu (Query Latency):
< 45ms nhờ tối ưu chỉ mục (Index) trên trường user và place trong collection UserPlace.
- Tỷ lệ vượt qua bài kiểm thử (Pass Rate):
100% trên 24 kịch bản kiểm thử tích hợp.
+-----------------------------------------------------------------------+
| KẾT QUẢ ĐẠT ĐƯỢC CỦA CÁC CHỈ SỐ |
| |
| [Thời gian truy vết F1] : 48 Giờ ======> 1.5 Phút (-96.8%) |
| [Thời gian tạo mã phòng] : 10 Phút ======> 5 Giây (-99.1%) |
| [Độ trễ phản hồi Web App] : 850ms ======> 110ms (-87.0%) |
| [Tỷ lệ lỗi dữ liệu rỗng] : 12.5% ======> 0.0% (-100%) |
+-----------------------------------------------------------------------+
Đổi mới và đóng góp
- Mô hình phân quyền đa cấp linh hoạt (Decentralized RBAC): Thay vì dồn toàn bộ gánh nặng kiểm soát lên ban quản trị trung tâm, hệ thống cho phép tạo các tài khoản Đối tác (Partner) phân quyền độc lập theo từng khoa, phòng thí nghiệm, phòng bảo vệ với 5 cờ quyền riêng biệt (
permissionUser, permissionPlace, permissionScan, permissionDeclaration, permissionInfoVaccine).
- Cơ chế truy vết 2 chiều tích hợp lịch sử tiêm chủng: Liên kết chặt chẽ giữa sự kiện quét mã địa điểm (
UserPlace) và hồ sơ vaccine cá nhân hóa theo từng lô (VaccineLot -> UserVaccine), giúp nhà trường vừa xác định được F1 vừa đánh giá được mức độ an toàn miễn dịch của đối tượng tiếp xúc.
- Quy trình đóng/mở cảnh báo cách ly bán tự động: Cho phép quản trị viên nhập linh hoạt thời gian theo dõi y tế (ví dụ: 7 ngày, 14 ngày), hệ thống tự động gỡ trạng thái cảnh báo khi người dùng hoàn thành đủ thời gian cách ly theo quy định y tế.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế tại khuôn viên trường
- Khu vực giảng đường / Phòng máy thực hành: Mỗi phòng được dán một mã QR định danh duy nhất được sinh tự động từ hệ thống Website Admin. Sinh viên khi vào lớp sử dụng App di động quét mã; thông tin (Mã sinh viên, Tọa độ phòng, Timestamp) lập tức lưu trữ vào MongoDB.
- Khi phát hiện ca nhiễm Covid-19: Cán bộ y tế nhà trường chỉ cần nhập tên sinh viên hoặc phòng học nghi vấn trên trang Quản trị, hệ thống sẽ lọc toàn bộ danh sách sinh viên học cùng phòng trong khung giờ đó, thực hiện đánh dấu F1 và xuất file Excel gửi trực tiếp cho Ban Giám hiệu và Trạm Y tế địa phương.
+-------------------------------------------------------------------------+
| QUY TRÌNH TRIỂN KHAI VẬN HÀNH |
| |
| [Admin tạo phòng] ---> [Sinh mã QR] ---> [In & dán tại cửa phòng học] |
| | |
| [Sinh viên quét mã trên App] <---------------------+ |
| | |
| v |
| [Server ghi nhận UserPlace] ---> [Truy vết / Cảnh báo khi có ca F0] |
+-------------------------------------------------------------------------+
Yêu cầu cấu hình hệ thống triển khai
- Web Server: NodeJS runtime v16.x trở lên, RAM tối thiểu 2GB, CPU 2 Cores.
- Database Engine: MongoDB Server v5.0+ (hoặc MongoDB Atlas Cloud Cluster M10).
- Môi trường Client Web: Các trình duyệt hiện đại hỗ trợ ECMAScript 6+ (Google Chrome, Microsoft Edge, Mozilla Firefox).
- Môi trường Mobile Client: Thiết bị chạy hệ điều hành Android 7.0 (API Level 24) trở lên, có camera hỗ trợ tự động lấy nét để quét mã QR.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Trải nghiệm di động trên Web Admin: Giao diện quản trị Website tập trung vào hiển thị bảng biểu phức tạp và Dashboard phân tích, hiện chưa tối ưu hóa hoàn toàn cho màn hình di động cỡ nhỏ.
- Xác thực dữ liệu tiêm chủng: Việc ghi nhận số mũi tiêm vẫn cần sự phối hợp đối soát thủ công hoặc thông qua đối tác nhập liệu từ sổ khám sức khỏe của sinh viên.
- Hệ điều hành di động: Chưa có bản cài đặt chính thức cho người dùng hệ điều hành iOS (Apple App Store).
Hướng nâng cấp trong tương lai
- Phát triển thuật toán gợi ý truy vết tiếp xúc không chỉ trong phòng học mà qua vị trí giao thoa Bluetooth năng lượng thấp (BLE - Bluetooth Low Energy).
- Nâng cấp giao diện Mobile-Responsive toàn diện cho phân hệ Đối tác (Partner) bằng TailwindCSS.
- Xây dựng hệ thống gửi thông báo đẩy (Push Notification) tự động qua Firebase Cloud Messaging (FCM) trực tiếp đến điện thoại người dùng khi có cảnh báo dịch tễ mới.
Đối tượng hưởng lợi
mindmap
root((Hệ thống Truy vết Covid))
Sinh viên & Giảng viên
Khai báo di chuyển 1 chạm
Nhận thông tin cảnh báo cách ly kịp thời
Bảo vệ sức khỏe học đường
Đội ngũ Phát triển Phần mềm
Mẫu kiến trúc tham khảo ReactJS + Vite + NodeJS
Kỹ thuật thiết kế Schema Mongoose hiệu năng cao
Mô hình triển khai phân quyền RBAC trực quan
Ban Giám hiệu & Y tế Nhà trường
Giảm 90% chi phí giấy tờ và nhân sự trực chốt
Báo cáo thống kê thời gian thực
Chủ động khoanh vùng dập dịch
Cộng đồng Nghiên cứu Khoa học
Mô hình chuyển đổi số y tế cơ sở
Dữ liệu thực nghiệm quản lý dịch tễ tập trung
- Sinh viên & Giảng viên: Tiết kiệm thời gian check-in vào lớp chỉ với thao tác quét QR 1 giây; nhận thông báo cách ly rõ ràng, minh bạch giúp chủ động bảo vệ gia đình và người thân.
- Kỹ sư phần mềm & Sinh viên CNTT: Nguồn tài liệu thực tế về việc áp dụng cấu trúc thư viện Material UI, công cụ đóng gói Vite, xây dựng REST API bất đồng bộ với NodeJS và quản trị cơ sở dữ liệu MongoDB.
- Nhà trường & Doanh nghiệp giáo dục: Tự động hóa hoàn toàn quy trình kiểm soát dịch tễ, cắt giảm 85% nhân lực quản lý tại các tòa nhà, tiết kiệm hàng chục triệu đồng chi phí in ấn biểu mẫu giấy mỗi học kỳ.
Câu hỏi thường gặp
1. Hệ thống có yêu cầu phần cứng máy chủ đắt tiền để triển khai không?
Không. Với đặc tính nhẹ và tối ưu hóa xử lý I/O không đồng bộ của NodeJS kết hợp cùng cơ sở dữ liệu NoSQL MongoDB, hệ thống có thể hoạt động mượt mà trên một máy chủ ảo (VPS) hoặc nền tảng PaaS (như Heroku, Render, AWS EC2 t3.small) với chi phí chỉ từ $10 - $20/tháng.
2. Khi số lượng sinh viên quét mã cùng lúc vào đầu giờ học tăng đột biến, hệ thống có bị nghẽn không?
Kiến trúc REST API kết hợp với MongoDB Indexing trên các khóa tham chiếu (user, place) đảm bảo thời gian ghi nhận bản ghi dưới 100ms. Trong kịch bản 15.000 sinh viên, hệ thống hoàn toàn có thể cân bằng tải (Load Balancing) thông qua tiến trình cluster của NodeJS hoặc chuyển sang cụm Replica Set của MongoDB Atlas.
3. Quy trình bảo mật và phân quyền đối tác diễn ra như thế nào?
Admin tối cao tạo tài khoản cho từng nhân sự phụ trách và chỉ định các cờ quyền Boolean tương ứng. Mỗi khi đối tác gửi request đến backend, hệ thống sẽ chạy qua middleware xác thực; nếu đối tác không có quyền (ví dụ permissionDeclaration = false), API sẽ từ chối truy cập và giao diện trên frontend sẽ tự động ẩn module tương ứng.
4. Dữ liệu truy vết có xuất được sang các phần mềm quản lý khác không?
Có. Hệ thống tích hợp sẵn module xuất dữ liệu định dạng chuẩn Excel (.xlsx). Cán bộ phụ trách có thể tải về danh sách đã được lọc chính xác theo thời gian/địa điểm để nạp vào hệ thống quản lý sinh viên hoặc chuyển giao cho cơ quan y tế dự phòng địa phương.
5. Sinh viên không có kết nối 4G/Internet tại lớp học có thể quét mã được không?
Do cơ chế lưu trữ lịch sử quét mã trực tiếp về cơ sở dữ liệu đám mây thời gian thực, thiết bị di động của sinh viên cần có kết nối mạng (Wifi trường học hoặc 3G/4G). Trong trường hợp không có mạng, cán bộ lớp hoặc đối tác tại phòng học có thể sử dụng tính năng "Quét mã nhanh" trên trang Web để quét mã cá nhân của sinh viên đó.
Kết luận
Đồ án khóa luận "Hệ thống hỗ trợ truy vết Covid tại Trường Đại học Tây Đô (Module Ứng dụng Website)" đã giải quyết triệt để bài toán quản lý dịch tễ mang tính cục bộ tại môi trường học đường. Bằng việc kết hợp sức mạnh của các công nghệ hiện đại như ReactJS, Vite, NodeJS, Material UI và MongoDB, hệ thống không chỉ cung cấp một công cụ truy vết tiếp xúc nhanh chóng, chính xác với thời gian phản hồi tính bằng giây, mà còn mở ra một mô hình chuyển đổi số hiệu quả, tiết kiệm chi phí cho các trường đại học và tổ chức giáo dục trong thời đại số.