Giới thiệu dự án

Thị trường sách điện tử (E-book) toàn cầu đang ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) đạt 8.4% trong giai đoạn 2023–2028. Tuy nhiên, theo khảo sát hành vi người dùng số, có tới 62% độc giả gặp phải tình trạng "quá tải thông tin" (information overload), dẫn đến tỷ lệ bỏ dở cuốn sách giữa chừng lên đến trên 55%. Người đọc hiện đại đối mặt với hai rào cản lớn: thiếu thời gian để đọc toàn bộ tác phẩm nhằm đánh giá mức độ phù hợp, và sự kém hiệu quả của các hệ thống gợi ý truyền thống vốn chỉ dựa trên thể loại chung chung thay vì thấu hiểu sâu sắc hành vi đọc thực tế.

Đồ án "Phát triển ứng dụng đọc sách tích hợp với AI" được thực hiện bởi nhóm tác giả Phạm Công Minh và Trần Thị Mộng Trúc Ngân, dưới sự hướng dẫn khoa học của TS. Nguyễn Trịnh Đông tại Trường Đại học Công nghệ Thông tin – ĐHQG-HCM. Đề tài tập trung giải quyết triệt để điểm nghẽn trải nghiệm người dùng thông qua việc kết hợp nền tảng đọc sách di động hiện đại với các mô hình Trí tuệ nhân tạo (AI) tiên tiến nhằm tự động hóa quá trình tóm tắt nội dung và cá nhân hóa danh mục đề xuất.

+-----------------------------------------------------------------------------------+
|                               HỆ THỐNG ĐỌC SÁCH AI                                |
+-----------------------------------------------------------------------------------+
|  [Độc giả & Tác giả] ---> [React Native App] ---> [Firebase BaaS / Cloud Functions] |
|                                                           |                       |
|                                                           v                       |
|                                            [AI Natural Language Processing Engine] |
|                                            - Tóm tắt chương / sách tự động         |
|                                            - Đề xuất cá nhân hóa theo thói quen   |
+-----------------------------------------------------------------------------------+

Mục tiêu dự án

  1. Xây dựng ứng dụng đọc sách đa nền tảng (Cross-platform) với hiệu năng tiệm cận native, giao diện trực quan, hỗ trợ chế độ đọc trực tuyến (Online) và ngoại tuyến (Offline).
  2. Tích hợp giải thuật Trí tuệ nhân tạo để tự động trích xuất và tạo bản tóm tắt nội dung (Abstractive Summarization) cho từng chương sách và toàn bộ ấn phẩm.
  3. Thiết kế công cụ gợi ý thông minh (Recommendation Engine) dựa trên lịch sử tương tác, thể loại ưa thích và thói quen đọc thực tế của từng tài khoản.
  4. Xây dựng phân hệ quản trị (Admin Dashboard) và cơ chế tự sáng tác, xuất bản sách trực tiếp cho người dùng, đảm bảo khả năng kiểm duyệt nội dung và thống kê vận hành.

Giải pháp kỹ thuật và Kết quả kỳ vọng

  • Tiếp cận giải pháp: Lựa chọn kiến trúc Client-Server hiện đại, kết hợp framework React Native cho tầng giao diện người dùng và Firebase làm nền tảng Backend-as-a-Service (BaaS), kết nối với mô hình xử lý ngôn ngữ tự nhiên (NLP) thông qua API RESTful.
  • Chỉ số kỳ vọng:
    • Giảm 70% thời gian độc giả cần bỏ ra để nắm bắt ý chính của một chương sách.
    • Độ trễ phản hồi khi tải sách và điều hướng dưới 1.5 giây.
    • Tối ưu bộ nhớ đệm ngoại tuyến (Offline cache) giúp ứng dụng hoạt động mượt mà với tài nguyên RAM dưới 150MB trên thiết bị di động.

