Tải bản đầy đủ (.pdf) (27 trang)

Đồ án xây dựng ứng dụng ebook

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.12 MB, 27 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1
XÂY DỰNG ỨNG DỤNG EBOOK

GIẢNG VIÊN HƯỚNG DẪN
ThS. Thái Thụy Hàn Uyển

Sinh viên thực hiện:
Lữ Đình Long - 20521565
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH


TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

ĐỒ ÁN 1
XÂY DỰNG ỨNG DỤNG EBOOK

GIẢNG VIÊN HƯỚNG DẪN
ThS. Thái Thụy Hàn Uyển

Sinh viên thực hiện:
Lữ Đình Long - 20521565


LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến cơ đã hướng


dẫn, tạo điều kiện cho em hồn thành đồ án mơn Đồ án 1.
Trong vịng 11 tuần, qua các buổi học, nhờ sự chỉ dẫn nhiệt tình của cô, em đã tiếp thu
được những kiến thức quan trọng, bổ ích cùng những góp ý chân thành để có thể làm
được một đồ án hoàn chỉnh. Trong khoảng thời gian thực hiện đồ án, em đã học hỏi
thêm được nhiều kiến thức, kinh nghiệm, biết được quy trình để tạo ra một sản phẩm
phần mềm.
Bên cạnh đó, em xin cảm ơn các bạn bè trong lớp đã động viên, thảo luận và góp ý
cho em đồng thời đã khơi thêm nguồn động lực cho nhóm trong suốt q trình đầy
khó khăn.
Mặc dù đã cố gắng hồn thành báo cáo với tất cả nỗ lực song báo cáo của em chắc
chắn khơng tránh khỏi những thiếu sót, em rất mong nhận được sự thơng cảm và góp
ý chân thành từ cơ. Em xin chân thành cảm ơn.

Thành phố Hồ Chí Minh, tháng 6 năm 2023
Lữ Đình Long


NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................

................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................

Tp.HCM, ngày ... tháng 6 năm 2023
GVHD
ThS. Thái Thụy Hàn Uyển


MỤC LỤC
Chương 1 - Thông tin chung .............................................................................. 7
1.1

Tên đề tài .................................................................................................. 7

1.2

Thông tin sinh viên ................................................................................... 7

1.3


Môi trường phát triển ............................................................................... 7

1.4

Môi trường triển khai ............................................................................... 7

Chương 2 - Ngơn ngữ lập trình và cơng nghệ .................................................. 8
1.1

Dart ........................................................................................................... 8

1.1.1

Dart là gì? ........................................................................................... 8

1.1.2

Lợi ích khi sử dụng Dart .................................................................... 9

1.2

Flutter ....................................................................................................... 9

1.2.1

Flutter là gì? ....................................................................................... 9

1.2.2


Tại sao dùng Flutter?........................................................................ 10

1.2.3

Đặc điểm nổi bật .............................................................................. 10

Chương 3 – Tổng quan ..................................................................................... 11
3.1

Khảo sát hiện trạng ................................................................................. 11

3.2

Phát biểu bài toán ................................................................................... 11

3.3

Yêu cầu ................................................................................................... 11

3.3.1

Yêu cầu chức năng ........................................................................... 11

3.3.2

Yêu cầu phi chức năng ..................................................................... 12

Chương 4 - Thiết kế cơ sở dữ liệu.................................................................... 13
4.1


Sơ đồ ERD .............................................................................................. 13

4.2

Mô tả chi tiết........................................................................................... 13

4.2.1

Ebook ............................................................................................... 13

4.2.2

AudioBook ....................................................................................... 14

4.2.3

Genre ................................................................................................ 15

4.2.4

Genre_ebook .................................................................................... 15

4.2.5

Genre_audio_book ........................................................................... 15

4.2.6

ChapterMp3...................................................................................... 16



4.2.7

Library_ebook .................................................................................. 16

4.2.8

Library_audio_book ......................................................................... 16

Chương 5 - USE CASE ..................................................................................... 17
5.1

Sơ đồ Use Case ....................................................................................... 17

Chương 6 - Thiết kế giao diện .......................................................................... 18
6.1

Sơ đồ liên kết màn hình .......................................................................... 18

6.2

Danh sách màn hình ............................................................................... 18

