Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin và truyền thông phát triển mạnh mẽ, việc số hóa và ứng dụng các nền tảng trực tuyến đã trở thành xu thế tất yếu trong đời sống xã hội. Sự phổ cập của mạng Internet và các thiết bị di động thông minh đã thay đổi căn bản phương thức tiếp cận thông tin và giải trí của người dùng. Mặc dù đọc sách vẫn là một nét văn hóa và hình thức giải trí được nhiều người ưa chuộng, việc tiếp cận những cuốn sách in truyền thống dày và nặng gặp không ít rào cản về tính cơ động và thời gian.

Nắm bắt nhu cầu thực tiễn đó, đề tài "Xây Dựng Ứng Dụng Nghe Sách Audiobook Trực Tuyến" được thực hiện trong khuôn khổ Đồ án cơ sở 2 tại Khoa Kỹ thuật Máy tính & Điện tử, Trường Đại học Công nghệ Thông tin & Truyền thông Việt – Hàn (Đà Nẵng), dưới sự hướng dẫn của TS. Phan Thị Lan Anh.

Mục tiêu nghiên cứu và nhiệm vụ của đề tài

  1. Mục tiêu tổng quát: Xây dựng một ứng dụng audiobook cho phép người dùng trải nghiệm việc tiếp nhận nội dung sách bằng giọng đọc âm thanh tiện lợi, giúp tiết kiệm thời gian, giảm căng thẳng và hỗ trợ phát triển kỹ năng ngôn ngữ, phát âm.
  2. Nhiệm vụ phía khách hàng:
    • Cung cấp chức năng tìm kiếm, tải xuống và phát lại sách audio từ kho dữ liệu.
    • Hỗ trợ người dùng đánh dấu trang (bookmark), ghi chú và tạo danh sách yêu thích.
    • Theo dõi tiến độ nghe sách và nhận đề xuất các tựa sách phù hợp.
  3. Nhiệm vụ phía người quản lý:
    • Quản lý danh mục, danh sách và nội dung chi tiết của từng cuốn sách audio.
    • Quản lý tài khoản người dùng, đơn hàng và thống kê doanh thu/lượt tải.
    • Bảo đảm tính ổn định của hệ thống và bảo mật an toàn thông tin cá nhân của người dùng.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và phát triển hệ thống ứng dụng đọc/nghe sách trực tuyến; cấu trúc dữ liệu lưu trữ media âm thanh và thông tin xuất bản.
  • Phạm vi thực hiện: Ứng dụng client trên nền tảng Android kết hợp hệ thống quản lý web back-end; dữ liệu kiểm thử tập trung vào các danh mục và album audiobook.
  • Thời gian thực hiện: Đồ án được triển khai trong 7 tuần (từ ngày 20/03/2023 đến ngày 07/05/2023) và nghiệm thu vào tháng 05/2023.

Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa phương pháp phân tích thiết kế hệ thống hướng đối tượng và quy trình phát triển ứng dụng di động - máy chủ:

  • Ngôn ngữ Kotlin: Ngôn ngữ lập trình đa năng do JetBrains phát triển, được sử dụng để xây dựng ứng dụng di động phía client nhờ tính an toàn kiểu dữ liệu, cú pháp ngắn gọn và khả năng tương thích hoàn toàn với nền tảng Android.
  • Framework Android Jetpack: Bộ công cụ và thư viện thành phần từ Google (bao gồm LiveData, ViewModel, Room, Paging, Navigation, WorkManager) hỗ trợ tổ chức kiến trúc ứng dụng, quản lý vòng đời dữ liệu, điều hướng màn hình và xử lý các tác vụ chạy ngầm.
  • Ngôn ngữ PHP (Hypertext Preprocessor): Ngôn ngữ kịch bản phía máy chủ (server-side) chịu trách nhiệm tiếp nhận và xử lý yêu cầu từ client, tương tác với cơ sở dữ liệu và cung cấp dữ liệu phản hồi.
  • Hệ quản trị cơ sở dữ liệu MySQL: Hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở hoạt động theo mô hình client-server, quản lý các bảng dữ liệu có quan hệ phục vụ lưu trữ thông tin người dùng, danh mục sách và các tệp âm thanh.
  • Phương pháp mô hình hóa UML: Sử dụng biểu đồ ca sử dụng (Use Case Diagram), biểu đồ lớp (Class Diagram), biểu đồ tuần tự (Sequence Diagram) và biểu đồ hoạt động (Activity Diagram) để đặc tả chi tiết luồng xử lý của hệ thống.