Phạm vi và Giới hạn đề tài

  • Phạm vi: Ứng dụng di động hỗ trợ hệ điều hành Android (từ Android 6.0 Marshmallow trở lên) và iOS (từ iOS 12.0 trở lên); cung cấp công cụ đọc sách định dạng văn bản chuẩn, hệ thống tóm tắt chương và gợi ý sách.
  • Giới hạn: Đề tài trong giai đoạn này chưa hỗ trợ xử lý các định dạng phức tạp chứa đồ họa động hoặc file âm thanh (Audiobook/TTS), và tính năng tóm tắt AI phụ thuộc vào kết nối Internet tới Cloud Functions.

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 cho thấy các ứng dụng đọc sách phổ biến hiện nay như Amazon Kindle hay Wattpad sở hữu kho nội dung khổng lồ nhưng vẫn tồn tại những khoảng trống công nghệ nhất định về khả năng cô đọng kiến thức theo thời gian thực:

Tiêu chí Amazon Kindle Wattpad Ứng dụng Đồ án (Smart E-Book AI)
Nền tảng Đa nền tảng (iOS, Android, e-Reader) Đa nền tảng (Web, Mobile) Đa nền tảng di động (React Native)
Tự sáng tác & Tải sách Giới hạn qua KDP (phức tạp) Rất mạnh, cộng đồng lớn Hỗ trợ sáng tác trực tiếp và đăng tải tức thì
Tóm tắt nội dung bằng AI Không hỗ trợ (hoặc tóm tắt thủ công) Không có Tự động tóm tắt cấp độ Chương & Sách qua AI
Cơ chế đề xuất Lọc cộng tác cơ bản (Collaborative) Dựa trên tags & cộng đồng Hybrid (Lịch sử đọc + Phân tích nội dung AI)
Chi phí triển khai Rất cao (Hạ tầng độc quyền) Cao (Microservices quy mô lớn) Tối ưu chi phí nhờ Serverless (Firebase BaaS)

Phân tích yêu cầu theo mô hình MoSCoW

  • Must have (Bắt buộc có): Xác thực đa phương thức (Email, Google, Facebook), Trình đọc sách tùy biến giao diện (Font, Size, Line Height, Theme), Đọc offline với lưu trữ cục bộ, Tóm tắt chương bằng AI, Phân quyền người dùng (Admin/User).
  • Should have (Nên có): Hệ thống đề xuất sách theo hành vi đọc, Quản lý báo cáo vi phạm nội dung, Tóm tắt toàn bộ sách, Đánh giá và bình luận theo thời gian thực.
  • Could have (Có thể mở rộng): Chia sẻ trích dẫn lên mạng xã hội, Thông báo đẩy (FCM) khi tác giả yêu thích ra chương mới.
  • Won't have (Chưa triển khai): Đọc sách định dạng Audio/TTS, Tích hợp cổng thanh toán trực tiếp in-app purchase.

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình phân tầng hướng sự kiện, tách biệt giữa tầng hiển thị di động, tầng dịch vụ đám mây và tầng xử lý Trí tuệ nhân tạo chuyên sâu:

[ Tầng Thiết Bị Di Động (Client Layer) ]
  ├── React Native UI Components (View, Text, ScrollView)
  ├── State Management & Navigation (React Navigation v6)
  └── Local Storage (AsyncStorage - Lưu cache sách Offline)
                          │ (HTTPS / JSON Web Token)
                          ▼
[ Tầng Dịch Vụ Đám Mây (Cloud BaaS Layer - Firebase) ]
  ├── Firebase Authentication (Xác thực người dùng)
  ├── Firebase Realtime Database / Cloud Firestore (NoSQL Schema)
  ├── Firebase Cloud Storage (Lưu trữ file sách, ảnh bìa)
  └── Firebase Cloud Functions (Xử lý Backend Logic Serverless)
                          │ (REST API / Async Task)
                          ▼
[ Tầng Xử Lý Trí Tuệ Nhân Tạo (AI Engine Layer) ]
  ├── OpenAI LLM / NLP Summarization Pipeline
  └── Recommendation Scoring Algorithm

Công nghệ và Phiên bản triển khai

  • Client: React Native (v0.72.x), JavaScript (ES6+), React Navigation (v6.x), React Native Vector Icons.
  • Backend & Cloud: Firebase SDK (v10.x), Firebase Cloud Functions (Node.js 18 LTS Runtime), Firebase Cloud Messaging (FCM).
  • Cơ sở dữ liệu: Firebase Realtime Database & Cloud Firestore.
  • Môi trường phát triển: Visual Studio Code (v1.85+), Android Studio (Giraffe/Hedgehog), Node.js (v18.16.0).

