Giới thiệu dự án
Sự bùng phát của đại dịch COVID-19 cùng các bệnh truyền nhiễm nguy hiểm trong thế kỷ 21 đã đặt các hệ thống y tế công cộng toàn cầu trước những thách thức chưa từng có. Theo thống kê dịch tễ học, tính đến giữa năm 2020, virus SARS-CoV-2 đã lan rộng ra hơn 213 quốc gia và vùng lãnh thổ, ghi nhận trên 11 triệu ca nhiễm và hơn 532 nghìn ca tử vong chỉ sau 6 tháng bùng phát. Tốc độ lây lan nhanh chóng phần lớn bắt nguồn từ việc thiếu hụt các công cụ công nghệ thông tin hỗ trợ giám sát dịch tễ theo thời gian thực, dẫn đến việc đánh giá sai mức độ rủi ro tại các điểm nóng và chậm trễ trong phân luồng y tế.
Tại Việt Nam, mặc dù nhiều giải pháp số đã được triển khai, dữ liệu dịch tễ cá nhân, nhật ký di chuyển và thông tin tài nguyên y tế cục bộ vẫn phân mảnh. Người dân thiếu một kênh tương tác hai chiều vừa cung cấp thông tin cảnh báo tự động khi tiếp cận khu vực có nguy cơ cao, vừa cho phép chủ động khai báo sức khỏe. Trong khi đó, các nhà quản lý địa phương gặp khó khăn trong việc tổng hợp dữ liệu khảo sát triệu chứng tức thời để phân bổ vật tư và khoanh vùng dập dịch.
Đồ án tốt nghiệp "Xây dựng ứng dụng thu thập thông tin và cảnh báo dịch bệnh" của kỹ sư Nguyễn Cao Luyện (Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, dưới sự hướng dẫn của ThS. Lê Thanh Trọng) tập trung giải quyết triệt để các bài toán thực tiễn nêu trên.
+-------------------------------------------------------------------------+
| HỆ THỐNG GIÁM SÁT & CẢNH BÁO DỊCH BỆNH |
+------------------------------------+------------------------------------+
| DÀNH CHO NGƯỜI DÂN | DÀNH CHO QUẢN TRỊ VIÊN |
+------------------------------------+------------------------------------+
| - Xem số liệu dịch bệnh Realtime | - Quản lý hồ sơ ca bệnh (F0/F1/F2) |
| - Bản đồ trực quan hóa ca nhiễm | - Giám sát lịch trình di chuyển |
| - Kê khai y tế & khảo sát dịch tễ | - Phát hành cảnh báo theo Geofence |
| - Cảnh báo tiếp xúc & vùng dịch | - Tạo & phân tích mẫu khảo sát |
+------------------------------------+------------------------------------+
Mục tiêu dự án
- Tổng hợp dữ liệu dịch bệnh thời gian thực: Cung cấp số liệu thống kê ca nhiễm, bình phục, tử vong tại Việt Nam và quốc tế thông qua giao diện biểu đồ trực quan.
- Khai báo y tế và khảo sát dịch tễ động: Xây dựng module cho phép quản trị viên cấu hình linh hoạt các biểu mẫu khảo sát triệu chứng, trang thiết bị y tế và tiếp nhận phản hồi từ cộng đồng.
- Giám sát lịch trình và cảnh báo nguy cơ bằng GPS: Tích hợp công nghệ bản đồ số (Mapbox/Google Maps) nhằm trực quan hóa các ca bệnh và tự động phát cảnh báo khi người dùng di chuyển vào vùng cách ly hoặc tiếp xúc gần với nguồn lây.
- Hệ thống phân quyền quản lý đa cấp: Cung cấp công cụ quản trị dành cho ban chỉ đạo y tế cấp phường/xã, quận/huyện để theo dõi, cập nhật trạng thái bệnh nhân (F0, F1, F2, đã hồi phục).
Phạm vi và kết quả đo lường dự kiến
- Phạm vi ứng dụng: Vận hành trên nền tảng di động Android (hỗ trợ từ Android 5.0 Lollipop đến Android 11+), tối ưu hóa trải nghiệm cho cả người dùng phổ thông và cán bộ quản lý y tế.
- Chỉ số hiệu năng (KPIs):
- Thời gian đồng bộ dữ liệu dịch tễ thời gian thực: $\le 500\text{ ms}$.
- Độ trễ xử lý cảnh báo tiếp xúc Geofencing: $\le 1.5\text{ s}$ khi thiết bị cập nhật toạ độ.
- Tỷ lệ hoạt động ổn định (Crash-free rate): $\ge 99.2%$ trên các dòng thiết bị di động thử nghiệm.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Tại thời điểm bùng phát dịch, một số giải pháp công nghệ đã được đưa vào sử dụng nhưng vẫn bộc lộ các hạn chế kỹ thuật và trải nghiệm người dùng:
| Tiêu chí so sánh |
Sức khỏe Việt Nam (Viettel) |
NCOVI (VNPT) |
Bluezone (Cục Tin học hóa) |
Yahoo Disaster Alert (Nhật Bản) |
Hệ thống Đề xuất |
| Công nghệ định vị |
Không hỗ trợ |
Định vị tĩnh khi khai báo |
Bluetooth Low Energy (BLE) |
GPS / Trạm phát sóng |
GPS + Geofencing + Mapbox |
| Trực quan hóa bản đồ |
Dạng danh sách text |
Bản đồ điểm đơn giản |
Không có bản đồ |
Bản đồ thảm họa đa tầng |
Bản đồ ca bệnh & lộ trình ca nhiễm |
| Hệ thống khảo sát |
Form tĩnh cố định |
Form tĩnh cố định |
Không có |
Cảnh báo 1 chiều |
Tạo form khảo sát động theo đợt |
| Tương tác 2 chiều |
Chatbot tự động |
Gửi phản ánh 1 chiều |
Ghi nhận ID tiếp xúc |
Cảnh báo từ chính quyền |
Phân quyền Admin - Cán bộ - Dân |
| Khả năng mở rộng |
Chuyên biệt COVID-19 |
Chuyên biệt COVID-19 |
Chuyên biệt truy vết tiếp xúc |
Đa thiên tai, dịch bệnh |
Mô hình hóa cho đa dạng dịch bệnh |
Ma trận yêu cầu hệ thống theo mô hình MoSCoW
- Must have: Đăng ký/đăng nhập bằng xác thực định danh (CMND/Số điện thoại), hiển thị biểu đồ ca nhiễm thời gian thực, module khai báo y tế tự nguyện, bản đồ hiển thị vùng cách ly, quản trị hồ sơ ca bệnh.
- Should have: Hệ thống phát hiện giao cắt lộ trình GPS giữa người dùng và F0/F1, công cụ tạo câu hỏi khảo sát động (dynamic survey builder), thông báo đẩy (push notification) phân vùng.
- Could have: Chế độ lưu cache dữ liệu bản đồ offline, thống kê năng lực trang thiết bị y tế cục bộ.
- Won't have (ở giai đoạn này): Tự động bắt sóng BLE diện hẹp dưới 2 mét (tập trung tối ưu độ phủ GPS diện rộng).
Thiết kế hệ thống
Hệ thống được thiết kế theo kiến trúc Client-Server hiện đại, kết hợp mô hình Model-View-ViewModel (MVVM) trên ứng dụng di động Android và dịch vụ đám mây thời gian thực Firebase Realtime Backend.
[ External Data Sources (Apify API / Crawler) ]
│
▼
[ Cloud Backend (Firebase Auth / Realtime Database / Storage) ]
│ ▲
HTTPS / WSS │ │ Sync / Rules Engine
▼ │
[ Android Client Architecture (MVVM) ]
├── View Layer (Activities, Fragments, Custom Views, Mapbox SDK)
├── ViewModel Layer (LiveData, StateFlow, Coroutine/Rx Handlers)
└── Model / Repository Layer (Local Cache, Firebase Data Source, Location Service)
Technology Stack và phiên bản
- Mobile Platform: Android SDK (Target SDK 30, Minimum SDK 21).
- Ngôn ngữ lập trình: Java (OpenJDK 11 / Java 8 compatibility).
- Kiến trúc ứng dụng: Android Jetpack Components (ViewModel v2.3.1, LiveData v2.3.1, Navigation Component).
- Cơ sở dữ liệu & Xác thực: Firebase Realtime Database v20.0.1, Firebase Authentication v21.0.1, Firebase Cloud Storage.
- Bản đồ & Định vị: Google Play Services Location v18.0.0 (FusedLocationProviderClient), Mapbox Maps SDK for Android v9.2.0.
- Công cụ thu thập dữ liệu tự động: Apify Crawler API v2, Gson v2.8.6.
- Môi trường phát triển & Thiết kế: Android Studio 4.2+, Figma, Microsoft Visio.
Thiết kế cơ sở dữ liệu (Database Schema)
Hệ thống sử dụng cơ sở dữ liệu NoSQL JSON Tree của Firebase Realtime Database nhằm tối ưu hóa khả năng đọc/ghi và lắng nghe (listen) dữ liệu thời gian thực:
| Tên Node / Bảng |
Trường dữ liệu chính (Fields) |
Kiểu dữ liệu |
Chức năng nghiệp vụ |
Accounts |
uid, email, displayName, phone, idCard, role, address, district, province |
String, Integer |
Quản lý thông tin định danh và phân quyền tài khoản |
Cases |
caseId, idCard, patientName, infectionLevel, startDate, endDate, status, lat, lng |
String, Double, Long |
Quản lý lịch sử ca bệnh (F0/F1/F2, điều trị, hồi phục) |
RouteData |
routeId, uid, timestamp, latitude, longitude, address, district |
String, Double, Long |
Lưu trữ nhật ký di chuyển phục vụ đối soát dịch tễ |
Surveys |
surveyId, title, category, createdAt, status, questions (Array) |
String, Object, Long |
Lưu trữ cấu trúc các phiếu khảo sát sức khỏe động |
Answers |
answerId, surveyId, uid, responses (Map), submittedAt, attachments |
String, Object, Long |
Lưu kết quả trả lời khảo sát và khai báo y tế |
Warnings |
warningId, title, content, level, targetArea, createdAt, authorId |
String, Integer, Long |
Lưu trữ các bản tin cảnh báo khẩn cấp theo khu vực |
PublicData |
vietnamStats, globalStats, infected, recovered, deaths, lastUpdated |
Object, Long |
Lưu số liệu dịch tễ tổng hợp thu thập từ Apify |
Phương pháp phát triển (Methodology)
Dự án áp dụng quy trình phát triển phần mềm linh hoạt Agile (Scrum) chia thành các vòng lặp (Sprint) 2 tuần với lộ trình nghiêm ngặt:
[ Sprint 1: Khảo sát & Phân tích ] ──> [ Sprint 2: Thiết kế UI/DB ] ──> [ Sprint 3: Code Module Dữ liệu & Bản đồ ] ──> [ Sprint 4: Geofencing & Admin ] ──> [ Sprint 5: Testing & Release ]
- Sprint 1 (16/09 – 27/09): Khảo sát hiện trạng, phân tích 29 use cases, lập Product Backlog.
- Sprint 2 (28/09 – 18/10): Thiết kế wireframe/UI trên Figma (16 màn hình chính), đặc tả JSON schema CSDL.
- Sprint 3 (19/10 – 17/11): Hiện thực kiến trúc MVVM, tích hợp Firebase Auth, xây dựng dashboard thống kê số liệu và module bản đồ.
- Sprint 4 (18/11 – 15/12): Hiện thực module lưu trữ lộ trình GPS, thuật toán cảnh báo vùng dịch, dynamic survey engine.
- Sprint 5 (16/12 – 02/01): Kiểm thử hộp đen, kiểm thử hiệu năng tải, tối ưu bộ nhớ và hoàn thiện tài liệu kỹ thuật.
Implementation và kết quả
Quy trình phát triển và thuật toán cốt lõi
Kiến trúc phần mềm phân tách rõ ràng giữa tầng hiển thị và tầng xử lý nghiệp vụ thông qua cơ chế ViewModel và LiveData. Mô hình này ngăn ngừa rò rỉ bộ nhớ (memory leaks) khi xoay màn hình điện thoại và duy trì trạng thái dữ liệu xuyên suốt vòng đời của Activity/Fragment.
Thuật toán tính khoảng cách địa lý cảnh báo nguy cơ (Haversine Formula)
Để phát hiện người dùng có đang nằm trong bán kính lây nhiễm của ổ dịch hoặc tiếp cận gần một ca bệnh $F0$, hệ thống triển khai giải thuật Haversine trên client để tính toán khoảng cách cung lớn giữa 2 điểm toạ độ địa lý:
public class GeoSpatialUtils {
private static final double EARTH_RADIUS_METERS = 6371000.0;
/**
* Tính toán khoảng cách giữa tọa độ người dùng và tâm dịch bệnh
* @return Khoảng cách tính bằng mét (meters)
*/
public static double calculateDistanceInMeters(double userLat, double userLng,
double targetLat, double targetLng) {
double dLat = Math.toRadians(targetLat - userLat);
double dLng = Math.toRadians(targetLng - userLng);
double a = Math.sin(dLat / 2.0) * Math.sin(dLat / 2.0) +
Math.cos(Math.toRadians(userLat)) * Math.cos(Math.toRadians(targetLat)) *
Math.sin(dLng / 2.0) * Math.sin(dLng / 2.0);
double c = 2.0 * Math.atan2(Math.sqrt(a), Math.sqrt(1.0 - a));
return EARTH_RADIUS_METERS * c;
}
/**
* Kiểm tra và kích hoạt cảnh báo nếu vi phạm vùng cách ly/ổ dịch
*/
public static boolean isWithinDangerZone(double userLat, double userLng,
double hotspotLat, double hotspotLng,
double safetyRadiusMeters) {
double distance = calculateDistanceInMeters(userLat, userLng, hotspotLat, hotspotLng);
return distance <= safetyRadiusMeters;
}
}
Độ phức tạp thuật toán: Thời gian tính toán $\mathcal{O}(1)$ cho mỗi cặp tọa độ, cho phép ứng dụng quét danh sách hàng trăm điểm nóng dịch bệnh trong $\le 5\text{ ms}$ mà không gây giật lag giao diện (UI thread).
Tầng dữ liệu ViewModel và lắng nghe Firebase Realtime
public class DiseaseStatisticsViewModel extends ViewModel {
private final DiseaseRepository repository;
private final MutableLiveData<PublicDataModel> statisticsLiveData = new MutableLiveData<>();
private final MutableLiveData<String> errorMessage = new MutableLiveData<>();
public DiseaseStatisticsViewModel() {
this.repository = new DiseaseRepository();
fetchRealtimeStatistics();
}
public LiveData<PublicDataModel> getStatistics() {
return statisticsLiveData;
}
private void fetchRealtimeStatistics() {
repository.getRealtimeDiseaseData(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
PublicDataModel data = snapshot.getValue(PublicDataModel.class);
if (data != null) {
statisticsLiveData.postValue(data);
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
errorMessage.postValue(error.getMessage());
}
});
}
}
Kiểm thử và đánh giá chất lượng (Testing & Validation)
Hệ thống đã trải qua các đợt kiểm thử nghiêm ngặt bao gồm Unit Testing, Integration Testing và User Acceptance Testing (UAT):
+-------------------------------------------------------------------------+
| KẾT QUẢ KIỂM THỬ HỆ THỐNG (TEST MATRIX) |
+----------------------+------------+-----------+-------------+-----------+
| Phân loại kiểm thử | Tổng test | Đạt (Pass)| Lỗi (Fail) | Coverage |
+----------------------+------------+-----------+-------------+-----------+
| Module Authentication| 12 cases | 12 cases | 0 | 100% |
| Module Data & Sync | 18 cases | 18 cases | 0 | 94.5% |
| Module GPS & Map | 15 cases | 14 cases | 1 (Fixed) | 91.0% |
| Module Survey Engine | 14 cases | 14 cases | 0 | 96.2% |
+----------------------+------------+-----------+-------------+-----------+
- Độ trễ truy vấn (Query Latency): Đo lường qua 500 request thực nghiệm, thời gian phản hồi trung bình của API lấy danh sách ca bệnh là $215\text{ ms}$, biểu đồ số liệu toàn quốc đạt $180\text{ ms}$.
- Độ chính xác định vị & Cảnh báo: Thử nghiệm di chuyển thực địa qua 10 vùng khoanh vùng giả lập tại TP.HCM, hệ thống kích hoạt cảnh báo chính xác $100%$ khi khoảng cách thực tế nhỏ hơn bán kính an toàn ($R = 50\text{ m}$).
- Mức tiêu hao tài nguyên: Ứng dụng chiếm dụng trung bình $68\text{ MB}$ RAM và tiêu hao $\approx 2.1%$ pin/giờ khi bật chế độ cập nhật vị trí định kỳ 5 phút/lần.
Đổi mới và đóng góp
- Tích hợp kép: Khai báo dịch tễ động và Giám sát không gian (Spatial-Epidemiological Integration): Khác biệt hoàn toàn với NCOVI (chỉ khai báo form tĩnh) hay Bluezone (chỉ ghi nhận ID tiếp xúc gần qua Bluetooth), đồ án kết hợp dữ liệu lộ trình địa lý với hệ thống khảo sát y tế động, cho phép nhà quản lý nhìn thấy bức tranh dịch tễ học không gian (Spatial Epidemiology) tức thời.
- Khảo sát cấu hình linh hoạt (Dynamic Form Generation): Cho phép cơ quan chức năng tạo mới các bộ câu hỏi khảo sát (về triệu chứng mới, nhu cầu oxy, khẩu trang, trang thiết bị y tế) từ trang quản trị và đồng bộ lập tức xuống ứng dụng người dân mà không cần phát hành bản cập nhật ứng dụng mới trên Google Play.
- Cơ chế khoanh vùng nguy cơ đa cấp: Hỗ trợ phân quyền quản trị theo cấp hành chính (Quận/Huyện, Phường/Xã), giúp các cấp quản lý trực tiếp cập nhật trạng thái ca bệnh và phát cảnh báo cục bộ chính xác tới cư dân thuộc địa bàn quản lý.
Ứng dụng thực tế và triển khai
Kịch bản vận hành thực tế
+───────────────────+ Khai báo triệu chứng +────────────────────+
| NGƯỜI DÂN | ──────────────────────────────> | HỆ THỐNG TRUNG |
| (Mobile App User) | <────────────────────────────── | TÂM (UIT) |
+───────────────────+ Cảnh báo vùng nguy cơ +────────────────────+
│
Tổng hợp dữ liệu │ Phát cảnh báo
& phân tích dịch tễ ▼ & quản lý ca bệnh
+────────────────────+
| CÁN BỘ Y TẾ / BQL |
| (Admin Dashboard) |
+────────────────────+
- Kịch bản 1: Giám sát tại khu công nghiệp/trường học: Cán bộ y tế tạo biểu mẫu khảo sát sức khỏe đầu giờ. Toàn bộ sinh viên/công nhân quét mã khai báo. Hệ thống lọc ra danh sách các trường hợp có biểu hiện sốt/ho để xử lý y tế tại chỗ.
- Kịch bản 2: Cảnh báo vùng phong tỏa: Khi một khu phố có ca $F0$, quản trị viên cập nhật tọa độ tâm dịch và bán kính cách ly ($200\text{ m}$). Mọi người dùng khi di chuyển gần khu vực này sẽ nhận được cảnh báo rung/âm thanh để chủ động đổi lộ trình.
Hướng dẫn cài đặt và Triển khai
Yêu cầu hệ thống
- Thiết bị người dùng: Android 5.0 trở lên, bật quyền Location (GPS) và Internet.
- Hệ thống Server: Firebase Project kích hoạt Authentication (Email/Password, Phone), Realtime Database, và Storage.
Quy trình cài đặt môi trường phát triển
# 1. Clone mã nguồn đồ án từ repository
git clone https://github.com/uit-thesis/disease-warning-app.git
# 2. Mở dự án trong Android Studio
cd disease-warning-app
open -a "Android Studio" .
# 3. Cấu hình Firebase
# Tải file google-services.json từ Firebase Console và đặt vào thư mục /app
# 4. Build và cài đặt file APK lên thiết bị thử nghiệm
./gradlew assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Tiêu hao năng lượng GPS: Việc bật định vị liên tục dưới nền có thể làm giảm thời lượng pin trên các dòng máy Android đời cũ.
- Môi trường kết nối: Mặc dù dữ liệu tĩnh có thể đọc qua cache, việc phát cảnh báo tức thời vẫn yêu cầu thiết bị có kết nối mạng Internet (3G/4G/Wi-Fi).
- Nền tảng đơn lẻ: Hệ thống hiện mới triển khai trọn vẹn trên hệ điều hành Android, chưa có bản build tương đương cho iOS.
Hướng phát triển trong tương lai
- Ứng dụng công nghệ BLE Hybrid: Kết hợp định vị GPS diện rộng với công nghệ Bluetooth Low Energy để phát hiện tiếp xúc siêu gần ($< 2\text{ m}$) trong không gian kín (tòa nhà, thang máy).
- Tích hợp mô hình AI dự báo ổ dịch: Áp dụng các giải thuật học máy (Machine Learning) và mô hình chuỗi thời gian (LSTM/ARIMA) để dự báo xu hướng lây lan của dịch bệnh dựa trên mật độ di chuyển và dữ liệu khảo sát triệu chứng.
- Phát triển đa nền tảng: Sử dụng Flutter hoặc React Native để đồng bộ hóa tính năng trên hệ điều hành iOS và Web Dashboard.
Đối tượng hưởng lợi
- Sinh viên & Học viên chuyên ngành CNTT: Cung cấp tài liệu tham khảo hoàn chỉnh về cách xây dựng ứng dụng Android theo chuẩn kiến trúc MVVM kết hợp Firebase NoSQL thời gian thực và xử lý dữ liệu địa lý GPS.
- Kỹ sư phát triển phần mềm di động: Học hỏi các giải pháp xử lý bản đồ số, tối ưu hóa truy vấn tọa độ và xây dựng dynamic form builder linh hoạt.
- Cơ quan quản lý & Đơn vị y tế: Sở hữu giải pháp công nghệ mã nguồn mở giúp quản lý, thống kê và liên lạc với người dân trong các tình huống khẩn cấp về dịch bệnh hoặc thiên tai.
- Cộng đồng người dân: Nhận được công cụ hữu ích, minh bạch để bảo vệ sức khỏe bản thân, nắm bắt thông tin chính thống và nhận cảnh báo an toàn kịp thời.
Câu hỏi thường gặp
1. Yêu cầu phần cứng và phiên bản hệ điều hành tối thiểu để ứng dụng vận hành mượt mà là gì?
Ứng dụng yêu cầu thiết bị chạy hệ điều hành Android 5.0 (API Level 21) trở lên, dung lượng RAM tối thiểu 1.5 GB, bộ nhớ trống khả dụng từ 100 MB và có chip định vị GPS hoạt động bình thường.
2. Dữ liệu vị trí của người dùng có được bảo mật không và có vi phạm quyền riêng tư?
Toàn bộ dữ liệu vị trí và thông tin định danh cá nhân được mã hóa qua giao thức HTTPS/WSS khi truyền tải và được phân quyền truy cập chặt chẽ thông qua Firebase Security Rules. Chỉ các cơ quan y tế có thẩm quyền mới được phép đối soát lộ trình khi phát hiện nguy cơ tiếp xúc với ca nhiễm.
3. Hệ thống có khả năng mở rộng (scalability) phục vụ số lượng lớn người dùng cùng lúc không?
Nhờ sử dụng hạ tầng Firebase Realtime Database với khả năng tự động mở rộng theo tải (auto-scaling) và kiến trúc NoSQL phân tán, hệ thống có thể đáp ứng đồng thời hàng chục nghìn kết nối mà vẫn duy trì độ trễ dưới $500\text{ ms}$.
4. Ứng dụng có thể áp dụng cho các loại dịch bệnh hoặc thảm họa khác ngoài COVID-19 không?
Hoàn toàn có thể. Nhờ thiết kế module khảo sát động (Dynamic Survey) và cảnh báo Geofencing linh hoạt, quản trị viên có thể tùy biến cấu hình hệ thống để theo dõi dịch sốt xuất huyết, cúm mùa, ô nhiễm môi trường hoặc cảnh báo thiên tai, động đất, ngập lụt cục bộ.
5. Chi phí vận hành và bảo trì hệ thống ước tính như thế nào?
Trong giai đoạn đầu với quy mô thử nghiệm dưới 100.000 người dùng hoạt động hàng tháng (MAU), hệ thống có thể tận dụng gói miễn phí hoặc gói Pay-as-you-go của Firebase với chi phí máy chủ chỉ dao động từ $20 - $50 USD/tháng, mang lại hiệu quả đầu tư (ROI) rất cao cho các đơn vị y tế công cộng.
Kết luận
Khóa luận tốt nghiệp "Xây dựng ứng dụng thu thập thông tin và cảnh báo dịch bệnh" của tác giả Nguyễn Cao Luyện đã hoàn thành xuất sắc các mục tiêu nghiên cứu và kỹ thuật đề ra. Bằng việc kết hợp nhuần nhuyễn giữa kiến trúc phần mềm di động hiện đại (MVVM, Android Jetpack, LiveData), cơ sở dữ liệu thời gian thực Firebase và hệ thống xử lý địa không gian Geofencing, đề tài đã mang đến một giải pháp công nghệ toàn diện phục vụ công tác phòng chống dịch bệnh trong cộng đồng.
Công trình không chỉ chứng minh tính khả thi cao về mặt kỹ thuật mà còn mở ra hướng tiếp cận mới trong việc ứng dụng công nghệ thông tin vào quản trị y tế công cộng thông minh và bền vững.