Thiết kế và triển khai

Hệ thống được thiết kế theo mô hình phân tầng, tách biệt giữa ứng dụng di động cho người dùng cuối và hệ thống xử lý phía máy chủ kết nối cơ sở dữ liệu.

1. Kế hoạch và tiến độ triển khai

Quá trình xây dựng ứng dụng được phân chia cụ thể theo từng tuần làm việc:

Tuần Khoảng thời gian Nội dung công việc thực hiện
Tuần 1 20/03 – 26/03/2023 Thảo luận với giảng viên hướng dẫn để hoàn thiện đề cương đồ án.
Tuần 2 27/03 – 02/04/2023 Nghiên cứu ngôn ngữ Kotlin và môi trường phát triển Android Studio.
Tuần 3 03/04 – 09/04/2023 Bắt đầu thiết kế các màn hình giao diện của ứng dụng.
Tuần 4 10/04 – 16/04/2023 Hoàn thiện toàn bộ các trang giao diện và thiết lập liên kết điều hướng.
Tuần 5 17/04 – 23/04/2023 Thiết kế cơ sở dữ liệu, kết nối hệ thống và viết các trang quản lý dữ liệu.
Tuần 6 24/04 – 30/04/2023 Chạy thử nghiệm hệ thống, kiểm thử lỗi chức năng.
Tuần 7 01/05 – 07/05/2023 Hoàn thiện sản phẩm và báo cáo đồ án.

2. Mô hình hóa tác nhân (Actors)

Hệ thống xác định hai tác nhân chính tham gia tương tác:

Tác nhân (Actor) Quyền hạn và công dụng trong hệ thống
Khách hàng Truy cập nội dung audiobook; tạo tài khoản, đăng nhập/đăng xuất; tìm kiếm sách theo tên/danh mục; nghe trực tiếp, tải sách để nghe offline; đánh dấu trang (bookmark).
Người quản lý Toàn quyền kiểm soát hệ thống; quản lý danh mục, danh sách và nội dung sách; quản lý tài khoản người dùng, đơn hàng và doanh thu; giám sát bảo mật hệ thống.

Nội dung chính theo từng chương

Chương 1. TỔNG QUAN VỀ ĐỀ TÀI

Chương 1 phân tích yêu cầu bài toán thực tế của việc số hóa trải nghiệm đọc sách. Tác giả chỉ ra rằng giới trẻ hiện đại có nhu cầu giải trí và tiếp nhận tri thức cao nhưng bị giới hạn về mặt thời gian và không gian khi mang theo sách giấy. Khảo sát thị trường cho thấy một hệ thống audiobook hoàn chỉnh cần đáp ứng hai mảng nghiệp vụ: quản lý phía người dùng (tìm kiếm, nghe trực tiếp, lưu trữ offline, đánh giá) và quản trị phía admin (quản lý sách, thể loại, banner, đơn hàng, người dùng). Chương này cũng trình bày tổng quan về các nền tảng kỹ thuật lựa chọn gồm Kotlin, PHP, MySQL và Android Jetpack.

Chương 2. PHÂN TÍCH THIẾT KẾ VÀ HỆ THỐNG

Chương này tập trung vào việc mô hình hóa hệ thống thông qua hệ thống biểu đồ UML:

  • Danh sách Use Case: Xác định 9 ca sử dụng cốt lõi bao gồm: Đăng ký, Đăng nhập, Đăng xuất, Quản lý danh mục audiobook, Quản lý danh sách audiobook, Quản lý nội dung audiobook, Xem thông tin audiobook, Tìm kiếm audiobook, và Tải audiobook.
  • Đặc tả Use Case chi tiết: Xây dựng kịch bản tương tác (tiền điều kiện, hậu điều kiện, luồng sự kiện chính) cho từng chức năng. Điển hình như ca sử dụng Tải audiobook cho phép người dùng đã đăng nhập tải tệp âm thanh về lưu trữ cục bộ trên thiết bị sau khi hệ thống kiểm tra quyền truy cập.
  • Hệ thống biểu đồ phân tích:
    • Biểu đồ Use Case tổng thể cho Khách hàng và Người quản lý.
    • Biểu đồ lớp (Class Diagram) định hình mối quan hệ giữa các thực thể.
    • 9 Biểu đồ tuần tự (Sequence Diagram) mô tả trình tự trao đổi thông điệp giữa Actor, Giao diện, Bộ điều khiển và Cơ sở dữ liệu.
    • 9 Biểu đồ hoạt động (Activity Diagram) thể hiện luồng nghiệp vụ chi tiết của từng ca sử dụng.