Thiết kế Cơ sở Dữ liệu (NoSQL Data Schema)

Cơ sở dữ liệu NoSQL được thiết kế phi chuẩn hóa (Denormalized) nhằm tối ưu hóa tốc độ truy vấn đọc (Read-heavy) cho ứng dụng di động:

{
  "Users": {
    "user_id_01": {
      "uid": "String (PK)",
      "displayName": "String",
      "email": "String",
      "role": "enum('admin', 'user')",
      "readingHistory": { "book_id_101": { "lastChapter": 3, "timestamp": 1705882000 } },
      "favorites": ["book_id_101", "book_id_205"]
    }
  },
  "Books": {
    "book_id_101": {
      "bookId": "String (PK)",
      "title": "String",
      "authorId": "String (FK)",
      "categoryId": "String (FK)",
      "description": "String",
      "coverUrl": "String",
      "aiSummary": "String",
      "viewCount": "Number",
      "ratingAvg": "Number"
    }
  },
  "Chapters": {
    "chapter_id_501": {
      "chapterId": "String (PK)",
      "bookId": "String (FK)",
      "chapterNum": "Number",
      "title": "String",
      "content": "String",
      "aiChapterSummary": "String"
    }
  }
}

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình Agile/Scrum trong chu kỳ 11 tuần với các Sprint kéo dài 2 tuần:

  • Sprint 1 (Tuần 1–2): Khảo sát thực trạng, thu thập yêu cầu, hoàn thiện tài liệu Software Requirement Specification (SRS) và thiết kế sơ đồ Use Case, ERD.
  • Sprint 2 (Tuần 3–4): Thiết lập môi trường React Native, cấu hình Firebase Authentication và xây dựng các màn hình Authentication, Quản lý hồ sơ.
  • Sprint 3 (Tuần 5–6): Hiện thực module Trình đọc sách (Custom Reader), quản lý thư viện, hệ thống bộ nhớ đệm tải sách Offline.
  • Sprint 4 (Tuần 7–8): Tích hợp Cloud Functions với AI Engine xử lý Tóm tắt chương và giải thuật Gợi ý sách thông minh.
  • Sprint 5 (Tuần 9–10): Xây dựng Dashboard Quản trị viên, kiểm thử tích hợp (Integration Test), tối ưu hiệu năng JS Bridge.
  • Sprint 6 (Tuần 11): UAT, đóng gói ứng dụng (Release APK), hoàn thiện báo cáo khóa luận.

Implementation và kết quả

Quy trình phát triển và Thuật toán cốt lõi

1. Module Tích hợp AI Tóm tắt Chương sách (Cloud Functions)

Hệ thống sử dụng Cloud Function kích hoạt theo HTTP Request để gửi nội dung văn bản tới mô hình ngôn ngữ lớn (LLM), xử lý giới hạn token và trả về kết quả tóm tắt súc tích:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY });
const openai = new OpenAIApi(configuration);

exports.summarizeChapter = functions.region("asia-southeast1").https.onCall(async (data, context) => {
  if (!context.auth) {
    throw new functions.https.HttpsError("unauthenticated", "Yêu cầu đăng nhập để sử dụng tính năng.");
  }
  
  const { textContent, chapterTitle } = data;
  if (!textContent || textContent.length < 100) {
    throw new functions.https.HttpsError("invalid-argument", "Nội dung chương quá ngắn để tóm tắt.");
  }

  try {
    const prompt = `Bạn là trợ lý phân tích sách chuyên nghiệp. Hãy tóm tắt nội dung chính của chương "${chapterTitle}" sau đây trong khoảng 3-5 gạch đầu dòng ngắn gọn, tập trung vào sự kiện chính và bài học cốt lõi:\n\n${textContent.substring(0, 4000)}`;
    
    const response = await openai.createChatCompletion({
      model: "gpt-3.5-turbo",
      messages: [{ role: "user", content: prompt }],
      max_tokens: 350,
      temperature: 0.5,
    });

    const summary = response.data.choices[0].message.content.trim();
    return { success: true, summary: summary };
  } catch (error) {
    console.error("AI Summarization Error:", error);
    throw new functions.https.HttpsError("internal", "Lỗi trong quá trình tạo tóm tắt AI.");
  }
});

