CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN 1. Khảo sát hiện trạng 1. Nhu cầu thực tế đề tài 1.
Khảo sát một số ứng dụng hiện có 1. Giới thiệu Wattpad là một nền tảng đọc và viết sách trực tuyến, cho phép người dùng khám phá và chia sẻ hàng triệu câu chuyện do cộng đồng sáng tạo. Với một giao diện thân thiện và dễ sử dụng, Wattpad không chỉ là nơi để đọc sách mà còn là một cộng đồng cho những người yêu thích viết lách. Đây cũng là một trong những app đọc sách tiêu biểu có cộng đồng lớn hiện tại.
Giới thiệu Amazon Kindle là một ứng dụng đọc sách điện tử hàng đầu, được phát triển bởi Amazon, cho phép người dùng truy cập vào một kho tàng sách khổng lồ ngay trên thiết bị di động của họ. Với Kindle, bạn có thể dễ dàng tìm kiếm, mua và đọc hàng triệu cuốn sách, tạp chí và tài liệu từ mọi thể loại. Mục tiêu - Ứng dụng cung cấp các tính năng hỗ trợ việc tìm kiếm, đọc và tóm tắt nội dung sách, giúp người dùng dễ dàng tiếp cận thông tin và cảm nhận văn học. - Người dùng có thể lưu trữ danh sách sách yêu thích, nhận đề xuất sách dựa trên sở thích cá nhân, từ đó nâng cao mức độ tương tác và sự hài lòng.
- Ứng dụng được thiết kế với khả năng mở rộng cao, cho phép dễ dàng thêm các tính năng mới như hỗ trợ đọc sách trực tuyến, chức năng bình luận, hoặc tích hợp AI để tóm tắt nội dung. - Giao diện thân thiện với người dùng. - Chủ hệ thống có thể phát triển dễ dàng với chi phí thấp. - Hệ thống gọn nhẹ.
- Có thể mở rộng dễ dàng 1. Đối tượng sử dụng - Những người đang học tập cần tài liệu tham khảo, sách giáo khoa và các nguồn tài liệu bổ sung để phục vụ cho việc học tập và nghiên cứu. - Những người sáng tác muốn xuất bản tác phẩm của mình, tìm kiếm độc giả và nhận phản hồi từ cộng đồng sáng tạo. - Các tổ chức muốn sử dụng ứng dụng để phát hành sách điện tử và tiếp cận độc giả mới thông qua nền tảng trực tuyến.
- Những người cần tìm kiếm tài liệu giảng dạy và sách tham khảo cho học sinh, cũng như muốn khuyến khích học sinh tham gia đọc sách. - Các chuyên gia muốn theo dõi xu hướng đọc sách, tìm kiếm nội dung để phát triển ý tưởng hoặc nghiên cứu thị trường. - Những người đam mê công nghệ và muốn sử dụng các tính năng tiên tiến như tóm tắt nội dung tự động và đề xuất sách dựa trên sở thích cá nhân. Yêu cầu chức năng • Đối với người dùng o Quản lý tài khoản (đăng nhập, đăng ký, cập nhật thông tin cá nhân và mật khẩu) o Tìm kiếm sách.
o Chọn lựa sách. o Nhận đề xuất sách 1. Yêu cầu phi chức năng • Yêu cầu về giao diện: - Giao diện thân thiện, bố cục hợp lý, dễ sử dụng. - Giao diện thống nhất, đồng bộ, không gây bất ngờ cho người sử dụng.
- Màu sắc, vị trí, hiển thị của các component có tính đồng bộ. • Yêu cầu về độ tin cậy, bảo mật: - Có sử dụng phân quyền cho từng loại người dùng. (người dùng thường, quản trị viên) - Dữ liệu tài khoản người dùng được bảo mật. - Dữ liệu không bị xóa hoàn toàn, có thể khôi phục lại.
• Yêu cầu về độ tương thích: o Đối với hệ điều hành di động - Android: Hỗ trợ từ phiên bản Android 6. - iOS: Hỗ trợ từ phiên bản iOS 12 trở lên.Chrome: 2 version gần nhất • Yêu cầu về khả năng phát triển: - Dễ dàng nâng cấp tính năng đã có nhờ vào sự hệ thống hóa trong khâu xử lý. - Dễ dàng mở rộng khi có nhu cầu phát triển. • Yêu cầu về tính hiệu quả: - Hệ thống quản lý dữ liệu một cách logic.
- Hiệu năng ổn định tránh gây khó chịu cho người dùng. - Có khả năng chịu tải tốt. - Khả năng mở rộng tùy chỉnh phụ thuộc theo tình hình tài chính của chủ sở hữu. NỀN TẢNG LÝ THUYẾT VÀ CÔNG NGHỆ 2.
Công nghệ sử dụng 2. React Native React Native là một framework mã nguồn mở được phát triển bởi Facebook, cho phép lập trình viên xây dựng ứng dụng di động đa nền tảng (iOS và Android) bằng cách sử dụng JavaScript và React. Framework này ra mắt lần đầu vào năm 2015 và nhanh chóng trở thành một trong những công cụ phổ biến nhất trong phát triển ứng dụng di động. Hình 2-1 Logo thư viện React1 2.
Tính năng nổi bật - Tái sử dụng mã nguồn: React Native cho phép lập trình viên viết mã một lần và chạy trên cả hai nền tảng iOS và Android, giúp tiết kiệm thời gian và công sức phát triển. - Hiệu suất gần như native: React Native biên dịch mã JavaScript thành mã máy, giúp ứng dụng hoạt động nhanh chóng và hiệu quả. Điều này giúp cải thiện hiệu suất so với các ứng dụng web được nhúng vào ứng dụng di động. - Giao diện người dùng linh hoạt: React Native sử dụng các thành phần giao diện người dùng (UI components) có thể tùy chỉnh, cho phép tạo ra giao diện tương tác và hấp dẫn.
Các thành phần này có thể dễ dàng kết hợp và sử dụng lại. - Hot Reloading: Tính năng hot reloading cho phép lập trình viên xem ngay lập tức các thay đổi mà không cần khởi động lại ứng dụng. Điều này giúp tăng tốc độ phát triển và cải thiện quy trình làm việc. - Cộng đồng lớn và phong phú: Với sự hỗ trợ từ Facebook và một cộng đồng lớn các nhà phát triển, React Native có rất nhiều thư viện, plugin, và tài nguyên sẵn có để hỗ trợ quá trình phát triển.
Kiến trúc React Native sử dụng kiến trúc component-based, cho phép lập trình viên chia ứng dụng thành các thành phần nhỏ, dễ quản lý và tái sử dụng. Mỗi component có thể có trạng thái riêng và có thể kết hợp với nhau để tạo ra giao diện phức tạp. - Components: Các thành phần cơ bản như View, Text, Image, và ScrollView giúp xây dựng giao diện người dùng. 1 Nguồn https://reactnative.dev/ 31 - APIs: React Native cung cấp nhiều API để tương tác với các tính năng của thiết bị, chẳng hạn như camera, GPS, và lưu trữ.
- Navigation: React Native hỗ trợ các thư viện điều hướng như React Navigation và React Native Navigation, giúp quản lý điều hướng giữa các màn hình trong ứng dụng. JS Bridge JS Bridge là một phần quan trọng trong cách React Native hoạt động, cho phép giao tiếp giữa mã JavaScript và mã native (mã gốc của hệ điều hành). Cấu trúc: React Native sử dụng một cơ chế cầu nối để kết nối hai thế giới này. Mã JavaScript chạy trong một thread riêng biệt (JavaScript thread), trong khi mã native (thường được viết bằng Swift/Objective-C cho iOS và Java/Kotlin cho Android) chạy trong các thread riêng biệt của nền tảng.
Hình 2-6 JS Bridge Cách thức này cho phép React Native duy trì hiệu suất cao, vì mã JavaScript có thể xử lý logic ứng dụng mà không bị chậm do các thao tác giao diện. Điều này cũng giúp ứng dụng có thể truy cập nhanh chóng vào các API của thiết bị. Virtual DOM React Native sử dụng một phiên bản ảo của DOM, giúp tăng tốc độ cập nhật giao diện bằng cách chỉ cập nhật các phần thay đổi, thay vì làm mới toàn bộ giao diện. Lợi ích - Tiết kiệm chi phí: Do khả năng tái sử dụng mã nguồn, doanh nghiệp có thể tiết kiệm chi phí phát triển và bảo trì ứng dụng.
32 - Thời gian phát triển nhanh: Các tính năng như hot reloading giúp giảm thời gian phát triển và giúp lập trình viên tập trung vào việc cải thiện trải nghiệm người dùng. - Khả năng mở rộng: Các ứng dụng được xây dựng bằng React Native có thể dễ dàng mở rộng và tích hợp với các dịch vụ và API khác. Firebase Hình 2-12 Logo Firebase Firebase là một nền tảng phát triển ứng dụng do Google cung cấp, bao gồm nhiều dịch vụ hữu ích cho việc xây dựng và phát triển ứng dụng. Firebase cho phép lưu trữ và đồng bộ hóa dữ liệu theo thời gian thực, giúp người dùng truy cập và cập nhật thông tin một cách nhanh chóng và hiệu quả.
Các tính năng chính của Firebase bao gồm: - Realtime Database: Cho phép lưu trữ dữ liệu trong thời gian thực, giúp cập nhật ngay lập tức giữa các người dùng. - Authentication: Hỗ trợ xác thực người dùng với nhiều phương thức như email, Google, Facebook, và các dịch vụ khác. - Cloud Storage: Dễ dàng lưu trữ và quản lý tệp tin như hình ảnh, video, và tài liệu. - Hosting: Cung cấp hosting cho ứng dụng web, giúp triển khai nhanh chóng và bảo mật.
PHÂN TÍCH THIẾT KẾ ỨNG DỤNG 3. Danh sách Actors STT Tên Actor Ý nghĩa Quản trị viên (Admin) Quản trị viên là người có quyền truy cập cao nhất trong hệ thống, chịu trách nhiệm quản lý 1 nội dung và người dùng, xử lý các báo cáo và cấu hình các cài đặt của hệ thống. Người dùng (User) Người dùng là người sử dụng hệ thống thông thường, có thể truy cập thư viện sách, đọc và 2 tương tác với nội dung, cũng như tải lên và quản lý các câu chuyện hoặc sách của riêng mình. Hệ thống AI (AI Hệ thống trí tuệ nhân tạo tích hợp hỗ trợ người System) dùng.
Nó cung cấp tính năng tóm tắt nội dung, 3 đề xuất sách và phân tích thói quen đọc sách của người dùng để đưa ra các gợi ý phù hợp với sở thích của họ.1 Bảng danh sách các actors 3. Danh sách các Use case Usecase chính Phân rã Use-case Ý nghĩa/Ghi chú Đăng nhập Người dùng có thể đăng nhập bằng tài khoản cá nhân, Google, Facebook. Đăng ký tài khoản Người dùng mới có thể tạo tài khoản mới. Quên mật khẩu Người dùng có thể reset mật khẩu qua Quản lý tài email hoặc OTP.
khoản Quản lý hồ sơ Người dùng có thể chỉnh sửa thông tin cá nhân. Đăng xuất Người dùng có thể đăng xuất khỏi tài khoản. Xóa tài khoản Người dùng có thể xóa tài khoản của mình. 34 Tìm kiếm sách Người dùng có thể tìm kiếm sách theo tên, tác giả, thể loại.
Duyệt theo thể loại Người dùng có thể lọc sách theo thể loại. Xem chi tiết sách Xem thông tin sách, bình luận, đánh Tương tác với giá, thêm vào yêu thích. thư viện sách Đọc sách Người dùng có thể đọc sách Đọc offline Người dùng có thể tải sách về và đọc offline. Thư viện cá nhân Quản lý lịch sử, sách yêu thích, đã đọc.
Thêm vào yêu thích Người dùng có thể thêm sách vào danh sách yêu thích. Bình luận và đánh giá Người dùng có thể bình luận, đánh giá sách.