Chương 3. THIẾT KẾ CƠ SỞ DỮ LIỆU

Chương 3 trình bày cấu trúc dữ liệu quan hệ được triển khai trên MySQL nhằm đảm bảo tính toàn vẹn và tối ưu hóa truy vấn cho hệ thống:

STT Tên bảng Chức năng lưu trữ dữ liệu
1 user Lưu trữ thông tin tài khoản người dùng và thông tin đăng nhập/phân quyền.
2 category Danh mục phân loại các chủ đề/thể loại sách trong hệ thống.
3 Book Thông tin chi tiết của các đầu sách audio (tên sách, tác giả, giá, mô tả...).
4 Album Quản lý các tập âm thanh hoặc album sách tương ứng của từng đầu sách.
5 BookMark Lưu lại thông tin các cuốn sách hoặc vị trí nghe mà khách hàng đánh dấu.

Chương 4. XÂY DỰNG GIAO DIỆN TRANG WEB

(Tương ứng với phần xây dựng giao diện ứng dụng và trang quản lý) Chương này công bố các kết quả triển khai giao diện thực tế của hệ thống, bao gồm:

  • Trang chủ: Trình bày danh sách sách mới, danh mục nổi bật giúp người dùng dễ dàng duyệt sách.
  • Trang tìm kiếm: Hỗ trợ tìm kiếm nhanh theo từ khóa, tên tác giả hoặc thể loại.
  • Trang đăng nhập / Đăng ký: Biểu mẫu xác thực người dùng an toàn.
  • Danh sách Audio Book trong Album: Hiển thị các phần/chương sách thuộc một album cụ thể.
  • Giao diện nghe Audio: Trình phát âm thanh trực tuyến với các nút điều khiển phát, dừng, theo dõi thanh tiến trình (progress bar) và đánh dấu nội dung.

Kết quả và đóng góp

1. Kết quả chính đạt được

  • Xây dựng thành công ứng dụng nghe sách audio trực tuyến trên nền tảng di động với đầy đủ các luồng nghiệp vụ cơ bản.
  • Cung cấp giải pháp đọc sách tiện lợi, hỗ trợ trải nghiệm đa nhiệm (người dùng vừa di chuyển, làm việc, tập thể dục vừa có thể nghe sách).
  • Mở rộng khả năng tiếp cận tri thức cho các nhóm đối tượng đặc thù, bao gồm người bận rộn và người khiếm thị.
  • Tích hợp các tính năng nâng cao trải nghiệm như lưu dấu trang (BookMark), tải sách về máy để nghe ngoại tuyến và tìm kiếm đa tiêu chí.

2. Đóng góp của đề tài

  • Đóng góp một giải pháp ứng dụng hoàn chỉnh kết hợp giữa lập trình di động Android (Kotlin) và xử lý dữ liệu backend (PHP, MySQL).
  • Cung cấp tài liệu phân tích thiết kế hệ thống chi tiết (đặc tả use case, sơ đồ tuần tự, sơ đồ hoạt động, mô hình thực thể) cho một ứng dụng giải trí dạng media streaming.

Hạn chế và hướng nghiên cứu tiếp

1. Hạn chế

  • Thời gian nghiên cứu và thực hiện đồ án có hạn (7 tuần) nên một số tính năng tương tác cộng đồng sâu và phân tích dữ liệu hành vi người dùng chưa được triển khai hoàn chỉnh.
  • Mới tập trung vào định dạng và giao thức truyền phát âm thanh cơ bản, chưa tối ưu hóa nén dữ liệu cho các đường truyền mạng yếu.