2. Module Trình đọc sách và Quản lý Bộ nhớ đệm Offline (React Native)

Xử lý lưu trữ nội dung sách trực tiếp trên bộ nhớ thiết bị thông qua AsyncStorage, cho phép đọc mượt mà không cần mạng:

import React, { useState, useEffect } from 'react';
import { View, Text, ScrollView, StyleSheet, TouchableOpacity } from 'react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';

export const ChapterReader = ({ route, navigation }) => {
  const { chapterId, bookId, title, content } = route.params;
  const [fontSize, setFontSize] = useState(16);
  const [isOfflineSaved, setIsOfflineSaved] = useState(false);

  const saveForOfflineReading = async () => {
    try {
      const key = `@offline_chapter_${chapterId}`;
      const payload = JSON.stringify({ chapterId, bookId, title, content, savedAt: Date.now() });
      await AsyncStorage.setItem(key, payload);
      setIsOfflineSaved(true);
      alert('Chương sách đã được lưu để đọc offline!');
    } catch (e) {
      console.error('Lỗi khi lưu bộ nhớ đệm:', e);
    }
  };

  return (
    <View style={styles.container}>
      <View style={styles.controlPanel}>
        <TouchableOpacity onPress={() => setFontSize(prev => Math.min(prev + 2, 28))}>
          <Text style={styles.btnText}>A+</Text>
        </TouchableOpacity>
        <TouchableOpacity onPress={() => setFontSize(prev => Math.max(prev - 2, 12))}>
          <Text style={styles.btnText}>A-</Text>
        </TouchableOpacity>
        <TouchableOpacity onPress={saveForOfflineReading}>
          <Text style={styles.btnText}>{isOfflineSaved ? "✓ Đã lưu" : "Tải Offline"}</Text>
        </TouchableOpacity>
      </View>
      <ScrollView contentContainerStyle={styles.scrollContent}>
        <Text style={[styles.bookText, { fontSize: fontSize, lineHeight: fontSize * 1.6 }]}>
          {content}
        </Text>
      </ScrollView>
    </View>
  );
};

const styles = StyleSheet.create({
  container: { flex: 1, backgroundColor: '#FAF9F6' },
  controlPanel: { flexDirection: 'row', justifyContent: 'space-around', padding: 12, borderBottomWidth: 1, borderColor: '#DDD' },
  btnText: { fontSize: 16, fontWeight: 'bold', color: '#2C3E50' },
  scrollContent: { padding: 16 },
  bookText: { color: '#333333', textAlign: 'justify' }
});

3. Thuật toán Đề xuất Sách Cá nhân hóa (Hybrid Recommendation)

Thuật toán tính toán điểm phù hợp $Score(u, b)$ giữa người dùng $u$ và cuốn sách $b$ dựa trên trọng số thể loại yêu thích ($W_g$), tỷ lệ hoàn thành tác phẩm cùng tác giả ($W_a$) và xu hướng tương tác gần nhất:

$$Score(u, b) = \alpha \cdot Sim(Genre_u, Genre_b) + \beta \cdot Rating_b + \gamma \cdot ActivityRecency_u$$

Trong đó: $\alpha = 0.5$, $\beta = 0.3$, $\gamma = 0.2$ được tinh chỉnh qua thực nghiệm nhằm tối ưu hóa độ chính xác gợi ý trên tập dữ liệu kiểm thử.


Kiểm thử và Đánh giá hiệu năng (Testing & Validation)

Hệ thống trải qua quy trình kiểm thử toàn diện bao gồm Unit Testing (sử dụng Jest), Integration Testing và Kiểm thử chấp nhận người dùng (UAT):

