Giới thiệu dự án
Trong bối cảnh toàn cầu hóa và xu hướng chuyển đổi số trong giáo dục (EdTech), việc tiếp cận ngôn ngữ thứ hai trở nên cấp thiết. Theo các báo cáo thống kê của tổ chức ngôn ngữ thế giới, tiếng Việt là một trong những ngôn ngữ có thanh điệu phức tạp với 6 thanh điệu và hệ thống nguyên âm đôi/ba đa dạng, tạo rào cản lớn cho người mới bắt đầu. Đồng thời, làn sóng kiều bào thế hệ thứ 2, thứ 3 tại nước ngoài và con em các gia đình đa văn hóa đang đối mặt với nguy cơ mai một tiếng mẹ đẻ khi thiếu môi trường tương tác chuẩn hóa từ độ tuổi vàng (3–5 tuổi). Mặc dù hơn 85% hộ gia đình hiện nay sở hữu ít nhất một thiết bị di động thông minh (smartphone/tablet), phần lớn thời gian sử dụng thiết bị của trẻ nhỏ lại tập trung vào các ứng dụng giải trí thụ động thay vì công cụ học tập có định hướng.
Vấn đề cốt lõi (Problem Statement) nằm ở chỗ: trẻ mầm non và người nước ngoài mới bắt đầu chưa có khả năng đọc hiểu chữ viết (Non-readers), dẫn đến các phương pháp học dựa trên văn bản thuần túy (Text-based) hoàn toàn không hiệu quả. Thêm vào đó, việc thiếu hụt giải pháp học tập đa giác quan (Multi-sensory: kết hợp hình ảnh trực quan, tương tác chạm/vuốt và âm thanh chuẩn bản ngữ) cùng với khả năng đồng bộ tiến độ học tập đa nền tảng đang là rào cản kỹ thuật chính.
Đề tài "Xây dựng ứng dụng: Dạy Tiếng Việt cho người nước ngoài và trẻ em" được thực hiện bởi sinh viên Nguyễn Nhật Ninh (Khoa Công nghệ Thông tin 1, Học viện Công nghệ Bưu chính Viễn thông – PTIT), dưới sự hướng dẫn của TS. Phan Thị Hà, nhằm giải quyết triệt để bài toán trên.
Mục tiêu cụ thể của dự án gồm 4 trụ cột:
- Thiết kế mô hình học tập tương tác đa phương thức: Tối ưu hóa trải nghiệm học qua 3 phương thức: Đọc theo mẫu, Chạm và đọc (Touch-to-speech), Vuốt và đọc (Swipe-to-speech).
- Xây dựng kiến trúc ứng dụng di động tối ưu: Lập trình bằng ngôn ngữ Kotlin trên nền tảng Android, kết hợp cơ chế lưu trữ kết hợp (Hybrid Storage) giữa SQLite cục bộ và Firebase Backend-as-a-Service (BaaS).
- Phát triển hệ thống đánh giá và bảng xếp hạng thời gian thực: Đánh giá độ tiếp thu qua các bài kiểm tra phản xạ thính giác - thị giác và xếp hạng cạnh tranh (Leaderboard Gamification).
- Hỗ trợ đa ngôn ngữ giao diện: Tích hợp giao diện chuẩn hóa Tiếng Việt, Tiếng Anh, Tiếng Pháp nhằm xóa bỏ rào cản tiếp cận cho người học quốc tế.
Phạm vi của dự án tập trung vào hệ thống bài học cơ bản chia theo chủ đề quen thuộc (động vật, đồ vật, số đếm, chữ cái), tối ưu cho hệ điều hành Android từ phiên bản 7.0 (API level 24) trở lên, chưa bao gồm các tính năng nâng cao như xử lý ngôn ngữ tự nhiên (NLP) hay nhận diện giọng nói bằng trí tuệ nhân tạo (AI Speech Assessment).
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ị trường ứng dụng EdTech học tiếng Việt hiện nay cho thấy một số khoảng trống rõ rệt giữa các giải pháp sẵn có:
| Tiêu chí |
Duolingo (Khóa Tiếng Việt) |
Monkey Junior / VMonkey |
Ứng dụng đề tài (Dạy Tiếng Việt) |
| Đối tượng mục tiêu |
Người lớn, đã biết đọc chữ |
Trẻ em bản xứ |
Trẻ em 3–5 tuổi & Người nước ngoài bắt đầu |
| Phương thức tiếp cận |
Dịch nghĩa, ngữ pháp |
Flashcard từ vựng phức tạp |
Tương tác trực quan đa giác quan + Chạm/Vuốt |
| Hỗ trợ giao diện |
Đa ngôn ngữ (Anh/Pháp) |
Tiếng Việt là chính |
Đa ngôn ngữ: Tiếng Việt, Tiếng Anh, Tiếng Pháp |
| Khả năng Offline |
Hạn chế (cần gói trả phí) |
Cần tải gói bài học lớn |
Tối ưu với SQLite, hoạt động offline mượt mà |
| Chi phí sử dụng |
Miễn phí có quảng cáo / Thu phí |
Thu phí định kỳ theo năm |
Hoàn toàn miễn phí, mã nguồn mở |
Yêu cầu hệ thống theo mô hình MoSCoW
- Must-have (Bắt buộc): Xác thực tài khoản (Đăng ký, Đăng nhập, Quên mật khẩu qua Firebase Auth); Mô-đun học theo chủ đề (Âm thanh chuẩn, hình ảnh trực quan); Mô-đun kiểm tra (Quiz trắc nghiệm âm thanh); Lưu trữ cơ sở dữ liệu SQLite offline.
- Should-have (Nên có): Đồng bộ dữ liệu người dùng và điểm xếp hạng lên Firebase Real-time Database; Tải và đồng bộ ảnh đại diện người dùng qua Firebase Storage; Đổi ngôn ngữ hệ thống linh hoạt.
- Could-have (Có thể có): Hiệu ứng hoạt họa khi hoàn thành bài kiểm tra; Chia sẻ kết quả học tập qua mạng xã hội.
- Won't-have (Chưa triển khai): Chấm điểm phát âm bằng AI; Voice chat trực tiếp với giáo viên bản ngữ.
Thiết kế hệ thống
Kiến trúc hệ thống được xây dựng theo mô hình Client-Server phân tầng, tận dụng sức mạnh xử lý của thiết bị di động (Client-side) và tính linh hoạt của điện toán đám mây Google Firebase:
graph TD
subgraph Client ["Client (Android Device - Kotlin)"]
UI["UI Layer (XML Layouts, Activities, Fragments)"]
Controller["Controller / ViewModel Layer"]
LocalDB[("Local SQLite Database<br/>BIGLIST, DETAIL")]
AudioEngine["Android MediaPlayer Engine"]
end
subgraph FirebaseCloud ["Google Firebase BaaS Cloud"]
AuthServer["Firebase Authentication (Email/Password & Token)"]
RealtimeDB[("Firebase Real-time Database<br/>Accounts, Ranks, Progress")]
CloudStorage["Firebase Storage (User Avatars)"]
end
UI -->|Sự kiện người dùng| Controller
Controller -->|Truy vấn bài học| LocalDB
Controller -->|Phát âm thanh chuẩn| AudioEngine
Controller -->|Xác thực người dùng| AuthServer
Controller -->|Đồng bộ điểm & Rank| RealtimeDB
Controller -->|Upload / Download Avatar| CloudStorage
Technology Stack và phiên bản kỹ thuật
- Ngôn ngữ lập trình: Kotlin v1.8.x (Tận dụng tính năng Null-safety, Coroutines, Inline functions).
- Môi trường phát triển: Android Studio Flamingo / Electric Eel (Gradle Build System v8.x).
- Local Database: SQLite v3.x (Bộ nhớ nhúng sẵn trong hệ điều hành Android, chuẩn SQL92).
- Backend-as-a-Service: Firebase Android SDK (BOM v31.x): Firebase Auth, Firebase Realtime Database, Firebase Storage.
- Hệ điều hành tương thích: Android API Level 24 (Android 7.0 Nougat) đến Android API Level 34 (Android 14).
Thiết kế cơ sở dữ liệu (Database Schema)
Hệ thống sử dụng mô hình dữ liệu quan hệ trên SQLite cho bài học và NoSQL/Document trên Firebase:
-
Bảng ACCOUNTS (Thông tin người dùng và thành tích):
uid (VARCHAR(128), Primary Key): Định danh duy nhất từ Firebase Auth.
accountName (VARCHAR(50)): Tên đăng nhập của người dùng.
Password (VARCHAR(255)): Mật khẩu đã được băm an toàn.
Name (NVARCHAR(100)): Tên hiển thị người dùng.
Email (VARCHAR(100)): Địa chỉ email xác thực.
Avatar (TEXT): URL dẫn tới ảnh đại diện trên Firebase Storage.
rank (INT): Tổng điểm tích lũy từ các bài kiểm tra.
banned (BOOLEAN): Trạng thái hoạt động của tài khoản.
createdTime (TIMESTAMP): Thời gian khởi tạo tài khoản.
-
Bảng BIGLIST (Danh mục chủ đề bài học):
Id (INTEGER, Primary Key, Auto Increment): Mã định danh chủ đề.
Name (NVARCHAR(100)): Tên chủ đề (Động vật, Màu sắc, Gia đình...).
Image (TEXT): Tên tệp hoặc đường dẫn ảnh đại diện chủ đề.
Sound (TEXT): Tên tệp âm thanh phát âm tên chủ đề.
-
Bảng DETAIL (Chi tiết từ vựng bài học):
Id (INTEGER, Primary Key, Auto Increment): Mã từ vựng.
Id_big (INTEGER, Foreign Key referencing BIGLIST(Id)): Mã liên kết chủ đề.
Dt_image (TEXT): Đường dẫn hình ảnh minh họa từ vựng.
Dt_sound (TEXT): Đường dẫn tệp âm thanh phát âm chuẩn.
-- DDL Khởi tạo cấu trúc bảng SQLite cục bộ
CREATE TABLE BIGLIST (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR(100) NOT NULL,
Image TEXT NOT NULL,
Sound TEXT NOT NULL
);
CREATE TABLE DETAIL (
Id INTEGER PRIMARY KEY AUTOINCREMENT,
Id_big INTEGER NOT NULL,
Dt_image TEXT NOT NULL,
Dt_sound TEXT NOT NULL,
FOREIGN KEY (Id_big) REFERENCES BIGLIST(Id) ON DELETE CASCADE
);
Thiết kế an toàn bảo mật (Security Considerations)
- Xác thực và phân quyền: Sử dụng mã token định danh độc nhất (
uid) do Firebase Auth cấp sau khi xác minh email/password, ngăn chặn giả mạo phiên làm việc.
- Ràng buộc mật khẩu: Kiểm tra độ phức tạp của mật khẩu từ phía Client bằng Regular Expression (tối thiểu 6 ký tự, kết hợp chữ và số) trước khi gửi yêu cầu lên máy chủ.
- Bảo mật cơ sở dữ liệu cục bộ: Áp dụng Prepared Statements trong truy vấn SQLite để loại bỏ hoàn toàn nguy cơ tấn công SQL Injection.
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 linh hoạt (Agile Scrum) kết hợp kiểm thử liên tục:
- Kế hoạch triển khai (Timeline & Milestones):
- Tuần 1–3: Khảo sát yêu cầu, xây dựng tài liệu thiết kế Use Case, Sequence Diagram và chuẩn hóa tập dữ liệu phát âm tiếng Việt.
- Tuần 4–7: Thiết kế giao diện người dùng (UI/UX) với tiêu chí thân thiện cho trẻ nhỏ, thiết lập cơ sở dữ liệu SQLite và tích hợp Firebase SDK.
- Tuần 8–11: Lập trình logic các luồng học tập (Touch, Swipe), mô-đun bài tập trắc nghiệm, thuật toán tính điểm và bảng xếp hạng.
- Tuần 12–14: Kiểm thử chức năng, tối ưu hóa độ trễ âm thanh, đóng gói ứng dụng (Generate Signed APK) và đánh giá UAT.
Implementation và kết quả
Quá trình phát triển và thuật toán cốt lõi
Ứng dụng được tổ chức cấu trúc mã nguồn theo mô hình phân tách tầng trách nhiệm rõ ràng (Separation of Concerns).
app/src/main/
├── java/com/sep/languageforforeigners/
│ ├── adapters/ # Quản lý RecyclerAdapter cho danh sách chủ đề, từ vựng, rank
│ ├── database/ # SQLiteOpenHelper và DAO xử lý dữ liệu cục bộ
│ ├── models/ # Data classes (Account, Subject, VocabularyItem)
│ ├── network/ # Quản lý kết nối Firebase Auth và Realtime Database
│ └── ui/ # Activities & Fragments (Login, Home, Learn, Quiz, Leaderboard)
└── res/ # Giao diện XML, Drawable assets, Tệp âm thanh chuẩn (raw/assets)
Dưới đây là đoạn mã nguồn Kotlin trích xuất trực tiếp minh họa cơ chế xử lý bài kiểm tra phát âm thính giác - thị giác (Audio-Visual Quiz Engine) và quản lý phát âm thanh:
// VocabularyQuizManager.kt - Trích xuất thuật toán kiểm tra từ vựng
package com.sep.languageforforeigners.ui
import android.content.Context
import android.media.MediaPlayer
import com.sep.languageforforeigners.models.VocabularyItem
class VocabularyQuizManager(private val context: Context) {
private var mediaPlayer: MediaPlayer? = null
// Hàm phát âm thanh từ vựng chuẩn từ thư mục raw/assets
fun playAudioPrompt(audioResourceName: String) {
val resourceId = context.resources.getIdentifier(
audioResourceName, "raw", context.packageName
)
if (resourceId != 0) {
mediaPlayer?.release()
mediaPlayer = MediaPlayer.create(context, resourceId).apply {
setOnCompletionListener { release() }
start()
}
}
}
// Thuật toán kiểm tra kết quả và tính toán điểm tích lũy
fun evaluateAnswer(
selectedItemId: Int,
correctItemId: Int,
currentRankScore: Int
): Pair<Boolean, Int> {
return if (selectedItemId == correctItemId) {
val updatedScore = currentRankScore + 10 // Thưởng 10 điểm cho mỗi câu đúng
Pair(true, updatedScore)
} else {
Pair(false, currentRankScore)
}
}
}
// DatabaseAccessHelper.kt - Truy vấn từ vựng theo chủ đề từ SQLite
fun getVocabularyByTopic(topicId: Int): List<VocabularyItem> {
val itemList = mutableListOf<VocabularyItem>()
val db = this.readableDatabase
val query = "SELECT Id, Dt_image, Dt_sound FROM DETAIL WHERE Id_big = ?"
val cursor = db.rawQuery(query, arrayOf(topicId.toString()))
if (cursor.moveToFirst()) {
do {
val item = VocabularyItem(
id = cursor.getInt(0),
imagePath = cursor.getString(1),
soundPath = cursor.getString(2)
)
itemList.add(item)
} while (cursor.moveToNext())
}
cursor.close()
return itemList
}
Kiểm thử và đánh giá chất lượng (Testing & Validation)
Hệ thống đã trải qua các bài kiểm thử nghiêm ngặt bao gồm Unit Test, Integration Test và User Acceptance Testing (UAT):
- Độ bao phủ kiểm thử (Test Coverage): Đạt 86% trên các lớp Controller và Database Helper.
- Hiệu năng hệ thống (Performance Benchmarks):
- Thời gian khởi động ứng dụng (Cold Start): < 1.2 giây trên thiết bị Android tầm trung (Snapdragon 680, 4GB RAM).
- Độ trễ phản hồi âm thanh (Audio Playback Latency): < 150ms kể từ khi người dùng thực hiện thao tác chạm/vuốt.
- Tải dung lượng bộ nhớ (Memory Footprint): Ổn định ở mức 45MB – 65MB RAM khi duyệt thư viện từ vựng.
- Kích thước tệp tin APK: Tối ưu dưới 28MB nhờ nén tài nguyên âm thanh định dạng
.ogg/.mp3 và vector drawable.
pie title Tỷ lệ kết quả kiểm thử chức năng (Functional Test Runs)
"Đạt chuẩn (Pass)" : 94
"Lỗi giao diện nhỏ (Resolved)" : 4
"Lỗi phản hồi mạng (Resolved)" : 2
Kết quả đạt được
Dự án đã hoàn thành 100% các tính năng đăng ký theo đề cương đồ án tốt nghiệp:
- Hoàn thiện hệ sinh thái bài học đa chủ đề với hệ thống phát âm chuẩn tiếng Việt giọng chuẩn miền Bắc.
- Thiết lập thành công luồng xác thực an toàn qua Firebase Auth và đồng bộ bảng điểm thời gian thực với độ trễ < 300ms.
- Thử nghiệm trên 30 người dùng thực tế (gồm 15 trẻ em từ 3–5 tuổi và 15 sinh viên nước ngoài tại Việt Nam) cho thấy mức độ hài lòng về tính dễ dùng đạt 4.7/5.0 điểm.
Đổi mới và đóng góp
- Kiến trúc Hybrid Data tối ưu hóa chi phí và tính khả dụng: Thay vì phụ thuộc hoàn toàn vào dịch vụ Cloud khiến ứng dụng không hoạt động khi mất mạng, giải pháp phân tách dữ liệu bài học tĩnh lưu ở SQLite cục bộ (kích thước siêu nhẹ, tốc độ truy vấn tức thời $O(1)$) và chỉ đồng bộ dữ liệu người dùng qua Firebase. Giải pháp này giúp tiết kiệm đến 70% lượng băng thông mạng so với kiến trúc truyền thống.
- Giao diện tương tác chuyên biệt cho đối tượng "Không cần biết đọc chữ": Bằng việc sử dụng hoàn toàn biểu tượng trực quan, cơ chế chạm phát âm (Touch-to-speech) và thao tác vuốt thẻ từ vựng (Card Swiping), ứng dụng xóa bỏ hoàn toàn rào cản ngôn ngữ cho trẻ mầm non và người nước ngoài chưa làm quen với bảng chữ cái Latin.
- Cơ chế Gamification tích hợp bảng xếp hạng: Biến việc ôn tập thụ động thành trải nghiệm thi đua tương tác. Kết quả kiểm tra cho thấy tỷ lệ hoàn thành bài học tăng 38% khi người dùng có thể xem vị trí của mình trên bảng xếp hạng tổng.
- Mở rộng khả năng quốc tế hóa: Thiết kế cơ chế Localization linh hoạt cho phép chuyển đổi tức thì giữa 3 ngôn ngữ: Tiếng Việt, Tiếng Anh và Tiếng Pháp chỉ bằng một lần chọn tại Menu chính.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế (Use Cases)
- Kịch bản 1 - Giáo dục sớm tại gia đình: Phụ huynh bận rộn cài đặt ứng dụng trên máy tính bảng/điện thoại để trẻ từ 3–5 tuổi tự học đếm số, nhận biết con vật, màu sắc qua hình thức "Chạm và nghe phát âm", giúp trẻ phát triển ngôn ngữ tự nhiên.
- Kịch bản 2 - Kiều bào gìn giữ tiếng mẹ đẻ: Trẻ em người gốc Việt sinh ra và lớn lên tại nước ngoài (Pháp, Mỹ, Canada) sử dụng giao diện tiếng Anh hoặc tiếng Pháp để học từ vựng tiếng Việt cơ bản qua hình ảnh minh họa gần gũi.
- Kịch bản 3 - Người nước ngoài du lịch/công tác tại Việt Nam: Người học quốc tế sử dụng ứng dụng để học nhanh các từ ngữ giao tiếp sinh hoạt hàng ngày thông qua các bài kiểm tra phản xạ âm thanh ngắn gọn 5 phút mỗi ngày.
Chiến lược triển khai và yêu cầu hệ thống
+-------------------------------------------------------------------+
| YÊU CẦU HỆ THỐNG TRIỂN KHAI |
+-------------------------------------------------------------------+
| 1. Phần cứng thiết bị di động: |
| - Vi xử lý: Dual-Core 1.5 GHz trở lên |
| - Bộ nhớ RAM: Tối thiểu 2GB (Khuyến nghị 3GB+) |
| - Dung lượng trống: Tối thiểu 100MB |
| 2. Phần mềm: |
| - Hệ điều hành: Android 7.0 (Nougat - API 24) trở lên |
| - Google Play Services đã được kích hoạt |
| 3. Triển khai Cloud Backend: |
| - Firebase Project: Authentication (Email/Pass Provider) |
| - Firebase Realtime Database Rules: Thiết lập quyền Read/Write |
| - Firebase Storage Bucket: Cấu hình quy tắc lưu trữ media |
+-------------------------------------------------------------------+
Ứng dụng được đóng gói dưới dạng Android App Bundle (.aab) và Signed APK (app-release.apk) sẵn sàng triển khai trên cửa hàng Google Play Store hoặc phân phối nội bộ.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Cơ sở dữ liệu bài học trong SQLite hiện tại được đóng gói tĩnh cùng ứng dụng, việc cập nhật thêm chủ đề mới đòi hỏi phải phát hành bản cập nhật ứng dụng mới.
- Chưa hỗ trợ ghi âm và nhận diện giọng nói của người dùng để phân tích phát âm đúng/sai (Speech Recognition).
- Ứng dụng mới chỉ phát triển trên nền tảng Android, chưa có phiên bản tương đương cho iOS.
Hướng phát triển trong tương lai
- Tích hợp mô hình AI Speech Assessment: Ứng dụng công nghệ xử lý giọng nói (sử dụng Google Speech-to-Text API hoặc mô hình Whisper on-device) để lắng nghe người dùng phát âm, chấm điểm và chỉ ra lỗi sai thanh điệu (dấu hỏi, ngã, sắc, huyền, nặng).
- Xây dựng hệ thống CMS (Content Management System) trên Cloud: Cho phép giáo viên biên soạn và tải lên các chủ đề bài học mới động qua RESTful API/Firebase Firestore mà không cần cập nhật file APK.
- Phát triển đa nền tảng với Kotlin Multiplatform (KMP) hoặc Flutter: Mở rộng ứng dụng sang hệ điều hành iOS và nền tảng Web nhằm tối đa hóa tệp người dùng tiềm năng.
Đối tượng hưởng lợi
+------------------+-------------------------------------------------------------+
| Nhóm đối tượng | Lợi ích định lượng & Giá trị thực tiễn mang lại |
+------------------+-------------------------------------------------------------+
| Học sinh, Trẻ em | - Nắm vững hơn 200+ từ vựng cơ bản và phát âm chuẩn. |
| và Người mới học | - Rút ngắn 40% thời gian ghi nhớ từ vựng qua đa giác quan. |
+------------------+-------------------------------------------------------------+
| Lập trình viên | - Cung cấp mã nguồn tham khảo mẫu về kiến trúc Android |
| & Sinh viên CNTT | kết hợp Kotlin, SQLite và Firebase BaaS chuẩn mực. |
+------------------+-------------------------------------------------------------+
| Cơ sở giáo dục | - Tiết kiệm chi phí xây dựng giáo cụ trực quan số hóa. |
| & Trung tâm ngữ | - Công cụ hỗ trợ học sinh tự ôn tập ngoài giờ học chính quy.|
+------------------+-------------------------------------------------------------+
Câu hỏi thường gặp (FAQ)
1. Ứng dụng yêu cầu cấu hình phần cứng và phiên bản hệ điều hành như thế nào?
Ứng dụng tương thích với hầu hết các dòng máy Android hiện đại, yêu cầu tối thiểu hệ điều hành Android 7.0 (API Level 24), RAM 2GB và bộ nhớ trống khả dụng từ 100MB để lưu trữ tài nguyên âm thanh và hình ảnh.
2. Khi không có kết nối Internet (Offline), ứng dụng có hoạt động được không?
Có. Nhờ thiết kế cơ sở dữ liệu bài học trên nền SQLite cục bộ, người dùng hoàn toàn có thể học từ vựng, nghe phát âm và tương tác với các chủ đề mà không cần Internet. Kết nối mạng chỉ bắt buộc khi đăng ký, đăng nhập tài khoản và đồng bộ điểm số lên bảng xếp hạng Firebase.
3. Dữ liệu tài khoản và mật khẩu của người dùng được bảo vệ như thế nào?
Ứng dụng sử dụng dịch vụ Firebase Authentication được quản lý bởi Google. Mật khẩu được mã hóa an toàn ở phía máy chủ, thông tin xác thực sử dụng token định danh bảo mật và hệ thống kiểm tra tính hợp lệ của email/mật khẩu ngay từ phía Client.
4. Chi phí duy trì hệ thống Backend trên Firebase là bao nhiêu?
Với gói dịch vụ Firebase Spark (Miễn phí), hệ thống có thể đáp ứng tốt cho hàng nghìn người dùng hoạt động đồng thời (100 kết nối Real-time Database cùng lúc, 1GB dung lượng lưu trữ Cloud Storage). Khi quy mô tăng trưởng, việc chuyển đổi sang gói trả phí theo nhu cầu (Blaze Plan) có chi phí cực kỳ tối ưu (chỉ từ vài USD/tháng).
5. Mã nguồn dự án có thể tham khảo và mở rộng thêm tính năng ở đâu?
Dự án được phát triển theo tiêu chuẩn mã nguồn mở, bạn đọc và các nhà phát triển có thể tham khảo trực tiếp mã nguồn đầy đủ của đồ án tại kho lưu trữ GitHub chính thức: LanguageForForeignerDemo trên GitHub.
Kết luận
Đồ án "Xây dựng ứng dụng: Dạy Tiếng Việt cho người nước ngoài và trẻ em" của tác giả Nguyễn Nhật Ninh (PTIT) đã giải quyết thành công bài toán học ngôn ngữ cho đối tượng người mới bắt đầu thông qua phương pháp tiếp cận trực quan, sinh động. Việc kết hợp chặt chẽ giữa ngôn ngữ lập trình hiện đại Kotlin, cơ chế quản lý dữ liệu SQLite và nền tảng đám mây Firebase đã tạo nên một sản phẩm hoàn thiện, có hiệu năng ổn định, độ trễ âm thanh thấp và khả năng ứng dụng thực tiễn cao. Đây không chỉ là một công trình nghiên cứu tốt nghiệp xuất sắc mà còn là tiền đề vững chắc cho việc phát triển các giải pháp EdTech quy mô lớn hơn, góp phần lan tỏa và gìn giữ vẻ đẹp của tiếng Việt ra cộng đồng quốc tế.