6.3

Mơ tả màn hình....................................................................................... 19

6.3.1

Splash Screen ................................................................................... 19


6.3.2

Onboarding Screen ........................................................................... 20

6.3.3

Home Screen .................................................................................... 20

6.3.4

Library Screen .................................................................................. 20

6.3.5

Ebook Screen ................................................................................... 21

6.3.6

AudioBook Screen ........................................................................... 22

6.3.7

Genre Screen .................................................................................... 23

6.3.8

Detail Ebook Screen......................................................................... 23

6.3.9


Detail AudioBook Screen ................................................................ 24

6.3.10 Reading Ebook Screen ..................................................................... 24
6.3.11 Listening AudioBook Screen ........................................................... 25
6.3.12 Search Screen ................................................................................... 25
Chương 7 - Kết luận.......................................................................................... 26
7.1

Ưu điểm .................................................................................................. 26

7.2

Nhược điểm ............................................................................................ 26

7.3

Hướng phát triển..................................................................................... 26

TÀI LIỆU THAM KHẢO ................................................................................ 27


Chương 1 - Thông tin chung
1.1 Tên đề tài
 Xây dựng ứng dụng Ebook
1.2 Thông tin sinh viên
 MSSV: 20521565
 Họ và tên: Lữ Đình Long
 Email:
1.3 Mơi trường phát triển

 Visual Studio Code: Viết mã
 Android Studio: Giả lập Android
 Material Design: Style phong cách Google cho ứng dụng Flutter
1.4 Môi trường triển khai
 Android và iOS


Chương 2 - Ngơn ngữ lập trình và cơng nghệ
1.1 Dart
1.1.1 Dart là gì?
Tổng quan
 Dart là ngơn ngữ được tối ưu cho client để phát triển các ứng dụng một
cách nhanh chóng trên mọi nền tảng. Mục tiêu của Dart là trở thành một
ngôn ngữ năng suất cao nhất cho việc phát triển đa nền tảng với nền tảng
runtime linh hoạt cho các framework.
 Dart cũng là nền tảng của Flutter. Dart cung cấp ngôn ngữ và môi trường
chạy cho Flutter, nhưng Dart cũng hỗ trợ các khía cạnh khác như
formatting, analyzing, testing.
Ngôn ngữ
 Dart là ngôn ngữ type-safe, nó sử dụng cơ chế kiểm tra static type để đảm
bảo rằng giá trị của một biến luôn trùng với static type của biến đó. Đơi
khi nó được đề cập như là sound typing. Mặc dù kiểu dữ liệu thì bắt buộc,
nhưng type annotation thì khơng bắt buộc bởi vì cơ chế type inference.
 Dart cho phép kiểu dữ liệu dynamic kết hợp với runtime check, rất hữu
dụng trong những trường hợp cụ thể.
Thư viện
 Dart có một tập hợp các core libraries phong phú, cung cấp căn bản cho
các tác vụ hằng ngày của nhà phát triển:
o Built-in types, collections, and core functionality khác cho mỗi
chương trình Dart (dart::core).

o Collection types như queues, linked lists, hashmaps, and binary
trees (dart:collection).
o Encoders và decoders cho việc chuyển đổi giữa các dạng dữ liệu
với nhau, bao gồm JSON và UTF-8 (dart:convert).
o Hàm và các hằng số toán học, và lấy số ngẫu nhiên (dart:math).
o File, socket, HTTP, and hỗ trợ I/O khác cho các ứng dụng non-web
(dart:io).
o Hỗ trợ asynchronous programming, với class như Future và Stream
(dart:async).
o Và còn nhiều các thư viện khác.
 Ngồi các core libraries, cịn có rất nhiều API được publish lên pub.dev
bởi đội ngũ phát triển của Google.
Nền tảng
 Native platform: Nhắm vào thiết bị di động và desktop, bao gồm Dart
VM cùng với bộ biên dịch just-in-time (JIT) và ahead-of-time (AOT).


 Web platform: Nhắm vào ứng dụng web, bao gồm bộ biên dịch Dart sang
Javascript.

1.1.2 Lợi ích khi sử dụng Dart
 Năng suất: Cú pháp Dart rõ ràng và súc tích, cơng cụ của nó đơn giản