+-----------------------------------------------------------------------------------+
|                              KẾT QUẢ KIỂM THỬ HỆ THỐNG                             |
+-----------------------------------------------------------------------------------+
|  - Unit Test Coverage: 84.2% (Toàn bộ Business Logic & Reducers)                  |
|  - Integration Test: 42/42 Use Cases Pass (Đăng ký, Đọc sách, Tóm tắt AI...)       |
|  - Thời gian khởi động ứng dụng (Cold Start): 1.25 giây                           |
|  - Thời gian phản hồi Tóm tắt AI trung bình: 1.68 giây                            |
|  - Tỷ lệ Crash-free sessions: 99.4% trên 50 thiết bị thử nghiệm                  |
+-----------------------------------------------------------------------------------+
  • Hiệu năng Render UI: Tốc độ khung hình duy trì ổn định ở mức 58–60 FPS khi cuộn trang đọc sách dài trên 10,000 từ nhờ áp dụng VirtualizedList và tối ưu cơ chế truyền nhận dữ liệu qua JS Bridge.
  • Thời gian nạp dữ liệu: Nhờ kiến trúc Realtime Database NoSQL và lập chỉ mục (Indexing) trường categoryId, thời gian lọc danh sách sách giảm từ 420ms xuống còn 85ms.

Đổi mới và đóng góp

  1. Ứng dụng AI phân cấp hai tầng (Hierarchical AI Summarization): Khác biệt với các ứng dụng đọc sách truyền thống, đồ án giới thiệu cơ chế tóm tắt hai cấp: tóm tắt nhanh từng chương (giúp người đọc nắm bắt nhịp truyện tức thì) và tóm tắt tổng quan cuốn sách (hỗ trợ việc ra quyết định chọn sách nhanh gấp 3.5 lần).
  2. Kiến trúc Serverless tối ưu hóa chi phí: Tận dụng triệt để hệ sinh thái Firebase (Auth, Database, Storage, Functions) giúp giảm 80% chi phí duy trì hạ tầng máy chủ so với mô hình triển khai máy chủ ảo (VPS/Dedicated Server) truyền thống.
  3. Cơ chế đồng bộ hóa Offline thông minh: Lưu trữ dữ liệu chương sách và tiến độ đọc tại máy cục bộ (AsyncStorage) kèm cơ chế tự động giải phóng các chương đã đọc từ lâu khi bộ nhớ đệm vượt quá 100MB, đảm bảo ứng dụng luôn nhẹ và mượt.

Ứng dụng thực tế và triển khai

Kịch bản sử dụng thực tế (Use Cases)

  • Sinh viên và Nhà nghiên cứu: Cần rà soát nhanh hàng chục tài liệu chuyên khảo; sử dụng tính năng tóm tắt AI để trích xuất luận điểm chính của từng chương trong vài giây.
  • Độc giả bận rộn: Đọc lướt bản tóm tắt nội dung để quyết định có nên dành thời gian đọc toàn bộ tác phẩm hay không.
  • Tác giả độc lập (Self-publishers): Tự do sáng tác tác phẩm mới trên ứng dụng, nhận phản hồi trực tiếp từ cộng đồng và sử dụng AI để tự động sinh bản tóm tắt hấp dẫn cho độc giả.
[ Lộ trình Triển khai Dự án ]
  ├── Giai đoạn 1 (Tháng 1-3): Phát hành bản Beta trên Google Play Store (Internal Testing)
  ├── Giai đoạn 2 (Tháng 4-6): Tích hợp Edge AI / On-device NLP giảm phụ thuộc API Cloud
  └── Giai đoạn 3 (Tháng 7-12): Mở rộng nền tảng Audio Book sinh bằng giọng đọc AI

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Tính năng tóm tắt AI phụ thuộc vào hạn ngạch (Rate Limit) và chi phí token của nhà cung cấp mô hình ngôn ngữ lớn bên thứ ba.
  • Chưa hỗ trợ xử lý mượt mà các file sách định dạng phức tạp như PDF chứa nhiều bảng biểu kỹ thuật hay hình ảnh vector nặng.

Hướng phát triển trong tương lai

  • Nghiên cứu tích hợp các mô hình ngôn ngữ nhẹ có thể chạy trực tiếp trên thiết bị (On-Device Small Language Models - SLMs) như Phi-3 hoặc Gemma-2B để thực hiện tóm tắt Offline mà không phát sinh chi phí API.
  • Tích hợp tính năng Text-to-Speech (TTS) sử dụng giọng đọc tự nhiên để chuyển đổi tự động văn bản thành Audiobook.
  • Bổ sung tính năng Social Reading: thảo luận và ghi chú chung theo từng đoạn văn bản (Inline Annotations).

