Giới thiệu dự án
Trong kỷ nguyên chuyển đổi số giáo dục (EdTech), việc quản lý hồ sơ học tập và dữ liệu sinh viên đòi hỏi các hệ thống có khả năng truy xuất tức thì, tính toàn vẹn cao và khả năng mở rộng linh hoạt. Theo các khảo sát công nghệ giáo dục, hơn 68% các hệ thống quản lý thông tin đào tạo truyền thống dựa trên kiến trúc máy chủ nguyên khối (monolithic RDBMS) gặp tình trạng quá tải cục bộ vào các đợt cao điểm nhập điểm và cập nhật chứng chỉ, đồng thời thiếu khả năng tương thích thời gian thực trên thiết bị di động.
Đề tài "Tìm hiểu Google Firebase Firestore - Phát triển ứng dụng quản lý thông tin sinh viên" được thực hiện bởi nhóm nghiên cứu tại Trường Đại học Tôn Đức Thắng (Khoa Công nghệ Thông tin) dưới sự hướng dẫn của Thầy Võ Văn Thành. Dự án tập trung giải quyết triệt để bài toán đồng bộ hóa và quản trị dữ liệu học vụ trên nền tảng di động thông qua công nghệ cơ sở dữ liệu phi quan hệ (NoSQL) phân tán đám mây.
Vấn đề thực tiễn và điểm nghẽn kỹ thuật (Pain Points)
- Chi phí hạ tầng và vận hành lớn: Việc thiết lập hệ thống máy chủ cơ sở dữ liệu truyền thống (MySQL, PostgreSQL) đòi hỏi cấu hình máy chủ, thiết lập API trung gian (REST/gRPC), bảo trì định kỳ và quản lý tải phức tạp.
- Độ trễ đồng bộ dữ liệu cao: Các ứng dụng di động thông thường phải sử dụng cơ chế kéo dữ liệu định kỳ (Polling) hoặc cấu hình WebSocket thủ công, dẫn đến tiêu tốn băng thông, tiêu hao pin thiết bị và gây sai lệch trạng thái hiển thị dữ liệu giữa các người dùng.
- Gián đoạn khi mất kết nối: Đa số các ứng dụng quản lý giáo dục truyền thống ngừng hoạt động khi thiết bị di động rơi vào vùng sóng yếu hoặc mất mạng Internet, gây gián đoạn quy trình nghiệp vụ của cán bộ quản lý.
+-----------------------------------------------------------------------+
| MỤC TIÊU DỰ ÁN |
+-----------------------------------------------------------------------+
| 1. Nghiên cứu toàn diện kiến trúc NoSQL Document-Collection Firestore |
| 2. Thiết kế & phát triển ứng dụng di động Android Native chuẩn MVVM |
| 3. Hiện thực hóa các nghiệp vụ quản lý sinh viên & chứng chỉ realtime|
| 4. Xây dựng cơ chế bảo mật phân quyền với Firestore Security Rules |
| 5. Tối ưu hóa bộ nhớ đệm Offline-First Cache đạt độ trễ < 50ms |
+-----------------------------------------------------------------------+
Phương pháp tiếp cận và kết quả kỳ vọng
Giải pháp áp dụng mô hình cơ sở dữ liệu tài liệu (Document-based NoSQL) từ nền tảng đám mây Google Firebase Firestore kết hợp trực tiếp với ứng dụng Android Native. Hệ thống loại bỏ lớp Backend trung gian truyền thống bằng cách sử dụng Firebase Client SDK để thao tác dữ liệu trực tiếp dưới sự kiểm soát chặt chẽ của hệ thống quy tắc bảo mật (Security Rules).
Chỉ số đo lường kỳ vọng:
- Thời gian cập nhật trạng thái dữ liệu đa thiết bị (Realtime Latency): $\le 100\text{ ms}$.
- Khả năng đọc/ghi khi ngoại tuyến (Offline Availability): $100%$ dữ liệu được lưu đệm cục bộ và đồng bộ tự động ngay khi có kết nối trở lại.
- Tự động hóa sinh mã định danh sinh viên theo định dạng chuẩn (VD:
52300xxx).
Phạm vi và giới hạn: Dự án giới hạn trong phạm vi quản lý hồ sơ sinh viên, thông tin lớp học, điểm số, cây danh mục chứng chỉ đi kèm và quản lý tài khoản người dùng thao tác trên hệ điều hành Android.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
RDBMS truyền thống (MySQL + REST API) |
Firebase Realtime Database |
Google Cloud Firestore (Giải pháp chọn) |
| Mô hình dữ liệu |
Quan hệ (Bảng, Khóa ngoại, JOIN) |
Cây JSON đơn khối phân cấp |
Tài liệu (Document) & Bộ sưu tập (Collection) |
| Khả năng truy vấn |
Rất mạnh, hỗ trợ lọc phức tạp |
Rất hạn chế, không hỗ trợ lọc đa trường |
Mạnh mẽ, hỗ trợ Indexing, Subcollection, Chaining query |
| Đồng bộ thời gian thực |
Phức tạp (Cần setup WebSocket/SSE) |
Thời gian thực nguyên bản |
Thời gian thực tối ưu dựa trên Snapshot Listeners |
| Hỗ trợ Offline |
Thủ công (SQLite/Room + Sync Worker) |
Hỗ trợ cơ bản trên thiết bị |
Hỗ trợ ngoại tuyến tự động đa nền tảng với Cache Engine |
| Khả năng mở rộng |
Mở rộng theo chiều dọc (Vertical Scaling) |
Giới hạn ~200.000 kết nối đồng thời |
Tự động mở rộng phân tán đa vùng (Global Auto-scaling) |
Ma trận ưu tiên yêu cầu người dùng (MoSCoW)
- Must-have (Bắt buộc): Đăng nhập/xác thực người dùng; Thao tác CRUD sinh viên (Tên, Mã SV, Giới tính, Lớp, Điểm); Quản lý danh mục chứng chỉ theo dạng Subcollection (
students/{id}/certificates); Đồng bộ thay đổi tức thì lên UI.
- Should-have (Nên có): Bộ lọc danh sách sinh viên đa tiêu chí (Lọc theo Giới tính Male/Female, theo Lớp); Tự động tạo mã sinh viên hệ thống; Chế độ lưu đệm dữ liệu ngoại tuyến (Offline Persistence).
- Could-have (Có thể có): Quản lý tải lên hình ảnh đại diện người dùng và sinh viên từ bộ nhớ thiết bị; Xóa hàng loạt dữ liệu (Batch Delete/Delete All).
- Won't-have (Chưa triển khai): Tích hợp cổng thanh toán học phí; Xuất hóa đơn điện tử tự động.
Thiết kế hệ thống
Kiến trúc hệ thống được thiết kế theo mô hình Client-to-Cloud Service:
+-------------------------------------------------------------------+
| ANDROID CLIENT APP |
| +--------------------+ +------------------+ +---------------+ |
| | Presentation Layer| | Business Logic | | Local Cache | |
| | (Activities/Views)| | (State/Handlers) | | (LRU Engine) | |
| +--------------------+ +------------------+ +---------------+ |
+---------------------------------+---------------------------------+
| (Firebase Android SDK v24.10.0)
v
+-------------------------------------------------------------------+
| GOOGLE FIREBASE CLOUD |
| +-------------------------------------------------------------+ |
| | Firebase Authentication (Token Validation & Session State) | |
| +-------------------------------------------------------------+ |
| | Firestore Security Rules Engine (Rule-based Access Control) | |
| +-------------------------------------------------------------+ |
| | Cloud Firestore Engine (NoSQL Storage & Snapshot Engine) | |
| | - Top Collection: `users` | |
| | - Top Collection: `students` | |
| | `-- Subcollection: `certificates` | |
| +-------------------------------------------------------------+ |
+-------------------------------------------------------------------+
Technology Stack và phiên bản cụ thể
- Ngôn ngữ phát triển: Kotlin v1.9.10 / Java 17
- Hệ điều hành mục tiêu: Android 7.0 (API Level 24) trở lên; Target SDK: Android 14 (API Level 34)
- Cơ sở dữ liệu đám mây: Google Firebase Firestore SDK v24.10.0
- Dịch vụ xác thực: Firebase Authentication SDK v22.3.0
- Xử lý ảnh & Giao diện: Android Material Components v1.11.0, Glide v4.16.0
Cấu trúc Schema cơ sở dữ liệu Firestore
Mô hình dữ liệu dạng tài liệu và tài liệu con (Subcollection) được chuẩn hóa như sau:
// Collection: users
{
"userId": "usr_882194a",
"email": "admin@tdtu.edu.vn",
"displayName": "Trieu Vi Nguyen",
"role": "ADMIN",
"avatarUrl": "https://storage.googleapis.com/.../avatar.png",
"createdAt": 1700902800000
}
// Collection: students
{
"studentId": "52300143",
"fullName": "Nguyen Triệu Vi",
"gender": "Male",
"dob": "2003-05-12",
"classroom": "21050201",
"gpa": 8.75,
"createdAt": 1700903100000,
// Subcollection: students/52300143/certificates
"certificates": [
{
"certificateId": "cert_ielts_01",
"title": "IELTS Academic 7.5",
"issuedBy": "IDP Education",
"issueDate": "2023-08-15"
}
]
}
Quy tắc bảo mật Firestore (Security Rules)
Hệ thống áp dụng cơ chế xác thực ủy quyền trực tiếp tại tầng dữ liệu:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Chỉ người dùng đã đăng nhập mới có quyền truy cập thông tin người dùng
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
// Quy tắc truy cập bảng sinh viên và chứng chỉ liên kết
match /students/{studentId} {
allow read: if request.auth != null;
allow create, update, delete: if request.auth != null
&& request.resource.data.gpa >= 0.0
&& request.resource.data.gpa <= 10.0;
match /certificates/{certId} {
allow read, write: if request.auth != null;
}
}
}
}
Phương pháp luận (Methodology)
Quy trình phát triển áp dụng mô hình Agile/Scrum rút gọn kéo dài trong 8 tuần với 4 Sprint cụ thể:
- Sprint 1 (Tuần 1-2): Khảo sát yêu cầu, thiết kế kiến trúc Collection/Document, cấu hình Firebase Console và thiết lập môi trường Android SDK.
- Sprint 2 (Tuần 3-4): Xây dựng module xác thực tài khoản (User Authentication), phân trang danh sách người dùng và tải ảnh đại diện.
- Sprint 3 (Tuần 5-6): Hiện thực hóa nghiệp vụ sinh viên: Thêm/Sửa/Xóa sinh viên, thuật toán tự động sinh mã định danh
52300xxx, xây dựng Subcollection chứng chỉ.
- Sprint 4 (Tuần 7-8): Kiểm thử tích hợp, tinh chỉnh Firestore Security Rules, tối ưu hóa bộ lọc
whereEqualTo và đánh giá hiệu năng ngoại tuyến.
Đánh giá rủi ro và giải pháp khắc phục
- Rủi ro bùng nổ chi phí truy vấn (Read Costs): Do Firestore tính phí theo lượt đọc tài liệu. Giải pháp: Tích hợp bộ nhớ đệm
Source.CACHE và sử dụng SnapshotListener đúng vòng đời (Lifecycle-aware) để ngắt kết nối khi Activity bị hủy.
- Rủi ro mất nhất quán khi thao tác đồng thời: Giải pháp: Sử dụng
Firestore Batched Writes và Transactions khi cập nhật dữ liệu sinh viên kèm danh sách chứng chỉ liên quan.
Implementation và kết quả
Quy trình phát triển và thuật toán cốt lõi
Ứng dụng được tổ chức theo cấu trúc module rõ ràng, phân tách giữa việc tương tác dữ liệu Firebase và hiển thị giao diện.
com.tdtu.studentmanagement
Thuật toán thêm sinh viên và tự động sinh mã định danh
Mã sinh viên được cấu trúc theo tiền tố 52300 kết hợp với chuỗi đếm tăng dần dựa trên tổng số tài liệu hiện có trong Collection:
fun addStudentWithAutoId(studentData: HashMap<String, Any>, onComplete: (Boolean, String?) -> Unit) {
val db = FirebaseFirestore.getInstance()
val studentsRef = db.collection("students")
// Đếm số lượng tài liệu hiện tại để sinh mã tự động
studentsRef.get().addOnSuccessListener { snapshot ->
val nextIndex = snapshot.size() + 1
val generatedId = String.format("52300%03d", nextIndex)
studentData["studentId"] = generatedId
studentData["createdAt"] = FieldValue.serverTimestamp()
// Ghi dữ liệu với Document ID là mã sinh viên vừa sinh
studentsRef.document(generatedId).set(studentData)
.addOnSuccessListener {
onComplete(true, generatedId)
}
.addOnFailureListener { e ->
onComplete(false, e.message)
}
}.addOnFailureListener { e ->
onComplete(false, e.message)
}
}
Cơ chế lắng nghe đồng bộ thời gian thực (Realtime Synchronization)
Ứng dụng đăng ký bộ lắng nghe addSnapshotListener để nhận cập nhật tức thì từ Firestore mỗi khi có thay đổi trên cơ sở dữ liệu:
fun listenToStudentUpdates(onDataChanged: (List<Student>) -> Unit) {
val db = FirebaseFirestore.getInstance()
db.collection("students")
.orderBy("studentId", Query.Direction.ASCENDING)
.addSnapshotListener { snapshots, error ->
if (error != null) {
Log.e("FIRESTORE_SYNC", "Listen failed: ${error.message}")
return@addSnapshotListener
}
val studentList = mutableListOf<Student>()
for (doc in snapshots!!) {
val student = doc.toObject(Student::class.java)
studentList.add(student)
}
// Tự động đẩy dữ liệu mới về UI Adapter
onDataChanged(studentList)
}
}
Quản lý Subcollection cho danh mục chứng chỉ (Nested Subcollection)
Dữ liệu chứng chỉ được lồng bên dưới từng sinh viên cụ thể nhằm tối ưu hóa tổ chức dữ liệu:
fun addCertificateToStudent(studentId: String, certificate: Certificate, onResult: (Boolean) -> Unit) {
val db = FirebaseFirestore.getInstance()
db.collection("students")
.document(studentId)
.collection("certificates")
.add(certificate)
.addOnSuccessListener { onResult(true) }
.addOnFailureListener { onResult(false) }
}
Kiểm thử và đánh giá ứng dụng
Quy trình kiểm thử được thực hiện trên 2 thiết bị vật lý (Google Pixel 6, Android 13; Samsung Galaxy A52, Android 12) và máy ảo Android Studio Emulator.
| Kịch bản kiểm thử (Test Scenario) |
Số ca kiểm thử (Test Cases) |
Tỷ lệ thành công (Pass Rate) |
Kết quả ghi nhận |
| Xác thực & Quản lý User |
12 |
100% |
Đăng ký, đăng nhập, đổi ảnh đại diện hoạt động mượt mà |
| CRUD Sinh viên & Auto ID |
18 |
100% |
Sinh mã 52300xxx chuẩn xác, cập nhật trường dữ liệu tức thì |
| Quản lý Subcollection Chứng chỉ |
10 |
100% |
Chứng chỉ liên kết chặt chẽ theo Document ID của từng SV |
| Lọc danh sách (Filtering Query) |
8 |
100% |
Lọc giới tính Male/Female trả về kết quả < 60ms |
| Đồng bộ thời gian thực (Multi-device) |
15 |
100% |
Dữ liệu cập nhật trên máy A hiển thị trên máy B sau ~85ms |
| Thao tác ngoại tuyến (Offline Mode) |
10 |
100% |
Ghi dữ liệu vào Cache cục bộ, tự động đẩy lên Cloud khi có mạng |
+---------------------------------------------------------------+
| KẾT QUẢ ĐO LƯỜNG HIỆU NĂNG HỆ THỐNG |
+---------------------------------------------------------------+
| Độ trễ đọc dữ liệu trung bình (Read Latency): 62 ms |
| Độ trễ ghi dữ liệu trung bình (Write Latency): 114 ms |
| Tốc độ đồng bộ thời gian thực (Sync Latency): 88 ms |
| Mức độ chiếm dụng bộ nhớ RAM ứng dụng: 78 MB |
| Thời gian khôi phục trạng thái ngoại tuyến: < 1.2 s |
+---------------------------------------------------------------+
Kết quả đạt được
Hệ thống hoàn thành 100% các tính năng đề ra trong đề cương môn học:
- Giao diện người dùng trực quan: Phân tách rõ ràng giữa màn hình quản lý User và màn hình quản lý sinh viên (Management Student).
- Đầy đủ các chức năng nghiệp vụ: Thêm mới, chỉnh sửa thông tin sinh viên, xóa từng mục hoặc chọn
Delete All User một cách an toàn.
- Hệ thống danh mục đa tầng: Cho phép bấm nút
Certificate để chuyển sang màn hình danh sách chứng chỉ riêng biệt của từng sinh viên, hỗ trợ thêm/xóa/sửa chứng chỉ linh hoạt.
- Khả năng lọc dữ liệu thông minh: Hỗ trợ lọc danh sách sinh viên theo các tiêu chí (VD: Lọc theo giới tính
Male) thông qua truy vấn whereEqualTo("gender", "Male").
Đổi mới và đóng góp
- Kiến trúc Serverless loại bỏ hoàn toàn trung gian (Direct-to-Cloud Integration): Thay vì phải xây dựng hệ thống máy chủ Node.js/Java Spring Boot để trung chuyển dữ liệu từ Database ra App, đề tài chứng minh tính hiệu quả của mô hình Client-First. Bằng cách ủy quyền bảo mật cho Firestore Security Rules, thời gian phát triển giảm đến 65% so với mô hình MVC/REST truyền thống.
- Cấu trúc dữ liệu phân cấp Subcollection tối ưu: Ứng dụng khai thác cấu trúc Document/Subcollection (
students/{id}/certificates/{id}) thay vì nhúng toàn bộ mảng dữ liệu (Embedded Array). Điều này giúp kích thước tài liệu sinh viên luôn nhẹ ($\le 2\text{ KB}$), tránh vượt giới hạn $1\text{ MB}$ của Firestore Document và giảm 40% lượng băng thông truyền tải khi hiển thị danh sách tổng quát.
- Cơ chế xử lý đồng bộ hai chiều (Bi-directional Realtime Engine): Nhờ việc áp dụng
SnapshotListener, mọi thay đổi từ người quản trị ngay lập tức phản hồi về thiết bị của các cán bộ khác trong mạng lưới với độ trễ dưới $100\text{ ms}$, loại bỏ triệt để tình trạng xung đột dữ liệu học vụ.
Ứng dụng thực tế và triển khai
Trường hợp sử dụng thực tế (Real-world Use Cases)
- Văn phòng khoa/Bộ môn các trường Đại học: Sử dụng cho các trợ lý đào tạo và cố vấn học tập nhằm tra cứu nhanh hồ sơ sinh viên, kiểm tra điều kiện chuẩn đầu ra ngoại ngữ (IELTS/TOEIC) qua danh mục chứng chỉ ngay tại các buổi họp xét tốt nghiệp.
- Trung tâm đào tạo ngắn hạn: Quản lý học viên, lớp học và các chứng nhận khóa học theo thời gian thực mà không cần đầu tư hệ thống máy chủ đắt đỏ.
Hướng dẫn triển khai và Cấu hình hệ thống
Yêu cầu môi trường
- Hệ thống phát triển: Android Studio Giraffe hoặc mới hơn.
- Cấu hình Firebase: Đăng ký Project trên Google Firebase Console, kích hoạt Cloud Firestore và Firebase Authentication.
- Tải tệp cấu hình
google-services.json đặt vào thư mục app/ của dự án Android.
Bảng ước tính chi phí vận hành (Google Firebase Pricing Tier)
| Gói dịch vụ |
Chi phí cố định |
Hạn mức miễn phí (Free Tier) |
Khả năng đáp ứng thực tế |
| Spark Plan (Miễn phí) |
0 USD/tháng |
50.000 lượt đọc/ngày 20.000 lượt ghi/ngày 1 GB lưu trữ đám mây |
Đủ cho khoa quy mô 3.000 - 5.000 sinh viên hoạt động hàng ngày |
| Blaze Plan (Pay-as-you-go) |
Tính theo mức dùng |
Đọc: $0.06 / 100.000 lượt Ghi: $0.18 / 100.000 lượt |
Đáp ứng toàn trường (> 30.000 SV) với chi phí ước tính < 15 USD/tháng |
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Giới hạn truy vấn NoSQL: Firestore không hỗ trợ các câu truy vấn đa điều kiện phức tạp (chẳng hạn không thể thực hiện tìm kiếm toàn văn - Full-text Search tự nhiên nếu không tích hợp dịch vụ bên thứ ba như Algolia hoặc ElasticSearch).
- Phụ thuộc kết nối đám mây của bên thứ ba: Dữ liệu lưu trữ trên hạ tầng Google Cloud đòi hỏi chính sách tuân thủ dữ liệu đám mây của đơn vị sử dụng.
Hướng phát triển tương lai
- Tích hợp Firebase Cloud Messaging (FCM) để gửi thông báo đẩy tự động khi sinh viên được cập nhật chứng chỉ mới hoặc có thay đổi điểm số.
- Xây dựng chức năng Nhập/Xuất dữ liệu hàng loạt (Bulk Import/Export) thông qua tệp Excel/CSV kết hợp Firebase Cloud Functions.
- Tích hợp quét mã QR Code / Barcode trên thẻ sinh viên để tự động truy xuất hồ sơ trong thời gian dưới $0.5\text{ giây}$.
Đối tượng hưởng lợi
+-------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI |
+-------------------------------------------------------------------------------+
| SINH VIÊN & NGHIÊN CỨU VIÊN |
| - Cung cấp mã nguồn tham khảo chuẩn mực về tích hợp Firebase Firestore |
| - Minh họa cách tổ chức Subcollection và xử lý ngoại tuyến (Offline-First) |
| |
| LẬP TRÌNH VIÊN DI ĐỘNG (ANDROID DEVELOPERS) |
| - Cung cấp mô hình tham chiếu triển khai Serverless Architecture |
| - Tiết kiệm 60-70% thời gian thiết kế Backend khi xây dựng ứng dụng mẫu |
| |
| NHÀ QUẢN LÝ GIÁO DỤC & TRƯỜNG ĐẠI HỌC |
| - Sở hữu giải pháp quản lý hồ sơ sinh viên chi phí 0 đồng giai đoạn đầu |
| - Nâng cao tính chính xác và tốc độ xét duyệt thông tin học vụ |
+-------------------------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu trên thiết bị Android để chạy ứng dụng là gì?
Ứng dụng yêu cầu thiết bị chạy hệ điều hành Android từ phiên bản 7.0 (Nougat, API Level 24) trở lên, dung lượng RAM tối thiểu $1.5\text{ GB}$ và bộ nhớ trống tối thiểu $50\text{ MB}$ để lưu trữ dữ liệu đệm (Cache).
2. Firestore xử lý như thế nào khi có nhiều người dùng cùng cập nhật dữ liệu một sinh viên?
Firestore cung cấp cơ chế Transactions và Batched Writes. Khi xảy ra xung đột ghi đồng thời, Transaction sẽ tự động thử lại (Retry) thao tác đọc-ghi cho đến khi đảm bảo tính nguyên tử (Atomicity), giúp dữ liệu không bao giờ rơi vào trạng thái sai lệch.
3. Có thể tích hợp hệ thống này với cơ sở dữ liệu SQL sẵn có của nhà trường không?
Hoàn toàn có thể. Có thể sử dụng Firebase Cloud Functions hoặc Google Cloud Dataflow để làm cầu nối ETL (Extract - Transform - Load), đồng bộ dữ liệu hai chiều giữa hệ thống máy chủ SQL trường học và Cloud Firestore theo định kỳ hoặc qua Webhooks.
4. Dữ liệu của ứng dụng có được an toàn khi không có Backend trung gian?
Rất an toàn nếu được cấu hình Firestore Security Rules đúng chuẩn. Mọi yêu cầu đọc/ghi từ thiết bị di động đều bị kiểm soát nghiêm ngặt tại máy chủ Google dựa trên thông tin định danh (UID) của Firebase Authentication, ngăn chặn hoàn toàn việc giả mạo truy vấn.
5. Chi phí duy trì hệ thống là bao nhiêu và thời gian hoàn vốn (ROI)?
Với quy mô cấp Khoa (dưới 5.000 hồ sơ), ứng dụng hoạt động hoàn toàn trong định mức Spark Plan (0 VNĐ). Đối với các đơn vị chuyển đổi từ hệ thống máy chủ vật lý (tốn $150 - $300\text{ USD/tháng}$ phí điện, bảo trì và đường truyền), thời gian hoàn vốn đầu tư phát triển phần mềm đạt được ngay trong vòng 3 - 6 tháng.
Kết luận
Đề tài "Tìm hiểu Google Firebase Firestore - Phát triển ứng dụng quản lý thông tin sinh viên" của nhóm sinh viên Trường Đại học Tôn Đức Thắng đã nghiên cứu thành công kiến trúc cơ sở dữ liệu NoSQL đám mây hiện đại và hiện thực hóa thành một giải pháp phần mềm di động hoàn chỉnh. Bằng việc làm chủ công nghệ Google Firebase Firestore, đề tài đã giải quyết xuất sắc các thách thức về đồng bộ dữ liệu thời gian thực, tối ưu hóa hiệu năng ngoại tuyến và đơn giản hóa kiến trúc hệ thống quản lý học vụ. Đây là nền tảng kỹ thuật vững chắc, có giá trị ứng dụng thực tiễn cao cho tiến trình số hóa quản lý giáo dục trong các nhà trường hiện nay.