nhưng mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế.
 Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có
được dự đốn hiệu suất cao và khởi động nhanh trên các thiết bị di động
và web.
 Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của Dart
có thể chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với các ứng
dụng web, chuyển mã từ Dart sang JavaScript.
 Dễ gần: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú

pháp và định hướng đối tượng.
 Reactive: Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản
lý các đối tượng tồn tại trong thời gian ngắn.
1.2 Flutter

1.2.1 Flutter là gì?
 Flutter là mobile UI framework của Google để tạo ra các giao diện chất
lượng cao trên iOS và Android trong khoảng thời gian ngắn. Flutter hoạt
động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ
chức.
 Flutter hồn tồn miễn phí và cũng là mã nguồn mở.


1.2.2 Tại sao dùng Flutter?
 Nếu bạn đang tìm kiếm các phương pháp thay thế để phát triển ứng dụng
Android, bạn nên cân nhắc thử Flutter của Google, một framework dựa
trên ngơn ngữ lập trình Dart.
 Các ứng dụng được xây dựng với Flutter hầu như không thể phân biệt với
những ứng dụng được xây dựng bằng cách sử dụng Android SDK, cả về
giao diện và hiệu suất. Hơn nữa, với những tinh chỉnh nhỏ, chúng có thể
chạy trên thiết bị iOS.
 Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều
tính năng hữu ích như mixin, generic, isolate, và static type.
 Flutter có các thành phần UI của riêng nó, cùng với một cơ chế để kết
xuất chúng trên nền tảng Android và iOS. Hầu hết các thành phần giao
diện người dùng, đều sẵn dùng, phù hợp với các nguyên tắc của Material
Design.
 Các ứng dụng Flutter có thể được phát triển bằng cách sử dụng IntelliJ
IDEA, một IDE rất giống với Android Studio.
1.2.3 Đặc điểm nổi bật

 Fast Development: Tính năng Hot Reload hoạt động trong milliseconds
để hiện thị giao diện tới bạn. Sử dụng tập hợp các widget có thể
customizable để xây dựng giao diện trong vài phút. Ngồi ra Hot Reload
cịn giúp bạn thêm các tính năng, fix bug tiết kiệm thời gian hơn mà
không cần phải thông qua máy ảo, máy android hoặc iOS.
 Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng
giao diện của Flutter vô cùng đẹp mắt theo phong cách Material Design
và Cupertino, hỗ trợ nhiều các APIs chuyển động, smooth scrolling…
 Native Performance: Các widget của Flutter kết hợp các sự khác biệt của
các nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một
hiệu năng tốt nhất tới iOS và Android.


Chương 3 – Tổng quan
3.1 Khảo sát hiện trạng
• Cùng với sự phát triển của công nghệ và sự phổ biến của các thiết bị di động,
việc đọc sách điện tử trở nên ngày càng phổ biến. Người dùng có thể tiếp cận
với hàng ngàn quyển sách từ điện thoại di động, máy tính bảng hoặc đọc sách
trên các thiết bị đọc sách chuyên dụng.
• Ứng dụng ebook cung cấp sự tiện lợi và linh hoạt cho người đọc. Người dùng
có thể mang theo hàng trăm, thậm chí hàng ngàn quyển sách trong một thiết bị
nhỏ gọn và dễ dàng tiếp cận sách mọi lúc, mọi nơi. Điều này giúp tiết kiệm
không gian vật lý và giảm sự phụ thuộc vào sách giấy truyền thống.
• Ứng dụng ebook thường cung cấp các tính năng tiện ích như đánh dấu trang,
ghi chú, tìm kiếm nhanh, đổi font chữ, điều chỉnh kích thước chữ, đọc trong chế
độ ban đêm, và nhiều tính năng khác. Nhờ đó, người dùng có thể tùy chỉnh trải
nghiệm đọc sách của mình theo ý thích và nhu cầu cá nhân.
• Tuy nhiên, một số người vẫn có sự ưu tiên cho sách giấy truyền thống vì cảm
giác chạm vào sách và trải nghiệm hình ảnh trực tiếp trên trang giấy. Đồng thời,
còn một số thách thức như khó khăn trong việc đọc sách trên màn hình nhỏ, mệt