2. Hướng nghiên cứu tiếp

  • Nghiên cứu thị trường: Đánh giá sâu hơn về xu hướng tiêu dùng, hành vi người dùng và mô hình cạnh tranh trong ngành xuất bản số và audiobook.
  • Nghiên cứu kỹ thuật và công nghệ âm thanh:
    • Tìm hiểu và áp dụng các định dạng âm thanh chuẩn hóa cao như MP3, AAC, FLAC nhằm nâng cao chất lượng âm thanh và giảm dung lượng tải.
    • Tích hợp các giao thức truyền phát trực tuyến chuyên nghiệp như HTTP Live Streaming (HLS) để tối ưu băng thông.
    • Nghiên cứu ứng dụng công nghệ nhận dạng giọng nói và tổng hợp giọng nói nhân tạo (Text-to-Speech) vào hệ thống.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho sinh viên các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Kỹ thuật Máy tính khi thực hiện các đồ án cơ sở, đồ án chuyên ngành hoặc khóa luận liên quan đến:

  1. Phương pháp phân tích thiết kế hệ thống phần mềm hướng đối tượng theo chuẩn UML.
  2. Quy trình lập trình ứng dụng Android bằng ngôn ngữ Kotlin kết hợp Android Jetpack.
  3. Kỹ thuật kết nối ứng dụng di động với cơ sở dữ liệu quan hệ MySQL thông qua các dịch vụ web PHP.

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

1. Ứng dụng Audiobook trong đồ án này phục vụ những nhóm đối tượng người dùng nào?

Hệ thống hướng đến người dùng có nhu cầu giải trí và đọc sách trên thiết bị di động, người bận rộn muốn kết hợp nghe sách trong lúc di chuyển/làm việc, người không thích đọc sách in truyền thống và người có khuyết tật thị giác.

2. Công nghệ nào được lựa chọn để phát triển ứng dụng di động và hệ thống máy chủ?

Ứng dụng di động được xây dựng bằng ngôn ngữ Kotlin kết hợp bộ thư viện Android Jetpack (LiveData, ViewModel, Room, Navigation). Phía máy chủ và cơ sở dữ liệu sử dụng ngôn ngữ lập trình PHP và hệ quản trị cơ sở dữ liệu quan hệ MySQL.

3. Cơ sở dữ liệu của hệ thống gồm những bảng dữ liệu chính nào?

Cơ sở dữ liệu gồm 5 bảng chính: user (lưu trữ thông tin người dùng), category (quản lý danh mục sách), Book (lưu thông tin đầu sách audio), Album (quản lý danh sách các album/chương âm thanh), và BookMark (lưu lại thông tin sách được người dùng đánh dấu).

4. Người dùng có thể nghe sách khi không có kết nối Internet hay không?

Có. Hệ thống cung cấp ca sử dụng Tải audiobook, cho phép khách hàng đã đăng nhập tải tệp sách audio về lưu trữ trực tiếp trên thiết bị để phát lại khi ngoại tuyến (offline).

5. Tác giả đề xuất những công nghệ nào cho hướng phát triển tiếp theo của hệ thống?

Các tác giả đề xuất nghiên cứu tích hợp các định dạng âm thanh nâng cao (MP3, AAC, FLAC), giao thức truyền phát trực tuyến HTTP Live Streaming (HLS) và công nghệ nhận dạng/xử lý giọng nói.


Kết luận

Đồ án "Xây Dựng Ứng Dụng Nghe Sách Audiobook Trực Tuyến" của sinh viên Lý Hữu Lộc và Đỗ Hữu Hiếu đã hoàn thành các mục tiêu đề ra về việc phân tích, thiết kế và hiện thực hóa một hệ thống phát audiobook trực tuyến. Thông qua việc áp dụng ngôn ngữ Kotlin, Android Jetpack, PHP và MySQL, đồ án đã chứng minh tính khả thi trong việc xây dựng ứng dụng di động phục vụ nhu cầu giải trí hiện đại. Tài liệu đồ án phản ánh đầy đủ quy trình từ khảo sát yêu cầu, thiết kế kiến trúc UML, xây dựng cơ sở dữ liệu đến thiết kế giao diện thực tế.