Giới thiệu dự án
Theo thống kê từ Tổ chức Y tế Thế giới (WHO) và Viện Huyết học - Truyền máu Trung ương, mỗi năm Việt Nam cần khoảng 2 triệu đơn vị máu phục vụ cho công tác cấp cứu và điều trị. Trong đó, khối trường đại học và cao đẳng đóng góp hơn 45% tổng lượng máu tiếp nhận từ phong trào hiến máu tình nguyện. Tuy nhiên, quy trình tổ chức hiến máu tại các đơn vị giáo dục đại học, điển hình như Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE), vẫn đối mặt với nhiều bất cập lớn: quy trình đăng ký thủ công trên giấy gây tắc nghẽn cục bộ tại các bàn tiếp đón, thất lạc hồ sơ lịch sử nhóm máu của sinh viên, thiếu kênh truyền thông tức thời khi xảy ra tình trạng thiếu hụt nhóm máu hiếm (như Rh-), và tốn kém nhân lực điều phối.
Đồ án tốt nghiệp "Xây dựng ứng dụng Android thông tin về hiến máu sử dụng công nghệ Java" (tác giả: Lê Văn Tấn Phát, GVHD: ThS. Nguyễn Minh Đạo) được phát triển nhằm giải quyết triệt để các bài toán thực tiễn nêu trên thông qua chuyển đổi số quy trình hiến máu học đường.
+-------------------------------------------------------------------------+
| PROBLEM STATEMENT |
| - 100% thủ tục giấy tờ -> Quá tải giờ cao điểm, mất 15-20p/người |
| - Phân tán dữ liệu nhóm máu -> Không thể huy động khẩn cấp |
| - Thiếu tính đồng bộ kết quả xét nghiệm sau hiến máu |
+-------------------------------------------------------------------------+
|
v
+-------------------------------------------------------------------------+
| SOLUTION APPROACH |
| - Native Android App (Java) kết hợp Google Firebase NoSQL Realtime |
| - Mô hình phân quyền đa tác tử: Guest -> User (Donor) -> Admin |
| - Module tự động hóa: Đăng ký ca, tra cứu điều kiện, push notification |
+-------------------------------------------------------------------------+
Mục tiêu cụ thể của dự án:
- Số hóa toàn diện quy trình đăng ký: Xây dựng ứng dụng di động cho phép sinh viên đăng ký trước ca hiến máu trực tuyến, giảm thời gian chờ đợi tại điểm hiến máu xuống dưới 3 phút/người.
- Quản lý dữ liệu người hiến tập trung: Xây dựng kho lưu trữ thời gian thực (Realtime Database) lưu trữ lịch sử hiến máu, định danh nhóm máu, và kết quả xét nghiệm an toàn sinh học.
- Kênh cảnh báo và tiếp nhận thông tin khẩn cấp: Cung cấp công cụ quản trị (Admin Portal) để ban chỉ đạo đăng tải thông tin kêu gọi hiến máu tức thời, tự động lọc và thông báo tới các tình nguyện viên phù hợp.
- Chuẩn hóa tri thức y tế: Cung cấp module tra cứu tự động về tiêu chuẩn cân nặng, khoảng cách giữa hai lần hiến máu (tối thiểu 84 ngày), và quy trình chuẩn bị thể lực.
Phạm vi và giới hạn: Đề tài tập trung triển khai ứng dụng trên nền tảng Android (Android 5.0 Lollipop đến Android 11.0 R), sử dụng Backend-as-a-Service (BaaS) thông qua Firebase; chưa tích hợp thanh toán tài chính hoặc hệ thống máy quét mã vạch chuyên dụng của bệnh viện tuyến TW.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Khảo sát thực tế các ứng dụng hiến máu và chăm sóc sức khỏe hiện nay cho thấy nhiều ưu điểm nhưng cũng tồn tại các rào cản kỹ thuật đáng kể:
| Tên ứng dụng |
Ưu điểm |
Nhược điểm / Hạn chế |
Khả năng ứng dụng tại trường học |
| App Hiến Máu (Viện Huyết học TW) |
Giao diện hiện đại, tích hợp đặt lịch tại nhiều bệnh viện lớn, kho bài viết sức khỏe phong phú. |
Tốc độ tải tài nguyên ảnh chậm, yêu cầu nhiều bước xác minh phức tạp, không tối ưu cho các đợt hiến máu nội bộ trường học. |
Trung bình (thiếu tính năng phân ca sinh viên). |
| Hiến Máu Quảng Nam |
Danh sách hội viên trực quan, tôn vinh người hiến máu tốt, tìm kiếm theo nhóm máu nhanh. |
Thiếu hệ thống tài khoản cá nhân, không có cơ chế phân quyền bảo mật, giao diện cơ bản. |
Thấp (chưa hỗ trợ quy trình đăng ký khép kín). |
| LIFE_SAVING |
Giao diện thân thiện, kết hợp tính năng quyên góp xã hội và từ thiện. |
Lỗi OAuth đăng nhập Facebook thường xuyên, font chữ nhỏ, bộ lọc tìm kiếm chưa tối ưu. |
Trung bình (trải nghiệm người dùng chưa cao). |
| S4LIFE |
Tích hợp công cụ đo nhịp tim, bài tập thể lực, bản đồ trạm hiến máu liên tục cập nhật. |
Tính năng bản đồ (Map SDK) thường xuyên crash, thuật toán đo sức khỏe thiếu chuẩn xác y khoa. |
Khá (tuy nhiên chi phí bảo trì hệ thống cao). |
Phân loại yêu cầu người dùng theo mô hình MoSCoW:
- Must Have (Bắt buộc): Đăng nhập/Đăng ký tài khoản (Firebase Auth), Đăng ký lịch hiến máu theo khung giờ, Tra cứu lịch sử & nhóm máu cá nhân, Quản lý bài đăng khẩn cấp từ Ban tổ chức.
- Should Have (Nên có): Module kiểm tra điều kiện sức khỏe tự động (BMI, khoảng cách ngày hiến), Đổi mật khẩu, Cập nhật thông tin cá nhân (MSSV, Ngành học, Khoa).
- Could Have (Có thể có): Nhắn tin thông báo nhắc nhở qua push notification, Tích hợp nút gọi điện thoại trực tiếp (
Intent.ACTION_DIAL) tới đơn vị tiếp nhận máu.
- Won't Have (Chưa thực hiện đợt này): Tích hợp hồ sơ bệnh án điện tử quốc gia, Quét mã QR CCCD gắn chip.
+-----------------------------+
| MoSCoW PRIORITIZATION |
+-----------------------------+
|
+-----------------+-------------+-------------+-----------------+
| | | |
v v v v
[ MUST HAVE ] [ SHOULD HAVE ] [ COULD HAVE ] [ WON'T HAVE ]
- Auth & RBAC - Health Pre-check Rules - Push SMS/Alert - National EHR Sync
- Shift Booking - Profile / MSSV Update - Direct Hotline - Chip-based QR Card
- Blood History - Security / Password Dialer - Payment Gateways
Thiết kế hệ thống
Hệ thống được thiết kế theo kiến trúc hướng dịch vụ client-cloud phân tầng rõ rệt:
+--------------------------------------------------------------------------------+
| PRESENTATION LAYER (UI) |
| Activities / Fragments (LoginActivity, MainActivity, RegisterActivity,...) |
| Custom Adapters / ViewHolders / XML Layouts |
+--------------------------------------------------------------------------------+
|
v
+--------------------------------------------------------------------------------+
| BUSINESS LOGIC LAYER (BLL) |
| Validation Engine | Role-Based Access Controller | Donation Schedule Manager |
+--------------------------------------------------------------------------------+
|
v
+--------------------------------------------------------------------------------+
| DATA ACCESS LAYER (DAL) |
| Firebase SDK (FirebaseAuth, FirebaseDatabase, ValueEventListener) |
+--------------------------------------------------------------------------------+
|
v
+--------------------------------------------------------------------------------+
| CLOUD BACKEND (FIREBASE) |
| [Firebase Authentication] [Realtime NoSQL Database] [Cloud Storage] |
+--------------------------------------------------------------------------------+
Technology Stack và phiên bản:
- Ngôn ngữ lập trình: Java (JDK 8 / OpenJDK 1.8).
- Nền tảng phát triển: Android SDK (API Level 21: Android 5.0 Lollipop tối thiểu; API Level 30: Android 11.0 mục tiêu).
- IDE: Android Studio 4.x / Gradle Build System 6.x.
- Hệ quản trị cơ sở dữ liệu: Firebase Realtime Database (NoSQL JSON Data Tree) & Firebase Authentication SDK v20.0.x.
- Thư viện phụ trợ: Google Material Components, Glide/Picasso (load ảnh bài viết), CardView, RecyclerView.
Thiết kế cấu trúc dữ liệu NoSQL (JSON Schema):
Cơ sở dữ liệu được tổ chức dưới dạng NoSQL phân tán, tối ưu hóa tốc độ đọc dữ liệu (Read-heavy):
{
"Users": {
"USER_UID_001": {
"studentId": "16110411",
"fullName": "Lê Văn Tấn Phát",
"email": "16110411@student.hcmute.edu.vn",
"phone": "0901234567",
"bloodType": "O+",
"faculty": "Công nghệ Thông tin",
"lastDonationDate": "2020-10-15",
"role": "User"
}
},
"DangKy": {
"REG_ID_501": {
"userId": "USER_UID_001",
"eventDate": "2021-01-20",
"timeShift": "07:30 - 09:00",
"status": "Approved",
"bloodAmountExpected": "350ml",
"actualBloodAmount": "350ml",
"createdTimestamp": 1610265600
}
},
"Posts": {
"POST_ID_101": {
"title": "Kêu gọi khẩn cấp nhóm máu O đợt 1 năm 2021",
"content": "Bệnh viện Chợ Rẫy cần hỗ trợ 100 đơn vị máu O cho bệnh nhân cấp cứu...",
"authorId": "ADMIN_UID_999",
"contactPhone": "02838968641",
"urgency": "High",
"publishedAt": "2021-01-05"
}
}
}
Methodology
Dự án áp dụng phương pháp phát triển phần mềm theo mô hình Agile/Scrum tinh gọn, chia nhỏ thành các chặng sprint 2 tuần để liên tục thu thập ý kiến đóng góp từ sinh viên và cán bộ Đoàn - Hội ĐH Sư phạm Kỹ thuật TP.HCM:
[ Tuần 1-2 ] ---> Khảo sát 4 app thực tế + Phác thảo Prototype giao diện
[ Tuần 3-5 ] ---> Thiết kế Use Case + Schema Firebase NoSQL + Wireframing
[ Tuần 6-8 ] ---> Code Frontend Native + Tích hợp Firebase Auth Module
[ Tuần 9-12] ---> Xây dựng BLL (Đăng ký ca hiến, Tra cứu, Admin Management)
[ Tuần 13-15] ---> Kiểm thử UAT, Tối ưu hóa hiệu năng, Đóng gói file APK
Đánh giá rủi ro và phương án xử lý:
- Rủi ro mất kết nối Internet: Firebase Offline Persistence được kích hoạt (
setPersistenceEnabled(true)), cho phép cache dữ liệu cục bộ trên SQLite nội bộ của Android và đồng bộ ngược lên Cloud ngay khi có kết nối trở lại.
- Rủi ro rò rỉ dữ liệu y tế: Thiết lập Firebase Security Rules chỉ cho phép User đọc/ghi chính xác node dữ liệu mang UID của họ, riêng quyền Admin được kiểm tra thông qua Token Custom Claims.
Implementation và kết quả
Development process
Cấu trúc mã nguồn Android tuân thủ mô hình phân tách gói (Package-by-Feature) rõ ràng:
com.hcmute.bloodinfo.models: Định nghĩa các POJO (Plain Old Java Objects) như User.java, Post.java, DangKy.java.
com.hcmute.bloodinfo.adapters: Điều khiển hiển thị dữ liệu lên RecyclerView cho danh sách bài viết và lịch sử hiến.
com.hcmute.bloodinfo.activities: Xử lý vòng đời giao diện và tương tác người dùng.
Đoạn mã trích dẫn: Đăng ký hiến máu và kiểm tra điều kiện dữ liệu (Java + Firebase SDK)
public class DangKyHienMauActivity extends AppCompatActivity {
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
private EditText edtNgayHien, edtCaHien, edtLuongMau;
private Button btnXacNhan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dang_ky_hien_mau);
mAuth = FirebaseAuth.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference();
btnXacNhan = findViewById(R.id.btnConfirmDonation);
btnXacNhan.setOnClickListener(v -> handleDonationRegistration());
}
private void handleDonationRegistration() {
FirebaseUser currentUser = mAuth.getCurrentUser();
if (currentUser == null) {
Toast.makeText(this, "Vui lòng đăng nhập lại!", Toast.LENGTH_SHORT).show();
return;
}
String userId = currentUser.getUid();
String eventDate = edtNgayHien.getText().toString().trim();
String shift = edtCaHien.getText().toString().trim();
String amount = edtLuongMau.getText().toString().trim();
if (TextUtils.isEmpty(eventDate) || TextUtils.isEmpty(shift)) {
Toast.makeText(this, "Dữ liệu không được để trống!", Toast.LENGTH_SHORT).show();
return;
}
// Tạo bản ghi đăng ký mới với unique key
String regKey = mDatabase.child("DangKy").push().getKey();
Map<String, Object> registrationData = new HashMap<>();
registrationData.put("regId", regKey);
registrationData.put("userId", userId);
registrationData.put("eventDate", eventDate);
registrationData.put("timeShift", shift);
registrationData.put("bloodAmountExpected", amount);
registrationData.put("status", "Pending");
registrationData.put("timestamp", ServerValue.TIMESTAMP);
if (regKey != null) {
mDatabase.child("DangKy").child(regKey).setValue(registrationData)
.addOnSuccessListener(aVoid -> {
Toast.makeText(DangKyHienMauActivity.this,
"Đăng ký hiến máu thành công!", Toast.LENGTH_LONG).show();
finish();
})
.addOnFailureListener(e -> {
Toast.makeText(DangKyHienMauActivity.this,
"Lỗi cơ sở dữ liệu: " + e.getMessage(), Toast.LENGTH_SHORT).show();
});
}
}
}
Testing và validation
Quá trình kiểm thử phần mềm được thực hiện qua 4 giai đoạn nghiêm ngặt:
- Kiểm thử đơn vị (Unit Testing): Kiểm thử tính hợp lệ của dữ liệu đầu vào (Định dạng Email sinh viên
@student.hcmute.edu.vn, độ dài mật khẩu $\ge 6$ ký tự, kiểm tra chuỗi số điện thoại).
- Kiểm thử tích hợp (Integration Testing): Xác thực đồng bộ dữ liệu hai chiều giữa Android Client và Firebase Authentication / Realtime Database.
- Kiểm thử giao diện & thiết bị (Device Compatibility Testing): Thử nghiệm trên các thiết bị máy thật (Samsung Galaxy A50, Xiaomi Redmi Note 8, Google Pixel 3) và máy ảo Android Emulator chạy từ API 21 đến API 30.
+-------------------------------------------------------------------------+
| TESTING METRICS SUMMARY |
| - Test Cases Thiết kế: 48 ca kiểm thử |
| - Passed: 46 ca (95.83%) |
| - Failed / Bug phụ: 2 ca (4.17% - Đã fix trong Sprint 15) |
| - Thời gian đáp ứng truy vấn trung bình: 220ms |
| - Tỷ lệ Crash app: 0.00% trên môi trường release APK |
+-------------------------------------------------------------------------+
Kết quả đạt được
Hệ thống đã hoàn thiện 100% các tính năng đề ra trong đề cương khóa luận tốt nghiệp:
| Nhóm tính năng |
Chỉ tiêu kế hoạch |
Kết quả thực nghiệm |
Đánh giá |
| Xác thực người dùng |
Đăng ký, đăng nhập, phân quyền Guest/User/Admin. |
Hoàn thành 100%, bảo mật mật khẩu qua Firebase Hash Salt. |
Đạt yêu cầu xuất sắc. |
| Đăng ký đợt hiến máu |
Chọn ngày, phân bổ ca hiến, tự động lưu trữ. |
Tốc độ ghi nhận bản ghi: < 300ms, không trùng lặp mã ca. |
Đạt yêu cầu. |
| Quản trị Admin |
Mở/đóng cổng đăng ký, đăng bài viết khẩn, xem danh sách. |
Admin cập nhật trạng thái theo thời gian thực (Realtime). |
Vượt chỉ tiêu đề ra. |
| Tra cứu tri thức |
Đọc quy trình, điều kiện y tế trước và sau hiến máu. |
Giao diện hiển thị trực quan dạng danh mục infographic. |
Đạt yêu cầu. |
Đổi mới và đóng góp
- Cải tiến hiệu suất vận hành (Efficiency Improvement): Cắt giảm 75% thời gian làm thủ tục tại bàn đăng ký của các đợt hiến máu học đường (từ trung bình 12-15 phút khi làm việc trên giấy/Excel xuống còn dưới 3 phút thao tác quét duyệt thông tin trên app).
- Giải pháp NoSQL Cloud Realtime linh hoạt: Thay thế cơ sở dữ liệu SQL truyền thống bằng cấu trúc Firebase NoSQL, giúp loại bỏ hoàn toàn chi phí thuê server backend vật lý cho trường học, chịu tải tức thời khi có hơn 500 sinh viên đồng thời truy cập.
- Mô hình kết nối 2 chiều giữa Tình nguyện viên và Đơn vị tiếp nhận máu: Khác biệt với các ứng dụng đọc báo y tế thụ động, hệ thống xây dựng cơ chế tương tác trực tiếp: Ban chỉ đạo phát lệnh kêu gọi -> Sinh viên nhận thông báo -> Nhấn nút liên hệ gọi hotline cứu người ngay trong bài viết.
So sánh chỉ số hiệu năng vận hành:
+------------------------------------+-----------------------+-----------------------+
| Tiêu chí so sánh | Phương pháp truyền thống | Ứng dụng BloodInfo Java |
+------------------------------------+-----------------------+-----------------------+
| Thời gian đăng ký / sinh viên | 12 - 15 phút | 2 - 3 phút (Giảm ~75%)|
| Tỷ lệ thất lạc thông tin nhóm máu | 5 - 8% | 0% (Lưu trữ Cloud) |
| Chi phí vận hành máy chủ (Server) | Tốn kém chi phí thuê | 0 VNĐ (Firebase Free) |
| Tốc độ phát thông báo khẩn cấp | 2 - 4 giờ | Tức thời (< 5 giây) |
+------------------------------------+-----------------------+-----------------------+
Ứng dụng thực tế và triển khai
Kịch bản triển khai thực tế (Real-world Use Case):
- Bước 1: Đoàn trường/Hội Chữ thập đỏ phát động chiến dịch "Giọt hồng Sư phạm Kỹ thuật" qua tài khoản Admin, thiết lập giới hạn tiếp nhận 400 ca hiến trong 2 ngày.
- Bước 2: Sinh viên nhận thông báo trên ứng dụng Android, tra cứu điều kiện (cân nặng > 45kg, không mắc bệnh truyền nhiễm), chọn ca hiến phù hợp với lịch học (ví dụ: Ca 1: 07:30 - 09:00).
- Bước 3: Tại ngày hội, ban tổ chức mở danh sách xác nhận nhanh (
Approved), cập nhật thể tích máu thực tế (250ml, 350ml hoặc 450ml).
- Bước 4: Sau đợt hiến, dữ liệu kết quả xét nghiệm được đồng bộ vào hồ sơ cá nhân của sinh viên, sẵn sàng cho việc cấp Giấy chứng nhận hiến máu tình nguyện điện tử.
+-----------------------------------------------------------------------------------+
| QUY TRÌNH VẬN HÀNH THỰC TẾ |
| |
| [Admin Đoàn Trường] --(Mở cổng đợt hiến)--> [Cloud Firebase] |
| | |
| (Đẩy dữ liệu Realtime) |
| v |
| [Sinh viên / Donor] <--(Xem ca & Đăng ký)---- [App Android] |
| | |
| (Tới ngày hội) |
| v |
| [Bàn tiếp đón] ------(Xác nhận & Cập nhật ml)--> [Hồ sơ sức khỏe cá nhân hoàn tất]
+-----------------------------------------------------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại:
- Hệ thống phụ thuộc vào kết nối Internet để cập nhật dữ liệu Realtime lên Firebase.
- Chưa hỗ trợ nền tảng iOS (mới chỉ xây dựng trên nền tảng Android Native Java).
- Chưa tích hợp cơ chế đồng bộ tự động với cơ sở dữ liệu y tế quốc gia.
Hướng phát triển trong tương lai:
- Nâng cấp sang Cross-platform (Flutter / Kotlin Multiplatform): Mở rộng khả năng hỗ trợ đồng thời cả hai hệ điều hành Android và iOS.
- Tích hợp mã QR cá nhân hóa: Tạo mã QR định danh cho từng sinh viên, giúp bàn tiếp nhận chỉ cần quét mã bằng camera trong 1 giây để hoàn tất thủ tục điểm danh.
- Ứng dụng AI/Machine Learning: Xây dựng thuật toán dự báo nhu cầu nhóm máu dự trữ dựa trên lịch sử dữ liệu tiêu thụ của các bệnh viện liên kết.
Đối tượng hưởng lợi
- Sinh viên & Tình nguyện viên: Chủ động sắp xếp thời gian biểu, theo dõi toàn bộ lịch sử hiến máu cá nhân, nắm bắt kiến thức y khoa chính xác, an toàn.
- Lập trình viên & Sinh viên CNTT: Nắm vững mô hình kiến trúc phát triển ứng dụng di động Android Native bằng Java kết hợp với hệ quản trị cơ sở dữ liệu đám mây Firebase Realtime Database.
- Nhà trường & Đơn vị y tế: Tiết kiệm hơn 80% chi phí in ấn văn phòng phẩm, tối ưu hóa nguồn lực nhân sự điều phối, nâng cao tỷ lệ huy động máu thành công trong các tình huống khẩn cấp.
Câu hỏi thường gặp
1. Yêu cầu cấu hình tối thiểu của thiết bị Android để cài đặt ứng dụng là gì?
Ứng dụng tương thích với hệ điều hành Android từ phiên bản 5.0 (API Level 21 - Lollipop) trở lên, dung lượng RAM tối thiểu 1.5GB và bộ nhớ trống tối thiểu 50MB.
2. Dữ liệu y tế và thông tin cá nhân của người hiến có được bảo mật không?
Dữ liệu được bảo vệ qua hệ thống Firebase Authentication kết hợp với Firebase Security Rules. Mật khẩu được mã hóa một chiều; người dùng chỉ có quyền truy xuất hồ sơ cá nhân của chính mình, các thao tác quản trị yêu cầu quyền Admin.
3. Khi không có kết nối mạng Internet, ứng dụng có hoạt động được không?
Nhờ tính năng Disk Persistence của Firebase Realtime Database, người dùng vẫn có thể xem lại thông tin lịch sử cá nhân và các quy trình hiến máu đã được cache trên thiết bị trước đó. Dữ liệu đăng ký mới sẽ tự động gửi lên server ngay khi kết nối Internet được khôi phục.
4. Quản trị viên quản lý danh sách đăng ký như thế nào?
Admin được cấp giao diện riêng với quyền hạn: Mở/đóng cổng đăng ký của từng đợt, xem thống kê số lượng sinh viên theo từng khung giờ, cập nhật kết quả hiến thực tế, và đăng bài thông báo cần máu khẩn cấp.
5. Chi phí duy trì hạ tầng cơ sở dữ liệu của ứng dụng là bao nhiêu?
Với quy mô một trường đại học (dưới 50.000 tài khoản sinh viên và 10.000 lượt hiến máu/năm), toàn bộ lưu lượng dữ liệu và lượt đọc/ghi hoàn toàn nằm trong gói miễn phí (Firebase Spark Plan), chi phí duy trì hạ tầng cơ sở dữ liệu là 0 VNĐ/tháng.
Kết luận
Đề tài tốt nghiệp "Xây dựng ứng dụng Android thông tin về hiến máu sử dụng Java" của sinh viên Lê Văn Tấn Phát dưới sự hướng dẫn của ThS. Nguyễn Minh Đạo đã giải quyết xuất sắc bài toán số hóa quy trình hiến máu nhân đạo trong môi trường giáo dục đại học. Dự án kết hợp hài hòa giữa nền tảng kỹ thuật vững chắc (Android Native, Java, Google Firebase NoSQL) và tính ứng dụng nhân văn sâu sắc. Đây là tài liệu tham khảo giá trị cho các kỹ sư phần mềm muốn nghiên cứu kiến trúc ứng dụng di động kết nối cơ sở dữ liệu đám mây thời gian thực.