mỏi cho mắt, hoặc vấn đề bản quyền khi sử dụng sách điện tử.
3.2 Phát biểu bài tốn
Tầm nhìn

Áp dụng các kiến thức về lập trình
thiết bị di động và Flutter để xây dựng
ứng dụng ebook

Mục tiêu

Hướng tới một ứng dụng có giao diện
hiện đại, dễ dàng sử dụng, phù hợp
cho mọi đối tượng có nhu cầu đọc và
nghe sách.

Đối tượng

Những cá nhân có nhu cầu đọc sách ,
nghe sách.

3.3 Yêu cầu
3.3.1 Yêu cầu chức năng


 Đọc sách điện tử: Cho phép đọc sách điện tử trên nhiều thiết bị khác
nhau, bao gồm máy tính, điện thoại thơng minh và máy tính bảng.
 Nghe sách điện tử: Cho phép nghe sách điện tử trên nhiều thiết bị khác
nhau, bao gồm máy tính, điện thoại thơng minh và máy tính bảng cùng
với nhiều tính năng: chọn chương, thay đổi tốc độ nghe.
 Thư viện sách : Cho phép quản lý sách điện tử đã tải , u thích của mình.

 Tìm kiếm: Cung cấp khả năng tìm kiếm sách để phù hợp với nhu cầu và
sở thích của người đọc.
 Đánh dấu và ghi chú: Cho phép người dùng đánh dấu trang và tạo ghi chú
cho các phần trong sách mà họ quan tâm đến.
 Lịch sử nghe đọc: Ghi lại lịch sử nghe đọc sách của người dùng để tiện
cho việc tiếp tục nghe đọc.
 Sách theo sở thích: Hiển thị những cuốn sách theo sở thích của người
dùng.
 Hẹn giờ đọc sách: Cho phép người dùng hẹn giờ để thông báo nhắc nhở
đọc sách.
3.3.2 Yêu cầu phi chức năng
 Giao diện thân thiện: Cung cấp một giao diện thân thiện, dễ sử dụng để
người dùng có thể dễ dàng tìm kiếm và đọc sách.
 Tương thích với nhiều thiết bị: Hỗ trợ ios và android
 Tốc độ tải sách nhanh: Cung cấp tốc độ tải sách nhanh và ổn định để
người dùng có thể đọc sách một cách liền mạch.
 Bảo mật thông tin: Bảo vệ thông tin cá nhân của người dùng và đảm bảo
rằng các thơng tin nhạy cảm khơng bị rị rỉ hoặc lộ ra bên ngoài.


Chương 4 - Thiết kế cơ sở dữ liệu
4.1 Sơ đồ ERD

Hình 1.1 Sơ đồ ERD

4.2 Mơ tả chi tiết
4.2.1 Ebook
STT Tên thuộc tính Kiểu Ràng buộc
PK


Ý nghĩa/ghi chú
Mã sách điện tử

1

ebook_id

UUID

2

title

text

Tiêu đề sách

3

image

text

Ảnh sách

4

author

text


Tên tác giả


5

year

text

Năm xuất bản

6

view

text

Lượt xem

7

publisher

text

Tên nhà xuất bản

8


pages

int

Số trang sách

9

description

text

Thông tin mô tả sách

10

epub

text

Lưu file epub của sách

11

createAt

int

Thời gian sách được tạo


12

isFavorite

bool

Sách có được u thích khơng?

Bảng 1. 2 Mơ tả chi tiết bảng Ebook

4.2.2 AudioBook
STT Tên thuộc tính Kiểu Ràng buộc
1

audio_book_id UUID

PK

Ý nghĩa/ghi chú
Mã sách nói

2

title

text

Tiêu đề sách

3


image

text

Ảnh sách

4

author

text

Tên tác giả

5

year

text

Năm xuất bản

6

listen

text

Lượt nghe


7

publisher

text

Tên nhà xuất bản


8

description

text

Thông tin mô tả sách

9

epub

text

Lưu file epub của sách

10

createAt


int

Thời gian sách được tạo

11

isFavorite

bool

Sách có được u thích khơng?

Bảng 1. 3 Mơ tả chi tiết bảng AudioBook

4.2.3 Genre
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1

genre _id

UUID

2

name

text

Mã thể loại


PK