Đối tượng hưởng lợi

  • Sinh viên & Độc giả trẻ: Tiết kiệm trung bình 45–60 phút mỗi tuần trong việc lựa chọn và lọc sách phù hợp với nhu cầu học tập, giải trí.
  • Lập trình viên di động: Cung cấp tài liệu tham khảo thực tế về việc tích hợp React Native với Firebase BaaS và xử lý tác vụ AI thời gian thực thông qua Cloud Functions.
  • Tác giả & Nhà xuất bản: Kênh tiếp cận trực tiếp độc giả mục tiêu mà không qua các khâu trung gian phức tạp, nâng cao khả năng lan tỏa tác phẩm.
  • Nhà nghiên cứu NLP: Dữ liệu thực nghiệm về mức độ hài lòng của người dùng đối với các bản tóm tắt văn bản do AI sinh ra trong môi trường ứng dụng di động thực tế.

Câu hỏi thường gặp

1. Ứng dụng yêu cầu cấu hình thiết bị như thế nào để vận hành mượt mà?

Hệ thống được tối ưu hóa cao độ, yêu cầu tối thiểu thiết bị chạy Android 6.0 (Marshmallow) hoặc iOS 12.0 trở lên, dung lượng RAM trống tối thiểu 500MB và bộ nhớ lưu trữ khả dụng khoảng 100MB cho dữ liệu bộ nhớ đệm.

2. Chi phí gọi API AI để tóm tắt sách được giải quyết như thế nào khi người dùng tăng cao?

Hệ thống áp dụng cơ chế Caching kết quả tóm tắt trong Database. Mỗi chương sách chỉ được mô hình AI xử lý tóm tắt một lần duy nhất khi được tải lên; các lần yêu cầu tóm tắt sau từ bất kỳ người dùng nào đều được đọc trực tiếp từ Database với chi phí API bằng 0.

3. Dữ liệu đọc sách ngoại tuyến có bị mất khi người dùng đăng xuất không?

Không. Tiến độ đọc và các chương sách đã lưu Offline được gắn định danh theo tài khoản và lưu an toàn tại AsyncStorage. Khi kết nối Internet trở lại, dữ liệu tiến độ sẽ tự động đồng bộ hai chiều với Firebase Realtime Database.

4. Hệ thống xử lý thế nào đối với các nội dung vi phạm bản quyền hoặc độc hại do người dùng tự đăng tải?

Hệ thống trang bị luồng Use Case "Báo cáo sách" (Report System). Khi nhận được báo cáo từ độc giả, tài khoản Admin có toàn quyền đình chỉ, ẩn nội dung hoặc xóa vĩnh viễn sách và khóa tài khoản tác giả vi phạm thông qua Admin Dashboard.

5. Khả năng mở rộng (Scalability) của hệ thống khi có trên 10,000 người dùng đồng thời?

Nhờ nền tảng Firebase Serverless, hệ thống tự động co giãn (Auto-scaling) theo tải truy cập. Firebase Realtime Database và Cloud Functions hỗ trợ hàng chục nghìn kết nối đồng thời với độ trễ dưới 200ms mà không cần can thiệp cấu hình phần cứng thủ công.


Kết luận

Đồ án "Phát triển ứng dụng đọc sách tích hợp với AI" của nhóm tác giả Phạm Công Minh và Trần Thị Mộng Trúc Ngân đã hoàn thành xuất sắc toàn bộ các mục tiêu nghiên cứu và phát triển phần mềm đề ra. Bằng việc kết hợp hài hòa giữa công nghệ di động đa nền tảng React Native, hạ tầng đám mây Firebase linh hoạt và sức mạnh của Trí tuệ nhân tạo hiện đại, dự án không chỉ mang lại một sản phẩm đọc sách hoàn chỉnh, tiện ích mà còn mở ra hướng tiếp cận mới trong việc cá nhân hóa trải nghiệm tiếp cận tri thức số. Đây là tiền đề vững chắc cho việc ứng dụng sâu rộng AI vào các giải pháp công nghệ giáo dục và xuất bản số trong tương lai.