1. Yêu cầu hệ thống
1.1 Sơ đồ hệ thống
1.2 Mô tả yêu cầu
[FR1] Hệ thống đọc tài liệu Ebook toán học dạng PDF, chỉ đọc các công thức toán học, đưa lên Giao diện
[FR2] Trên Giao diện: chuyển công thức toán từ ebook sang dạng LateX và dạng biểu thức toán học tương ứng, cho phép người dùng sửa nội dung trên giao diện. Khi sửa nội dung bên LateX thì bên Mathlive Symbol sẽ cập nhật theo, và ngược lại, sửa bên Mathlive Symbol thì bên LateX cũng cập nhật
[FR3] Khi người dùng bấm nút Submit, nội dung LateX sẽ được lưu xuống Database
1.3 Lựa chọn công nghệ
- Loại ứng dụng: Web app
- Back-end: Python (FastAPI)
- Front-end: React
- Database: PostgreSQL
1.4 Bài tập và câu hỏi
Bài tập
Trả lời các câu hỏi sau, ghi lại vào trong sổ tay môn học.
Câu 1a. Tài liệu dạng PDF là gì? Tại sao được sử dụng nhiều?
Câu 1b. Tài liệu dạng LateX là gì? Dùng để làm gì?
Câu 1c. Mathlive symbol là gì? Dùng để làm gì? Tại sao lại phải chuyển đổi qua lại giữa PDF - LateX; LateX - Mathlive symbol?
Câu 1d. Ứng dụng trên làm bằng Desktop app hay Web app thì tốt hơn? Giải thích tại sao?
Câu 1e. Phân tích ưu và nhược điểm khi lựa chọn giải pháp CSR (client-side rendering) và SSR (server-side rendering)
Câu hỏi ôn tập
Câu 1.1 Bạn có thể sử dụng các hệ quản trị cơ sở dữ liệu sau để lưu trữ dữ liệu? Đáp án nào không đúng?
A. React
B. PostgreSQL
C. MongoDB
D. SQLite
Câu 1.2 Bạn có thể sử dụng các công nghệ sau đây để xây dựng phần Backend của hệ thống, đáp án nào không đúng?
A. Node.js (Express)
B. PHP (Laravel)
C. Python (FastAPI)
D. JavaScript (ReactJS)
Câu 1.3 Giả sử bạn đang xây dựng ứng dụng OCR toán học cho các giáo viên ở vùng sâu vùng xa, nơi kết nối Internet rất chập chờn nhưng họ cần xử lý hàng trăm trang tài liệu mỗi ngày. Lựa chọn nào sau đây là tối ưu nhất về mặt kỹ thuật?
A. Xây dựng ứng dụng chạy trên nền tảng Cloud (SaaS)
B. Xây dựng Web App với giải pháp Server-Side Rendering (SSR)
C. Xây dựng Web App sử dụng Client-Side Rendering (CSR)
D. Xây dựng Desktop App chạy offline hoàn toàn trên máy tính
Câu 1.4 Nếu ưu tiên quan trọng nhất của dự án là tối ưu hóa SEO để các công thức toán học lưu trong Database có thể được tìm thấy dễ dàng trên Google, bạn nên áp dụng chiến lược nào cho phần Front-end?
A. Sử dụng React với Client-Side Rendering (CSR) thuần túy
B. Chỉ sử dụng Desktop App và không cần làm bản Web
C. Sử dụng Server-Side Rendering (SSR) để trả về nội dung HTML hoàn chỉnh
D. Lưu tất cả công thức dưới dạng hình ảnh thay vì LaTeX
-----