Tên thể loại

Bảng 1. 4 Mô tả chi tiết bảng Genre

4.2.4 Genre_ebook
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú
1

genre _id

UUID

FD

Mã thể loại

2

ebook _id

UUID

FD

Mã sách điện tử

Bảng 1. 5 Mô tả chi tiết bảng Genre_ebook


4.2.5 Genre_audio_book
STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/ghi chú


1
2

UUID

FD

Mã thể loại

audio_book _id UUID

FD

Mã sách nói

genre _id

Bảng 1. 6 Mơ tả chi tiết bảng Genre_audio_book

4.2.6 ChapterMp3
STT Tên thuộc tính
1

Kiểu Ràng buộc

chapter_mp3 _id UUID


Ý nghĩa/ghi chú
Mã chương sách nghe

FK

2

title

Text

Tên chương

3

url

Text

File nghe của chương

Bảng 1. 7 Mô tả chi tiết bảng ChapterMp3

4.2.7 Library_ebook
STT Tên thuộc tính Kiểu Ràng buộc
1

lib_ebook _id


UUID

Ý nghĩa/ghi chú
Mã thư viện sách điện tử

FK

Bảng 1. 8 Mô tả chi tiết bảng Library_ebook

4.2.8 Library_audio_book
STT
1

Tên thuộc tính

Kiểu Ràng buộc

lib_audio_book _id UUID

FK

Ý nghĩa/ghi chú
Mã thư viện sách nói

Bảng 1. 9 Mơ tả chi tiết bảng Library_audio_book


Chương 5 - USE CASE
5.1 Sơ đồ Use Case


Hình 2. 1 Sơ đồ Use Case


Chương 6 - Thiết kế giao diện
6.1 Sơ đồ liên kết màn hình

Hình 2. 2 Sơ đồ liên kết màn hình

6.2 Danh sách màn hình
STT
1
2
3
4
5
6
7

Tên màn hình
Màn hình Splash
Màn hình
Onboarding
Màn hình Main
Màn hình Home
Màn hình Library
Màn hình Ebook
Màn hình

Chức năng
Hiển thị khi mở ứng dụng

Hiển thị thông tin về ứng dụng
Chứa thơng tin về các màn hình khác
Hiển thị các thông tin về sách, lịch sử đọc sách…
Quản lý thư viên sách của người dùng
Hiển thị thông tin về các sách điện tử
Hiển thị thơng tin về các sách nói


8
9
10
11
12
13

AudioBook
Màn hình Search
Màn hình Ebook
Detail
Màn hình
AuioBook Detail
Màn hình Genre
Màn hình Reading
Ebook

Cho phép người dùng tìm kiếm sách theo nhu cầu
Hiển thị chi tiết thông tin sách điện tử
Hiển thị chi tiết thơng tin sách nói

Hiển thị sách theo thể loại

Cho phép người dùng đọc sách và thực hiện nhiều
chức năng khác : ghi chú , đánh dấu…
Cho phép người dùng nghe sách và thực hiện nhiều
Màn hình Listening
chức năng khác : thay đổi tốc độ đọc, chuyển
AudioBook
chương nghe
Bảng 2. 3 Danh sách màn hình

6.3 Mơ tả màn hình
6.3.1 Splash Screen

Hình 2. 4 Splash Screen

6.3.2 Onboarding Screen


Hình 2. 5 Onboarding Screen

6.3.3 Home Screen

Hình 2. 6 Home Screen

6.3.4 Library Screen


Hình 2. 7 Library Screen 1

Hình 2. 8 Library Screen 2


6.3.5 Ebook Screen


Hình 2. 9 Ebook Screen

6.3.6 AudioBook Screen

Hình 3. 1 AudioBook Screen


6.3.7 Genre Screen

Hình 3. 2 Genre Screen

6.3.8 Detail Ebook Screen

Hình 3. 3 Detail Ebook Screen


6.3.9 Detail AudioBook Screen

Hình 3. 4 Detail AudioBook Screen

6.3.10 Reading Ebook Screen

Hình 3. 5 Reading Ebook Screen


6.3.11 Listening AudioBook Screen


Hình 3. 6 Listening AudioBook Screen

6.3.12 Search Screen

Hình 3. 7 Search Screen


×