1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng ứng dụng di động hỗ trợ học từ vựng tiếng Anh

104 6 1
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng di động hỗ trợ học từ vựng tiếng Anh
Tác giả Bùi Hữu Hiếu
Người hướng dẫn TS. Nguyễn Thanh Bình
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Hệ thống Thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 104
Dung lượng 22,98 MB

Nội dung

TÓM TÁT KHOÁ LUẬN* Tóm tat van đề nghiên cứu Xây dựng một ứng dụng di động nhằm hỗ trợ việc học từ vựng tiếng Anh cho tất cả mọi người.. Ung dụng hoc từ vựng tiếng Anh cho người sử dung

Trang 1

ĐẠI HOC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA HE THONG THONG TIN

BÙI HỮU HIẾU

KHÓA LUẬN TÓT NGHIỆP

XÂY DỰNG ỨNG DỤNG DI ĐỘNG HỖ TRỢ

HỌC TỪ VỰNG TIENG ANH

BUILDING A MOBILE BASED APPLICATION TO SUPPORT

LEARNING ENGLISH VOCABULARY

KY SU NGANH HE THONG THONG TIN

TP HO CHi MINH, 2023

Trang 2

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA HỆ THÓNG THÔNG TIN

BÙI HỮU HIẾU - 19521493

KHÓA LUẬN TOT NGHIỆP

XÂY DỰNG ỨNG DỤNG DI ĐỘNG HỖ TRỢ

HỌC TỪ VỰNG TIENG ANH

BUILDING A MOBILE BASED APPLICATION TO SUPPORT

LEARNING ENGLISH VOCABULARY

KỸ SƯ NGÀNH HỆ THÓNG THÔNG TIN

GIẢNG VIÊN HƯỚNG DẪN

TS NGUYÊN THANH BÌNH

TP HÒ CHÍ MINH, 2023

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định sé

" eeeeeeeeeaeeeeeeenees ngay của Hiệu trưởng Trường Đại học Công

nghệ Thông tin.

Trang 4

LỜI CẢM ƠN

Trong suốt khoảng thời gian thực hiện khoá luận tốt nghiệp, em xin chân thành

cảm ơn thầy Nguyễn Thanh Bình, đã dành thời gian và công sức để hướng dẫn em trong quá trình thực hiện dé tài “Xây dựng ứng dụng di động hỗ trợ hoc từ vựng tiếng Anh” Thay đã tận tình hướng dẫn, chỉ bảo và luôn có sự phản hồi tỉ mi trong thời gian nhanh nhất, giúp em vượt qua những khó khăn và hoàn thành khóa luận này.

Em xin gửi lời cảm ơn sâu sắc đến trường Đại học Công nghệ thông tin - Đại học quốc gia thành phố Hồ Chí Minh và tập thé giáo viên, cán bộ quản lý đã tạo môi

trường học tập thuận lợi để em có thể học hỏi và phát triển đề tài của mình.

Em cũng muốn bày tỏ lòng biết ơn đến gia đình, bạn bè và những người thân

yêu đã luôn động viên, hỗ trợ và tạo điều kiện cho em trong quá trình thực hiện khóa luận Sự ủng hộ và động viên của họ là động lực để em vượt qua mọi khó khăn và hoàn thành đề tài một cách thành công.

Cuối cùng, em cũng muốn gửi lời cảm ơn chân thành đến tat cả các thầy cô trong khoa và bạn bè đã đóng góp ý kiến, phản hồi và đưa ra những đề xuất giúp em

cải thiện khóa luận Những đóng góp quý báu từ quý thầy cô và bạn bè sẽ giúp em

rút kinh nghiệm và hoàn thiện đề tài khoá luận tốt nghiệp của mình.

Trân trọng cảm ơn!

Trang 5

1.5 Hướng phát triển và các van đề còn tồn tai eecceccecessesssessessessessessessecsesseesseeses 6

1.6 Van đề cần tập trung và nghiên cứu giải quyẾt 2 s©sz+cz+rserxez 7CHƯƠNG 2 CƠ SỞ LY THUYET VÀ NEN TANG CÔNG NGHẸ 8

2.1 Co SO ly thuy6t aăẻẻỶ" 8

2.1.1 Nền tảng và ngôn ngit o.ceceecceccecsesseecsessesssssessessecsesssessessessessseesessecseseeseess 8

2.1.2 Các dịch vụ và cơ sở dữ QU oo ccc cccccccecssseceesseeeeesseceesseeeessseeeetseeees 10

2.1.3 Các công cụ hỗ trỢ, -¿- - 2 512212321221 12212121211 2111212121 211 xe 17

2.1.4 Thuật toán Levenshtein Distance 5-55 22 SS +2 szeeecszreeecsz 18

2.1.5 Thuật toán Wagner-Fischetr - . 5 2c 33113391113 11 3111811 11 vn 20

2.1.6 Tối ưu hoá thuật toán Wagner-Fischer -2- 2 + s+sz+£z+£erxerseee 24

2.2 Phương pháp nghiên CỨU - 2c 3c E E311 1 311511511111 1E 1 1x rr rưy 26

CHUONG 3 PHAN TÍCH VA THIẾT KE UNG DỤNG - 28

3.1 Sơ đồ kiến trúc hệ thong o c.cceeceecceccsssessessesssessessessesssessessessessessesseeseeseesseeseesees 28

3.2 Các yêu cầu chức năng - - 2: + + t+E2EEEEEEEEEEEE121121121171E 1111111111 1e, 29

3.2.1 Chức năng xác thực người dùng - Ăn rưy 30

3.2.2 Chức năng tìm kiẾm - ¿+ 2 2 E2 £+E£EEEEEEEEEEEEEEEE21E21 712121 xe 31

3.2.3 Chức năng học từ vựng và ôn luyỆn eeteeeeeeeeeeseeeseeseeeeenaeeees 31

Trang 6

3.2.4 Chức năng tuỳ chỉnh - c xhnvk HHHnHnHnHnHnHngghgrư 32

3.2.6 Chức năng quản lý hệ thống -¿- 2 2E E+SE+EE£EE£EE2EE£EeEEeEEerkrrkrree 323.3 Các yêu cầu phi chức năng - 2-2 2 £+E+E£EE£EE#EESEEEEE2EEEEEEEEEEEkrrkrrkee 333.4 SO d6 on 43433 Ò 34

3.4.1 Danh sách A CẨOT - s1 v12 11 2n nu TH TH HH HH Tnhh 37

E0 v00 “313 37

3.5 Đặc tả use-case và sơ đồ hoạt động - -Snn vn HH HH nh re, 39

3.5.1 Đăng nhập (người dung) - - - c6 1x E1 1v 9H HH HH nề, 40

3.5.2 Cập nhật thông tin cá nhân 5 55 5 + 12v ng nh ngư 41

3.5.3 Tìm kiếm từ VỰng ¿c3 E1 E211 1217111211111111 111111111 cxe 43

3.5.4 Học từ vựng qua thẻ nỚ s61 1E E911 111 1 1kg net 45

3.5.5 Lam 6 ca 47

3.5.6 Choi trO on 49

3.5.7 Tăng cấp D&C eccecsessesseessessesseesssssessessesssessessecsessusssessecsecsuessessecsecsseeseesecaes 51

3.5.8 Thém tty VUNG 52

3.5.9 Cap nhật thông tin tỪ VỰn - óc + 1v HH ni, 54

3.6 Sơ 46 tuần tu ess eeeeccsseescsssseesesssneecesssnecessneeceessesesssnnecessumecessneecessneeseessneecs 57

3.6.2 Cập nhật thông tin cá nhân - - - 5 5 3 219g ng nh ng rư 57

3.6.3 Tìm kiếm từ vựng :-©+-© 22212 xEEE2211211211271211211211 1111 Exye 58

3.6.4 Học từ vựng qua thẻ nỚ - 6 + s13 932 9n HH ngưng rư 58

3.6.5 Làm bai kiểm tra o seeeccseeescsssseecssssneeeessneecessneeecsesneesessnnecessneecessneeeen 59

3.6.6 Choi trO ChO1 eee eeecesecseeeesececseeseeseceeesscesecseeaesaessesaeseessesseseeseesaees 59

Trang 7

CHUONG 4 CÁC TÍNH NANG NÓI BẬTT e 5 s-se©ssessessecssesses 75

4.1 Hỗ trợ ngoại tuyến (offline), - +: ©2+©+++2x2Ext2EEEEESEkCEEEEEEkrrkrerkrrrrees 75

4.1.1 Nhu cầu thực tẾ tt E21 E21 EEEEE1E11117121111111E111EE.1EExEEetvee 75

4.1.2 Mô tả tính nang Án TH HH TT TH HH Hàn HH 75

4.1.3 Điểm mạnh và hạn chẾ - ¿- - s t k+S+E#EE+E£EE+EEEEEEEEEEErkerxrrerxererxee 764.2 Tìm kiếm từ vựng tương đồng - + 2© +k+SE9EESEEEEE2E2E2EEEEEEkerkrrkrex 77

4.2.1 Nhu cầu thực tẾ -.-::-52+t222xvt 22 122 1.2 tre 77

4.2.2 Mô tả tính năng -. - 2 c3 33 1111119111111 1111 1 HH ng Hy 77

4.2.3 Diém mạnh và hạn Ch6 ccccscssssessssessesessessssesecsecsesecsesessesarsecersesevsecaveess 78

4.3 Tích hợp thư viện quản lý trạng thai (state management) 78

4.3.1 Nhu cầu thực tẾ 2xx th Hee 78

4.3.2 Mô tả tính năng - - G1 S191 HH TT HH HH 79

4.3.3 Điểm mạnh và hạn chế - :- + St x+EEE+EE+E£EE+EeEEEEEEEEErEeErzkerxrrerxee 80

4.4 Các trò chơi hỗ trợ ôn luyện từ Vựng 2 + 2+s+++££cx+xerxerrxerxrreree 81

4.4.1 Nhu cầu thực t6 eesseeccsssescssseeeesseecessncessnsceessnscessnsecssnsceesnneessaneeesanseessns 81

4.4.2 MG ta tinh aa '"®©'+'.- L'L 82

4.4.3 Lợi ích và hạn ché eeccsesscssssessssseecessnesessnseessnnecessneeessnceesuneeesaneeesanseesens 82CHƯƠNG 5 KET QUA TRIEN KHAI VÀ DANH GIÁ - 84

5.1 Môi trường phát trién cececceccesccscesessessessessessssscsecsecsessessessessessesesseesessesseseesees 84

Trang 8

5.2 Môi trường triển khai -2- 22 ++22+2E+£EE+2EEEEEEEEESEEEEEEEEkerkrsrkrrrrres5.3 Két qua su 0i 88 ồd ÔÒỎ5.4 Hạn chế và hướng phát triỀn 2-2 ¿+ ©E+EE+EE+EE£EE2EEEeEEerkerkrrkrreeeTÀI LIEU THAM KHẢO 2-5-5 s22 s2 £s££s s£Ssesses2EssEseEsessessesz

Trang 9

Hình 2.8 Hình ảnh logo của Visual Studio Code - các cà cscsesseeseserske 17

Hình 2.9 Công thức Levenshtein Distance (nguồn: Levenshtein distance - Wikipedia)

— 19

Hình 2.10 Ma trận với i và j làm vi trí của ký tự trong chuỗi - - scscecececs 20

Hình 2.11 Ví dụ về tao lập ma trận cho hai chuỗi ký tự 2-5 555552 21Hình 2.12 Ví du chuyền đối hai chuỗi rỗng bang ma trận - 5- 5552552 21Hình 2.13 Ví dụ chuyên đôi những ký tự đầu tiên của hai chuỗi bằng ma trận 22Hình 2.14 Ví dụ chuyển đổi hai chuỗi ký tự trong trường hợp ký tự đang xét trùng

a 23

Hình 2.16 Ví dụ chuyền đổi hai chuỗi ký tự sử dung một mảng - 24Hình 2.17 Ví dụ chuyên đôi hai chuỗi ký tự sử dụng một mảng và kết quả cuối cùng

¬— ÔỎ 25

Hình 3.1 Sơ đồ kiến trúc hệ thống — System Architecture Diagram - 28

Hình 3.2 Sơ đồ chức năng cho ứng dụng di động - 2 2 2+ +x+zx+zs+zszse2 29Hình 3.3 Sơ đồ chức năng cho web dashboard - s2 2 ++s+x+x+zx+zx+zszsez 29Hình 3.4 Sơ đồ use-case cho người đùng - - 2c s+Sx+EE+Ez+E£EEEerEerkerkerkrree 34Hình 3.5 Sơ đồ use-case chỉ tiết cho người đùng - 2-2 2+ +xczxe£xererszsez 35

Trang 10

Hình 3.6 Sơ đồ use-case cho quản tri ViÊn - ¿2 + x+2E£+E£+EEtEEtrkezrxerxerkerex 36

Hình 3.7 Sơ đồ use-case chi tiết cho quản trị viên -2- 2 s+cx+zzzze+zxerxczez 36

Hình 3.8 Sơ đồ hoạt động — đăng nhập ¿- 2: 2£ 5++x+2EEt2EEtEEterxrzrxrrrecree 41 Hình 3.9 Sơ đồ hoạt động — cập nhật thông tin cá nhân - - 5-5-5 ++<<+++ 43

Hình 3.10 So đồ hoạt động — tìm kiếm từ vựng - + 2+ ++s+xezxerxerxerszree 45

Hình 3.11 Sơ đồ hoạt động — hoc từ vựng qua thẻ nhớ - «+ ++ss<++s++sss+ 47 Hình 3.12 Sơ đồ hoạt động — làm bài kiểm tra ¿- 2: ©+©5+2cx++z+zx+sr+z 49

Hình 3.13 Sơ đồ hoạt động — chơi trO CƠI - 5 St HH nền 50

Hình 3.14 Sơ đồ hoạt động — tăng cấp bậc -:- + 2c++cz+rcEckerkerkerkererree 52 Hình 3.15 Sơ đồ hoạt động — thêm từ vựng - 2-2 5¿©+¿+++x++zxzrxrrxesres 54

Hình 3.16 Sơ đồ hoạt động — cập nhật thông tin từ vựng -‹ -cs+<<+sss+ 56

Hình 3.17 Sơ đồ tuần tự - đăng nhập ¿- ¿2 ©E+SxeEE+EE2EEEEEEEEEEEerkerkrrkrree 57 Hình 3.18 Sơ đồ tuần tự - cập nhật thông tin cá nhân - ¿- 25 +55 <++s£+sec++ 57 Hình 3.19 Sơ đồ tuần tự - tìm kiếm từ vựng -¿- ¿©c+++z++zx+erxezrxrrrecree 58 Hình 3.20 So đồ tuần tự - học từ vựng qua thẻ nhớ - 2-2 s2s£+z+zx+zxzsz 58 Hình 3.21 Sơ đồ tuần tự - làm bài kiỂm tra c -55cccccterrrrkkrrrrrtrrrrrtrrree 59 Hình 3.22 Sơ đồ tuần tự - chơi trò chơi -ccc¿c+cc+errrrkerrtrkrrrrrrrrrrrrrrk 59 Hình 3.23 So đồ tuần tự - tăng cấp bậc -¿- ¿2c tt E2 2112112121111 xe 60 Hình 3.24 Sơ đồ tuần tự - thêm từ VỰN HH 61 Hình 3.25 Sơ đồ tuần tự - cập nhật thông tin từ vựng - ccs-csscssessersee 61 Hình 3.26 Hình ảnh thiết kế cơ sở dữ liệu Cloud Firesfore -s-s+szszs+s+z 62 Hình 3.27 Thiết kế giao điện màn hình khởi đầu - 2-2 252 s+£x+£sz£+2 +2 71

Hình 3.28 Thiết kế giao diện màn hình xác thực người dùng -¿ 72

Hình 3.29 Thiết kế giao diện màn hình trang chủ, tìm kiếm, thử thách 72

Hình 3.30 Thiết kế giao diện màn hình điều hướng trên thanh bên 73

Hình 3.31 Thiết kế giao diện màn hình công cụ trên thanh bên - 73

Hình 3.32 Thiết kế giao diện màn hình học từ vựng qua chủ dé, thẻ nhớ 74

Hình 3.33 Thiết kế giao diện màn hình chi tiết từ vựng, bài kiểm tra, trò chơi 74

Trang 11

Hình 4.1 Quá trình thực hiện lay dữ liệu từ Cloud Firestore (nguồn: Firebase Cloud

Firestore — Fetching Data | by Myrick Chow | The Startup | Medium) 76

Hình 4.2 Hình anh minh hoạ truy xuất giá trị thông qua Provider (nguồn:

Understanding Provider in Diagrams — Part 1: Providing Values | by Joseph T Lapp

| Flutter Community | Medium) 5 c + 3311331111111 EEEEErrrkrrrerrree 80

Hình 5.1 Hình ảnh từ ứng dụng — các màn hình khởi đầu - 2-52 86

Hình 5.2 Hình ảnh từ ứng dụng — các màn hình xác thực người dùng 86

Hình 5.3 Hình anh từ ứng dụng — các màn hình trang chủ, tìm kiếm, thử thach 87

Hình 5.4 Hình ảnh từ ứng dụng — các màn hình chủ dé, thẻ nhớ, chỉ tiết từ vựng 87

Hình 5.5 Hình anh từ ứng dụng — các màn hình kiểm tra, trò chơi 88

Hình 5.6 Hình ảnh từ ứng dụng — các màn hình thanh bên, yêu thích, trợ giup 88

Hình 5.7 Hình anh từ ứng dụng — các màn hình chatbot, d6i mật khẩu, cài đặt 89Hình 5.8 Hình ảnh từ ứng dụng — các màn hình hồ sơ người dùng, chỉnh sửa hồ sơ và

Trang 12

DANH MỤC BẢNG

Bang 2.1 Các tính năng quan trọng cua Cloud Firestore Database - 13 Bảng 2.2 Tinh năng và lợi ich quan trong của Firebase Authentication 15 Bảng 2.3 Tinh năng và lợi ích chính của Firebase Cloud Storage - 16

Bang 3.1 Bang danh sách các actor được sử dụng - -s-ccccsssseereerererere 37 Bảng 3.2 Bảng danh sách các use-case được sử dụng - -cccccs+cssrsex 37 Bảng 3.3 Bảng đặc tả cho use-case đăng nhập - - c Sn St tsrsireirerrree 40

Bảng 3.4 Bảng đặc ta cho use-case cập nhật thông tin cá nhân - 41

Bang 3.5 Bang đặc ta cho use-case tìm kiếm từ vựng - ¿5c cscccscerscee 43

Bang 3.6 Bảng đặc ta cho use-case học từ vựng qua thẻ nhớ - « «+ 45

Bang 3.7 Bang đặc ta cho use-case làm bài kiém tra 2-2-5 25z2cz+csvzxzez 47

Bảng 3.8 Bảng đặc ta cho use-case chơi trÒ ChƠI - - s- + setrssereersrerres 49

Bang 3.9 Bảng đặc ta cho use-case tăng cấp bậc -©2¿©c2cccctcrkrrrerxerrcrex 51

Bang 3.10 Bang đặc ta cho use-case thêm từ VUNG eeeceesceeseeeeeeseeeseeeseeseeeseens 52

Bang 3.11 Bảng đặc ta cho use-case cập nhật thông tin từ vựng . 54

Bảng 3.12 Bảng mô tả dữ liệu người dùng trong cơ sở dit liệu 62

Bang 3.13 Bang mô ta dit liệu từ vựng của người dùng cụ thé trong cơ sở dit liệu 64

Bảng 3.14 Bang mô tả dữ liệu từ vựng trong cơ sở dữ liệu -. ‹+ +++++ 65

Bảng 3.15 Bang mô ta dữ liệu chủ dé trong cơ sở dit liệu . 5- 5552552 67Bang 3.16 Bang mô ta dữ liệu nghề nghiệp trong cơ sở dữ liệu - 67

Bảng 3.17 Bảng mô tả dir liệu giới tính trong cơ sở dit liệu -<<5- 67 Bảng 3.18 Bang mô tả dữ liệu trợ giúp trong cơ sở dit liệu - - -+-«2 68 Bang 3.19 Bang mô ta dữ liệu câu hỏi trong cơ sở đữ liệu - - -+-+2 68

Bang 3.20 Bang mô ta dữ liệu cấu hình trong cơ sở dữ liệu -5c552 69

Trang 13

TÓM TÁT KHOÁ LUẬN

* Tóm tat van đề nghiên cứu

Xây dựng một ứng dụng di động nhằm hỗ trợ việc học từ vựng tiếng Anh cho

tất cả mọi người Việc năm vững một lượng từ vựng nhất định của một ngôn ngữ gópmột phần cực kỳ quan trọng trong việc tiếp thu ngôn ngữ này Tuy vậy, việc học từvựng có thể gặp một số khó khăn do tính chất trừu tượng và mang nặng tính kháiniệm, sẽ khiến cho người học dễ chán nản và từ bỏ Với sự ra đời của các ứng dụng

hồ trợ việc học từ vựng sẽ phân nào giải quyết vân dé nay.

s* Các hướng tiếp cận

1 Giao diện người dùng thân thiện: ứng dụng thiết kế với giao điện đơn giản và

thân thiện cho người sử dụng Phông chữ và màu sắc đồng nhất, các biểu tượng minh

4 Cung cấp các phản hồi: ứng dụng cung cap chức nang theo dõi tiến độ học tập

và đánh giá kết quả sau mỗi bài kiểm tra, xem lại các từ đã làm, giúp người dùngnhận biết những điểm cần cải thiện nhằm tăng khả năng ghi nhớ Hệ thống điểm sốkhuyến khích người dùng học tập

5 Tích hợp chatbot: hỗ trợ người dùng tra cứu nhanh ý nghĩa từ vựng, giải đáp

thắc mắc chung trong quá trình học, hỗ trợ các thao tác trên ứng dụng

6 Quản lý hệ thống: chỉnh sửa và bổ sung bộ từ vựng, quản lý danh sách ngườidùng trong hệ thống, thay đôi các giá trị thiết đặt mặc định của ứng dụng di động.

Trang 14

s* Cách giải quyết van đề

1 Xây dựng co sở dữ liệu từ vựng: xây dựng cơ sở di liệu từ vựng dựa trên

nguồn dữ liệu uy tin (Oxford Dictionary), bao gồm nghĩa của từ, từ loại, chủ dé, vi

dụ minh hoạ (các câu ví dụ theo ngữ cảnh, hình anh minh hoa), bản ghi âm của từ.

Đề đảm bảo người dùng có thể có được thông tin chỉ tiết về từ vựng một cách chính

xác.

2 Tạo hệ thống học tập cho người dùng: bao gồm các tinh năng thẻ nhớ, thôngbáo ứng dụng, bài kiểm tra, trò chơi dùng dé học tập và ôn luyện Nhằm gia tăng điểm

ghi nhớ của từ cũng như điểm của người dùng

3 Tạo hệ thống theo dõi tiễn độ hoc tập: theo dõi tiễn độ học tập của người dùngbao gồm số từ đã học, mức độ ghi nhớ của tu, tiễn độ hoàn thành cấp độ người dùng

4 Xây dựng hệ thống quản lý: xây dựng trang quan lý bộ từ vựng, quản lý ngườidùng, quản lý thiết đặt ứng dụng di động trên nền tảng web

* Kết qua đạt được

1 Cơ sở dữ liệu từ vựng với hơn 500 từ được tra cứu từ nguồn uy tín như Oxford

Learner's Dictionaries.

2 Ung dụng hoc từ vựng tiếng Anh cho người sử dung với các chức năng hỗ trợ

cho việc học tập từ vựng hiệu quả, và đồng thời đăng tải lên cửa hàng ứng dụng

Google Play.

3 Trang quản lý người dùng và bộ từ vựng trên nền tảng web nhằm giúp dé dang

trong việc thao tác cho người quản lý.

Trang 15

CHUONG 1 TONG QUAN

1.1 Ly do chon dé tai

Trong quá trình tiếp thu và hoc hỏi một ngôn ngữ mới, từ vựng đóng một vai

trò cực kỳ quan trọng Việc nắm vững một lượng từ vựng nhất định không chỉ giúp

người học ngôn ngữ đó đọc, nghe và hiểu ngôn ngữ một cách hiệu quả, mà còn giúp

họ truyền đạt tốt ý tưởng, tiếp cận một cách dễ dàng các kiến thức chuyên môn vàđồng thời nâng cao được sự tự tin trong giao tiếp

Tiếng Anh đã và đang là một ngôn ngữ cực kỳ phô biến trên thế giới, đồngthời tiếng Anh cũng đóng vai trò quan trọng trong cuộc sống hiện đại Sự phát triển

vượt bậc của công nghệ thông tin và môi trường làm việc quốc tế đã giúp khả năng

sử dụng tiếng Anh trở thành một trong những yếu tô quan trọng giúp thăng tiến trong

sự nghiệp, đồng thời mở rộng các cơ hội học tập và làm việc trong và ngoải nước

Chính vì lẽ đó, một ứng dụng hỗ trợ học từ vựng tiếng Anh là cần thiết để đápứng nhu cầu của người học So với phương pháp học tập truyền thống, học từ vựngmột cách máy móc và trừu tượng có thé gây ra cảm giác chán nản, thiếu động lực và

mức độ ghi nhớ từ vựng không cao Một ứng dụng di động có thê mang lại trải nghiệm

học tập tích cực và linh hoạt hơn, đồng thời tạo động lực thúc đây người dùng học từ

vựng một cách hiệu quả hơn là điều cần thiết

Như vậy, việc xây dựng một ứng dụng hỗ trợ việc học tir vựng tiếng Anh sẽđóng góp một công cụ hữu ích cho cộng đồng người học tiếng Anh nói chung vànhững cá nhân muốn trao đồi từ vựng tiếng Anh nói riêng Với mong muốn tạo ramột ứng dụng hữu ích và tiện lợi cho người học từ vựng tiếng Anh ở các cấp độ khác

nhau và các mục tiêu học tập khác nhau.

Trang 16

@ học từ vựng tiếng anh

am từ tìm kiêm

+ Sosánh

Việt Nam ¥ 12 tháng qua ¥ Tất cả danh mục ¥ Tìm kiểm trên web ¥

Mức độ quan tâm theo thời gian @ 4 Oo <

Hình 1.1 Thống kê mức độ quan tâm theo thời gian của người dùng tại Việt Nam về

học từ vựng tiếng Anh (nguồn: Google Xu hướng)

1.2 Mục đích nghiên cứu

Nhằm tạo ra một ứng dụng di động hiệu quả và tiện ích dé hỗ trợ người dùngtrong việc học từ vựng tiếng Anh Cụ thể, các mục đích nghiên cứu bao gồm:

- Phan tích nhu cau và khó khăn trong việc học từ vựng tiếng Anh của người

dùng: điều này giúp hiểu rõ những khó khăn mà người dùng thông thườnggặp phải khi học từ vựng và nhu cầu của họ trong việc sử dụng một ứng

dụng hé trợ học từ vựng.

- Phương pháp học từ vựng tiếng Anh hiệu quả: tìm hiểu về các phương pháp

học từ vựng đã được chứng minh là hiệu quả và áp dụng chúng vào thiết

kế ứng dụng Điều này bao gồm việc nghiên cứu về quy trình ghi nhớ từ

vựng, cách gan kết từ vựng với ngữ cảnh, và các kỹ thuật nhớ từ vựng dựatrên hình ảnh, âm thanh, hoặc liên kết với các khái niệm sẵn có

- Giao diện người dùng và trải nghiệm người dùng: tìm hiểu về các yếu tố

thiết kế giao diện người dùng và trải nghiệm người dùng dé tạo ra một giao

diện thân thiện, trực quan và hâp dân Điêu này bao gôm việc nghiên cứu

Trang 17

về việc sắp xếp, hiển thị thông tin, cách tương tác và phản hồi từ ứng dụng

sao cho hợp lý, nhất quán và thu hút người dùng

Đánh giá hiệu quả của ứng dụng: tiến hành các cuộc thử nghiệm và đánhgiá dé đo lường hiệu quả của ứng dụng trong việc nâng cao khả năng từvựng của người dùng Điều này có thể bao gồm đo lường khả năng ghi nhớ

từ vựng, khả năng áp dụng từ vựng vào ngữ cảnh, đánh giá sự tiến bộ của

người dùng sau khi sử dung ứng dung va so sánh với các phương pháp học

truyền thống

Tổng thể, mục đích của nghiên cứu là xây dựng một ứng dụng học từ vựngtiếng Anh hiệu quả, thân thiện và hap dẫn, giúp người dùng nâng cao kỹ năng từ vựng

tiéng Anh của minh một cách hiệu quả và thú vi.

1.3 Đối tượng nghiên cứu

Ứng dụng muôn hướng đên đôi tượng là tât cả người dùng có nhu câu trao dôi

từ vôn từ vựng tiêng Anh của mình, đê phục vụ cho nhiêu mục đích khác nhau của

bản thân Họ có thể là:

Học sinh/Sinh viên: những người có nhu cầu học từ vựng dé nắm bắt kiếnthức trong quá trình học tập, chuẩn bị cho các kỳ thi tiếng Anh quan trọngđồng thời nâng cao khả năng giao tiếp tiếng Anh

Người đi làm: các chuyên gia, nhân viên văn phòng hoặc bắt kỳ người nàotrong môi trường làm việc đòi hỏi sử dụng tiếng Anh Họ muốn nâng cao

vốn từ vựng dé hiểu và sử dụng trong chuyên ngành, giao tiếp với đối tác

nước ngoài hoặc tiến xa hơn trong sự nghiệp

Người tự học: các cá nhân tự học tiếng Anh, không thuộc trong hệ thốnggiáo dục chính thống Đây có thê là những người quan tâm đến việc họctiếng Anh dé du lịch, nghiên cứu, hoặc mở rộng kiến thức cá nhân

Người nước ngoài học tiếng Anh: những người đang học tiếng Anh nhưngôn ngữ thứ hai hoặc thứ ba Ứng dụng có thể cung cấp cho họ một công

cụ hữu ich dé tăng cường từ vựng va cải thiện kỹ năng ngôn ngữ của mình

Trang 18

1.4 Pham vi nghiên cứu

Dé phat trién một ứng dụng di động hỗ trợ việc học tiếng Anh cho người dùng

một cách hiệu quả, cân tập trung vào các khía cạnh như:

Xây dựng ứng dụng di động: tập trung vào việc phát triển và xây dựng mộtứng dụng di động dành cho việc học từ vựng tiếng Anh Phạm vi này có

thé bao gồm các bước thiết kế giao diện, cấu trúc đữ liệu, các tính năng

chính và tối ưu hóa hiệu suất của ứng dụng

Bộ từ vựng tiếng Anh (hay cơ sở dữ liệu lưu trữ từ vựng tiếng Anh): tậptrung vào việc thu thập và phân loại từ vựng tiếng Anh theo các danh mụckhác nhau như từ vựng theo từng chủ dé cụ thé, từ vựng theo trình độ người

học.

Phương pháp học từ vựng: tìm hiểu và áp dụng các phương pháp học từvựng hiệu quả trong việc thiết kế và xây dựng ứng dụng Điều này có thébao gồm việc sử dụng hình ảnh minh hoạ, âm thanh, ví dụ cụ thể, các bàikiểm tra trắc nghiệm, các hoạt động tương tác hay trò chơi dé tăng cường

việc học và ghi nhớ từ vựng.

Công cụ quản lý: tập trung vào việc tạo lập trang quản lý cho người quản

trị hệ thống dé dang theo dõi, sửa đổi, phản ứng kịp thời các van đề xảy ra

với cơ sở dữ liệu từ vựng hay các cau hình ứng dụng của người dùng.

Phạm vi nghiên cứu sẽ tập trung vào việc xây dựng một ứng dụng di động hỗ

trợ học từ vựng tiếng Anh hiệu quả, bộ cơ sở dt liệu được chọn lọc, phat triển các

phương pháp học từ vựng và công cụ quản lý hệ thống

1.5 Hướng phát triên và các van dé còn tôn tai

Nhiều ứng dụng từ điển di động đã được phát triển để cung cấp cho người

dùng kha năng tra cứu từ vựng tiếng Anh Tuy nhiên, vẫn còn tồn tại một số van dé

như: giao diện của một số ứng dụng từ điển không thân thiện, cũ kỹ, gây nhàm chan

hay khó khăn trong việc tra cứu từ vựng.

Trang 19

Chính vì lý do đó, một số ứng dụng học từ vựng tiếng Anh đã được phát triển

dé bù đắp cho khuyết điểm của các ứng dụng từ điển trước kia, đồng thời cung cấpthêm nhiều bài tập dé học tập và rèn luyện hơn Tuy vậy, những vấn đề có liên quanđến động lực học tập và các hoạt động ôn luyện cần phải được cải thiện dé giữ channgười dùng, tạo động lực, cùng với sự đổi mới nhằm thúc đây người dùng học tập tốt

hơn.

1.6 Vấn đề cần tập trung và nghiên cứu giải quyết

Thiết kế giao điện người dùng thân thiện và trực quan để thu hút và giữ chân

người dùng Dễ dàng thay đổi ngôn ngữ và chủ đề sáng tối Sử dụng kết hợp hình anh

minh hoạ, biểu tượng, âm thanh, chuyên động hoạt cảnh sẽ giúp tạo ra một giao diệnứng dụng hấp dẫn, thú vị và đễ dàng tương tác trực quan

Cung cấp các phương pháp học tập khác nhau dé người dùng tiếp cận một cách

có hệ thống và mượt mà, đa dạng và thú vị Các bài kiểm tra, trò chơi, thẻ ghi nhớhay các thông báo nhắc nhở mỗi ngày sẽ được tích hợp vào ứng dụng dé người dùng

có thé rèn luyện từ vựng một cách có hiệu quả

Bồ trí và sắp xếp hệ thống từ vựng theo chủ đề và chia theo từng cấp độ người

dùng Từ đó, bố trí các bài kiểm tra và trò chơi phù hợp theo trình độ của mỗi người

Chọn lọc và phân cấp từ vựng từ nguồn uy tín và chính thống, đồng thời ápdụng các từ vựng đó vào ngữ cảnh hợp lý thông qua nhiều ví dụ minh hoạ, dé người

dùng dé dàng hình dung, ghi nhớ và áp dụng từ vựng ấy sao cho phù hợp

Đánh giá trình độ và thăng cấp bậc người dùng dựa vào độ ghi nhớ hay mức

độ thâu hiểu của người dùng với một số lượng từ vựng nhất định Người dùng có thể

chủ động thăng cấp độ của bản thân nếu đạt đủ điều kiện nhất định

Động lực học tập cũng là một yếu tố quan trọng trong quá trình học tập của

người dùng Hệ thống điểm thưởng và xếp hạng với những người dùng khác nhằm

tăng tính cạnh tranh, từ đó tạo ra một môi trường tích cực.

Đánh giá hiệu quả của quá trình học tập thông qua điểm ghi nhớ cho từng từvựng mà người dùng tham gia học tập Nếu vượt quá điểm tối đa từ vựng sẽ đượcđánh dấu là hoàn tat, ngược lại nếu về không sẽ bị đưa trở lại trạng thái chưa học

Trang 20

CHƯƠNG 2 CƠ SỞ LÝ THUYET VÀ NEN TANG CÔNG NGHỆ

dựng các giao diện đẹp mắt và tương tác

Ngoài ra, Flutter cũng cung cấp một bộ công cụ phong phú cho việc xử lý sự

kiện, quản lý trạng thái và tương tác với các dịch vụ nên tảng Có thể tạo các sự kiệntương tác như nhấn nút, di chuyên, vuốt và thậm chí tạo các hiệu ứng động dé làm

tăng trải nghiệm người dùng.

Với Flutter, có thé dé dàng truy cập vào các tính năng của hệ điều hành như

camera, GPS, đồ họa và âm thanh Flutter cung cấp các giao diện lập trình ứng dụng

(API) cho các dịch vụ này, giúp tương tác với các thiết bị và tính năng phần cứng của

điện thoại.

Dưới đây là một số tính năng nỗi bật của Flutter [1]:

- Hot Reload: Flutter có tính năng Hot Reload, cho phép nhận thấy các thay

đổi trên giao diện người dùng ngay lập tức Điều này giúp dé dàng điều

chỉnh thiết kế và làm cho ứng dụng hoạt động theo ý muốn.

Trang 21

- Quan lý trang thái: Flutter có hệ thống quan lý trạng thái tích hợp, giúp dễ

dàng quản lý trạng thái của ứng dụng Điều này giúp tránh các lỗi và làm

cho ứng dụng dễ bảo trì hơn.

- _ Đa ngôn ngữ hóa: Flutter tích hợp sẵn hỗ trợ đa ngôn ngữ, giúp dé dàng

tạo ra các ứng dụng có thể sử dụng trên toàn thế gIỚI

- _ Khả năng truy cập: Flutter tích hợp sẵn hỗ trợ truy cập, giúp dé dàng tạo ra

các ứng dụng có thê sử dụng bởi những người khuyết tật

Flutter là một lựa chọn phô biến cho việc phát triển ứng dụng di động đa nêntảng, vì nó cho phép tiết kiệm thời gian và công sức trong việc xây dựng và duy trì

ứng dụng trên nhiều nền tảng khác nhau Nó cũng có cộng đồng phát triển mạnh mẽ

và nhiều tài liệu học tập và tài nguyên hỗ trợ khác dé giúp dé dang làm quen và pháttriển với Flutter

« Flutter

Hinh 2.1 Hinh anh logo cua Flutter

2.1.1.2 Ngôn ngữ lap trình Dart

Dart là ngôn ngữ tối ưu người dùng cho việc phát triển ứng dụng nhanh chóngtrên bất kỳ nền tảng nào Mục tiêu của nó là cung cấp ngôn ngữ lập trình hiệu quảnhất dé phát triển đa nền tảng, kết hop với nền tang thời gian chạy thực thi linh hoạt

cho các framework.

Dart tích hợp tinh năng null safety Điều này có nghĩa là giá trị không thể lànull trừ khi bị chỉ định rằng nó có thé là null Khác với nhiều ngôn ngữ khác hỗ trợnull safety, khi Dart xác định rằng một biến là không thé null, biến đó sẽ không baogiờ là null Nếu xem mã đang chạy trong trình gỡ lỗi sẽ thay rằng tính không thé null

vẫn được duy trì trong thời gian chạy [2]

Các tinh năng nổi bật của Dart như:

Trang 22

- _ Hỗ trợ hướng đối tượng: ngôn ngữ lập trình Dart là một ngôn ngữ hướng

đối tượng, nó cho phép định nghĩa lớp, kế thừa, đa hình và đóng gói

- Hỗ trợ bất đồng bộ: Dart cung cấp các từ khóa async/await dé xử lý các tác

vụ bat đồng bộ một cách dễ dàng và rõ ràng

- Giao tiếp qua kênh (Isolate): việc Dart hỗ trợ giao tiếp giữa các luồng

(thread) thông qua khái niệm Isolate, cho phép xử lý đa luồng một cách

hiệu quả.

- Các thành phan giao điện người dùng: Dart có thư viện Flutter dé phát triển

giao điện người dùng đẹp mắt và linh hoạt cho ứng dụng di động và web

@ Dart

Hình 2.2 Hình anh logo của Dart

2.1.1.3 Ngôn ngữ lập trình web

HTML/CSS/JavaScrip: HTML (HyperText Markup Language), CSS

(Cascading Style Sheets) va JavaScript là ba công nghệ cơ ban trong việc xây dựng

trang web quản lý HTML được sử dụng dé xác định cấu trúc và nội dung của trang

web, CSS được sử dụng để thiết kế giao diện va kiểu dáng của trang web, vàJavaScript được sử dụng để tạo ra các tương tác và logic cho trang web

Ngoài ra, áp dung các công nghệ tương tự với nén tảng di động bao gồm:

Firebase Authentication, Cloud Firestore Database và Firebase Cloud Storage.

2.1.2 Cac dịch vụ và cơ sở dữ liệu

2.1.2.1 Dialogflow

Dialogflow là một nền tang phát triển chatbot được phát triển bởi Google Nócung cấp các công cụ va API cho phép xây dựng và triển khai các trò chuyện tự động

và trích dẫn thông tin từ người dùng thông qua các giao diện như ứng dụng di động,

trang web, thiết bị đàm thoại và các nền tảng khác

10

Trang 23

Dialogflow có các tính năng chính sau:

Xử lý ngôn ngữ tự nhiên: Dialogflow có khả năng hiểu và phản hồi dựatrên ngôn ngữ tự nhiên của người dùng, bao gồm khả năng phân tích cúpháp, tách từ và hiéu ý định của câu hỏi

Định nghĩa ý định và thực thé: bằng cách xác định ý định và thực thé, nó

có thé định nghĩa các câu hỏi và phản hồi cho chatbot

Xây dựng hội thoại đa bước: Dialogflow cho phép xây dựng các hội thoại

phức tạp với nhiều bước và quy trình logic Có thể định nghĩa các bối cảnh

và điều kiện dé chatbot có thé xử lý hội thoại theo các luéng logic khác

nhau.

Tích hợp đa nền tảng: Dialogflow hỗ trợ tích hợp với nhiều nền tảng khácnhau như ứng dụng di động, trang web, các thiết bị đàm thoại và các nềntảng nhắn tin như Facebook Messenger và Slack

Phân tích và theo dõi: Dialogflow cung cấp các công cụ phân tích và theo

dõi dé có thé theo dõi hiệu suất của chatbot, hiểu các xu hướng và cải thiện

trải nghiệm người dùng.

Dialogflow sử dụng trí tuệ nhân tạo (AI) và xử lý ngôn ngữ tự nhiên (NLP) dé

hiểu và phản hồi các câu hỏi và yêu cầu từ người dùng Nó cho phép xây dựng các

hội thoại tương tác với người dùng thông qua việc định nghĩa các Intent (ý định),

Entity (thực thể), Context (bối cảnh) và các luật logic

@ Dialogflow

Hình 2.3 Hình ảnh logo của Dialogflow

2.1.2.2 Google Cloud

Google Cloud cung cấp một nền tảng mạnh mẽ cho việc sao lưu đữ liệu Cloud

Firestore và cung cấp API key cho Dialogflow

11

Trang 24

Khi sử dụng Google Cloud, có thé tận dụng các dịch vụ sao lưu và khôi phục

dữ liệu của Cloud Firestore Google Cloud Firestore Backup Service cung cấp khả

năng sao lưu dữ liệu, giúp bảo vệ thông tin quan trọng của ứng dụng Bằng cách đặt

lịch trình và cấu hình sao lưu, có thé dam bảo rằng dir liệu của luôn được bảo vệ va

có san dé khôi phục khi cần thiết

Đối với Dialogflow, Google Cloud cung cấp khóa API (API key) để xác thực

và truy cập vào các dịch vụ của Dialogflow API key này cho phép tích hợp

Dialogflow vào ứng dụng và tương tác với các tính năng của nó Bằng cách cung cấp

API key cho Dialogflow, có thé gửi các yêu cầu API, nhận phản hồi từ Dialogflow va

sử dụng các tính năng như xử lý ngôn ngữ tự nhiên, trích xuất thông tin và xây dựng

các trò chuyện tự động.

€) Google Cloud

Hinh 2.4 Hinh anh logo cua Google Cloud

2.1.2.3 Cloud Firestore Database

Cloud Firestore là một cơ sở đữ liệu linh hoạt, có khả năng mở rộng dành cho

việc phát triển ứng dụng di động, web và máy chủ từ Firebase và Google Cloud.Tương tự như Firebase Realtime Database, nó giữ cho dữ liệu được đồng bộ trên cácứng dụng khách thông qua các bộ lắng nghe thời gian thực và cung cấp hỗ trợ ngoại

tuyến cho ứng dụng di động và web, giúp xây dựng các ứng dụng phản hồi hoạt động

một cách linh hoạt mà không phụ thuộc vào độ trễ mạng hoặc kết nối Internet Cloud

Firestore cũng cung cấp tích hợp mượt mà với các sản phẩm Firebase và Google

Cloud khác.

12

Trang 25

Firestore

Hình 2.5 Hình ảnh logo cua Cloud Firestore Database

Firebase Firestore là một dich vụ cơ sở dữ liệu dam mây phat triển bởi Google

Nó là một cơ sở dữ liệu NoSQL có tính nhất quán, linh hoạt và dé sử dụng

Firestore sử dụng mô hình tài liệu (document model) dé lưu trữ dữ liệu Dữliệu trong Firestore được tổ chức thành các tài liệu (documents), mỗi tài liệu được đại

diện bởi một ID duy nhất và chứa các cặp khóa-giá trị (key-value) Các tài liệu này

được tô chức thành các bộ sưu tập (collections), tạo thành một cau trúc dữ liệu phâncấp [3]

Bang 2.1 Các tính năng quan trọng của Cloud Firestore Database

Uyén

chuyén

Mô hình dữ liệu Cloud Firestore hỗ trợ cấu tric đữ liệu linh hoạt

va phân cấp Lưu trữ dữ liệu trong các tdi liéu (documents), được

sắp xếp thành các bô sưu tập (collections) Tài liệu có thé chứa cácdoi tượng (object) lồng nhau phức tạp ngoài các bộ sưu tập con

(subcollections).

Truy van

biéu cam

Trong Cloud Firestore, có thé sử dung truy van dé lay các tài liệu

cụ thé hoặc lay tat cả các tài liệu trong một bộ sưu tập phù hợp vớicác tham số truy vấn (query parameters) Các truy vấn có thé baogồm nhiều bộ lọc được kết nối và kết hợp giữa việc loc và sắp xếp

(filtering and sorting) Chúng cũng được tạo các chỉ mục mặc định,

vì vậy hiệu suất truy vấn tỷ lệ thuận với kích thước tập kết quả,

không phụ thuộc vào kích thước dữ liệu.

13

Trang 26

Tương tự như cơ sở dir liệu Realtime Database, Cloud Firestore sử

Cập nhật ` ,

"¬ dụng đông bộ hóa dữ liệu đê cập nhật dữ liệu trên bât kỳ thiệt bị

thời gian nào kết nối Tuy nhiên, nó cũng được thiết kế dé thực hiện các truy

tực vấn truy xuất một lần một cách hiệu quả.

Cloud Firestore lưu trữ dữ liệu mà ứng dụng đang sử dụng vảo bộ

Hỗ trợ đệm, vì vậy ứng dụng có thể ghi, đọc, nghe và truy vấn đữ liệu

, | ngay cả khi thiết bị ngoại tuyến Khi thiết bị trực tuyến trở lại,

ngoại tuyên k:

Cloud Firestore sẽ đông bộ hóa mọi thay đôi cục bộ trở lại Cloud

Firestore.

Cloud Firestore mang đến cơ sở ha tang mạnh mẽ tốt nhất của

Được thiết | Google Cloud: sao chép dit liệu đa vùng tự động, đảm bao tính nhất

kế để mở | quán mạnh mẽ, hoạt động hàng loạt nguyên tử và hỗ trợ giao dịch

rộng thực Google đã thiết kế Cloud Firestore dé xử lý khối lượng công

việc cơ sở dữ liệu khó khăn nhất từ các ứng dụng lớn nhất thế giới

Hinh 2.6 Hinh anh logo cua Firebase Authentication

Xác thực Firebase tích hợp chặt chẽ với các dịch vụ Firebase khác va no tận

dụng các tiêu chuẩn ngành như OAuth 2.0 và OpenID Connect dé có thé dé dàng tích

hợp với chương trình phụ trợ tùy chỉnh [4]

14

Trang 27

Firebase Authentication cung cấp các tính năng và lợi ích quan trọng như:

Bang 2.2 Tính năng va lợi ich quan trọng của Firebase Authentication

Xác thực dựa

trên email và

Xác thực người dùng bằng địa chỉ email và mật khâu của họ

Firebase Authentication SDK cung cấp các phương thức dé tạo

và quản lý người dùng sử dụng địa chỉ email và mật khâu của

mật khẩu họ dé đăng nhập Firebase Authentication cũng xử lý việc gửi

email đặt lại mật khẩu

Tích hợp xác Xác thực người dùng băng cách tích hợp với các nhà cung câp

thực danh tính

bên thứ ba

nhận dạng được liên kết Nói cách khác, Firebase AuthenticationSDK cung cấp các phương thức cho phép người dùng đăng nhậpbăng tai khoản Google, Facebook, Twitter va GitHub của họ

Sử dụng các tính năng yêu cầu xác thực mà không yêu cầu người

dùng đăng nhập trước bằng cách tạo tài khoản ân danh tạm thời

Nếu sau đó người dùng chọn đăng ký, có thé nâng cấp tài khoản

ân danh thành tài khoản thông thường dé người dùng có thể tiếp

tục từ nơi họ đã dừng lại.

Firebase Authentication giúp giảm công sức va tăng tính bảo mật trong việc

xác thực người dùng trong ứng dụng, nó cho phép tập trung vào phát triển tính năng

chính và cung cấp trải nghiệm tốt hơn cho người dùng

15

Trang 28

2.1.2.5 Firebase Cloud Storage

Firebase Cloud Storage là một dịch vụ lưu trữ đối tượng mạnh mẽ, đơn giản

và tiết kiệm chi phí được xây dựng cho quy mô của Google Firebase Cloud Storage

SDK bồ sung tinh năng bảo mật của Google cho các tệp tải lên và tải xuống cho cácứng dụng Firebase, bat kể chat lượng mạng như thé nao [5]

Cloud Storage

for Firebase

Hình 2.7 Hình ảnh logo của Firebase Cloud Storage

Firebase Storage cung cấp các tính năng và lợi ích chính sau:

Bảng 2.3 Tính năng và lợi ích chính của Firebase Cloud Storage

Firebase Cloud Storage SDK thực hiện tải lên và tải xuống bất

Hoạt động kể chat lượng mạng Tải lên và tải xuống mạnh mẽ, có nghĩa là

mạnh mẽ chúng khởi động lại từ nơi chúng dừng lại, tiết kiệm thời gian

và băng thông cho người dùng.

Firebase Cloud Storage SDK tích hợp với Firebase

Authentication để cung cấp xác thực đơn giản và trực quan cho

Bảo mật mạnh ' , ;

các nha phát triên Do đó có thê sử dung mô hình bao mật khai

báo này dé cho phép truy cập dựa trên tên tệp, kích thước, loại

nội dung và siêu dữ liệu khác.

Cloud Storage được xây dựng theo quy mô exabyte khi ứng

Khả năng mở | dụng trở nên nổi tiếng Dễ dang phát triển từ nguyên mẫu đến

rộng cao sản phẩm băng cách sử dụng cùng một cơ sở hạ tầng hỗ trợ

Spotify và Google Photos.

16

Trang 29

Firebase Storage giúp đơn giản hóa việc quan ly va lưu trữ các tệp tin trong

ứng dụng, đồng thời cung cấp tính bảo mật và khả năng mở rộng dé xử lý các tệp tin

đa phương tiện trong môi trường đám mây.

2.1.3 Các công cụ hỗ trợ

2.1.3.1 Công cụ lập trình

Visual Studio Code là một trình soạn thảo mã nguồn được phát triển bởi

Microsoft dành cho Windows, Linux và macOS Nó hỗ trợ chức năng debug, đi kèm

với Git, có chức năng nồi bat cú pháp (syntax highlighting), tự hoàn thành mã thôngminh, snippets, và cải tiễn mã nguồn Nó cũng cho phép tùy chỉnh, do đó, người dùng

có thé thay đổi theme, phím tắt, và các tùy chọn khác Nó miễn phi và là phần mềm

mã nguồn mở theo giay phép MIT, mặc dù bản phát hành của Microsoft là theo giấyphép phần mềm miễn phí !

Các tính năng nổi bật của Visual Studio Code:

- Visual Studio Code là một trình biên tập mã hỗ trợ nhiều ngôn ngữ và chức

năng tùy vào ngôn ngữ sử dụng Nhiều chức năng của Visual Studio Code

không hiền thị ra trong các menu tùy chọn hay giao diện người dùng Thay

vào đó, chúng được gọi thông qua khung nhập lệnh hoặc qua một tập tin

.Json (vi dụ như tập tin tùy chỉnh của người dùng).

- Visual Studio Code có thé được mở rộng qua plugin Điều này giúp bổ

sung thêm chức năng cho trình biên tập và hỗ trợ thêm ngôn ngữ.

Hình 2.8 Hình ảnh logo của Visual Studio Code

! Tham khảo tại: https://en.wikipedia.org/wiki/Visual_Studio_Code, lần cuối truy

cập 02/05/2023.

17

Trang 30

2.1.3.2 Công cụ hỗ trợ khác

1 Android Studio: là môi trường phát triển tích hợp (IDE) dành cho Android.Android Studio được xây dựng trên phần mềm IntelliJ IDEA của JetBrains và đượcthiết kế đặc biệt với các công cụ lập trình giúp xây dựng và phát triển các ứng dụng

chất lượng cao nhất dành cho nền tảng Android của Google

2 Lunacy: là trình chỉnh sửa vector thé hệ tiếp theo miễn phí phổ biến dành chothiết kế UI, UX và Web Nó kết hợp các tính năng tốt nhất của ứng dụng thiết kế đểmang đến cho bạn trải nghiệm thú vi nhất có thể Tận dụng thư viện đồ họa tích hợp,

sử dụng các công cụ AI mạnh mẽ và cộng tác trong các dự án của trong thời gian

thực Lunacy cũng cung cấp hỗ trợ định dạng ứng dụng chéo, sử dụng ngoại tuyến và

lưu trữ đám mây.

2.1.4 Thuật toán Levenshtein Distance

Khoảng cách Levenshtein là một thuật toán được sử dụng dé tính toán sự khác

biệt hoặc tương đồng giữa hai chuỗi Nó đo lường số lần tối thiểu các hoạt động

(thêm, xóa hoặc thay thé) cần thiết dé chuyền đôi một chuỗi thành chuỗi khác

Thuật toán khoảng cách Levenshtein được đặt theo tên Vladimir Levenshtein,

người đã giới thiệu nó vào năm 1965 Nó được sử dụng rộng rãi trong các ứng dụng

khác nhau, bao gồm kiểm tra chính tả, phân tích chuỗi DNA và tính toán sự tương

Trang 31

al if | = 0,

b if|a| =0,

lev (tail(a), tail(b)) if a{0| = b|0],

lev(a, b) = lev (tail(a), b)

1+ min 4 lev (a, tail(d)) otherwise

lev ( tạl(ø), tail(b))

Hình 2.9 Cơng thức Levenshtein Distance (nguồn: Levenshtein distance

-Wikipedia)

Theo céng thuc:

- Néu độ dai chuỗi b = 0, thì khoảng cách lev(a,b) bang độ dài chuỗi a và

ngược lại với trường hợp a = 0.

- _ Nếu ký tự đầu tiên của chuỗi a và ký tự đầu tiên của chuỗi b là giống nhau,

thì khoảng cách lev(a,b) bằng khoảng cách của chuỗi a và khoảng cách củachuỗi b loại trừ ký tự đầu tiên bị trùng Sau đĩ tiếp tục thực hiện đo khoảng

cách giữa hai chuỗi mới này.

- Nếu ký tự đầu tiên của chuỗi a khác ký tự đầu tiên của chuỗi b, lần lượt

thực hiện đo lev(tail(a),b) — khoảng cách chuỗi a loại bỏ ký tự đầu tiên vàchuỗi b; lev(a, tail(b)) — khoảng cách chuỗi a và chuỗi b loại bỏ ký tự đầutiên; lev(tail(a), tail(b)) — khoảng cách chuỗi a và chuỗi b đều loại bỏ ký tự

đầu tiên, lấy kết quả bé nhất cộng thêm 1 đơn vị Sau đĩ lặp lại các thao

tác trên.

s* Nhận xét độ phức tạp thời gian và khơng gian:

Với m, n lần lượt là độ dài chuỗi a, b Trong trường hợp xấu nhất, mỗi lần gol

đệ quy dẫn đến ba lần gọi đệ quy khác Vì vậy, độ sâu của cây đệ quy bang với giá trilớn nhất của độ dài chuỗi a hoặc b (h = max(m, n)) Tại mỗi lần gọi đệ quy, mỗi thao

tác tốn O(1) Vậy độ phức tạp thời gian trong trường hợp xấu nhất là 1 + 3 + 3^2 +

343 + + 3^h = 3^(h+1) - 1 = O(3^h) Cĩ thé thay, bằng việc sử dụng phương phápLevenshtein Distance tốn rất nhiều thời gian thực thi, do đĩ thuật tốn Wagner-

Fischer được phát minh nhằm tối ưu hố phương pháp này.

19

Trang 32

Độ phức tạp không gian băng với kích thước của ngăn xếp mỗi lần gọi đệ quy,

bang với chiều cao của cây đệ quy

Vậy độ phức tạp không gian = O(h) = O(max(m, n)).

2.1.5 Thuật toán Wagner-Fischer

Thuật toán Wagner-Fischer được phát minh bởi Robert A Wagner và Michael

J Fischer vào năm 1974 Thuật toán Wagner—Fischer là một thuật toán lập trình động

tính toán khoảng cách chỉnh sửa giữa hai chuỗi ký tự [7] Thuật toán Wagner-Fischer

tính toán khoảng cách chỉnh sửa dựa trên quan sát rằng nếu sử dụng một ma trận đểlưu trữ khoảng cách chỉnh sửa giữa tất cả các ký tự của chuỗi thứ nhất và tất cả các

ký tự của chuỗi thứ hai, từ đó có thé tính toán các giá trị trong ma trận bằng cách lấpday ma trận và giá trị cuối cùng tính toán được chính là kết quả cần tìm

Khởi tạo ma trận với số lượng dòng và cột tương ứng số lượng chữ cái trong

hai chuỗi a và b sau đó tăng thêm 1 don vị Hay kích thước ma trận băng (m + 1) *

(n + 1) với m là độ dài chuỗi a và n là độ dài chuỗi b Với vị trí của từng 6 trong ma

trận được xác định bằng 1 và J, và dòng/cột đầu tiên của ma trận được xem là trường

hợp chuỗi rỗng.

0 1 | j-t} j ljị+1] m

i [IU-1]

Hình 2.10 Ma trận với ¡ và j làm vị trí của ký tự trong chuỗi

Vị trí ô [ï][j-1] trong ma trận tương ứng với số thao tác cần thực hiện trong

việc chuyền đối từ chuỗi ký tự 0 (j-1) sang chuỗi ky tự 0 i là bao nhiêu đơn vị thao

20

Trang 33

tác Ví dụ, xét hai từ word và short nếu xét vị trí [2][3] tương ứng với việc xét chuỗi

‘wo’ và ‘sho’ sẽ cần bao nhiêu thao tác dé chuyên đồi

Có tông cộng ba thao tác sẽ được thực hiện trong việc chuyên đổi các chuỗi

ký tự bao gồm:

- Chèn: owl > bowl cần chèn ký tự “b'

- _ Xoá: trust > rust cần xoá ký tự ‘t’

- _ Thay thế: cost > most cần thay thé ký tự ‘c’ bằng ‘m’

Vi dụ về hai chuỗi a và b tương ứng với hai từ: word và short được xếp vào

ma trận (4 + 1)(5 + 1) = 5x6 Với °° là chuỗi rỗng, 4 là độ dài từ word và 5 là độ dài

từ short.

` S H O R T

+> WHO | C o|/wD/O|s

Hinh 2.11 Vi du vé tao lập ma trận cho hai chuỗi ký tự

Dựa theo công thức gốc Levenshtein Distance, xét trường hợp liệu chuỗi a hay

b là chuỗi rỗng, tương ứng với độ dài ký tự là 0 Thì giá trị kết quả của thuật toán

bang độ dài của chuỗi còn lại.

Trang 34

Trong đó, 6 giá trị [2][0] có giá trị là 2 tương ứng với việc chuyền đổi chuỗi

‘wo’ thành ‘’ đơn giản chỉ việc thực hiện 2 thao tác xoá đối với chuỗi ban đầu (xoá w

và xoá 0).

Sau đó, bắt đầu xét chuỗi ký tự với vị trí đầu tiên của chuỗi a (word) hay ‘w’với chuỗi ký tự với vị tri đầu tiên của chuỗi b (short) hay ‘s’ Do ‘w’ khác ‘s’ nên giátri chuyén déi bang gid tri nho nhất trong việc thực hiện các thao tác chèn, thay thế,

xoá tang thém 1 Hay min(1,0,1) + 1 = 1.

Nói một cách đơn giản, việc chuyên đổi từ ‘w’ sang ‘s’ cần một thao tác thay

Hình 2.13 Ví dụ chuyên đổi những ký tự đầu tiên của hai chuỗi bằng ma trận

Thực hiện tương tự với ky tự ‘w’ chuyên đổi thành ‘s’, ‘sh’, ‘sho’, ‘shor’,

‘short’ Va ‘wo’ thanh ‘s’, ‘sh’.

Với trường hợp hai ký tự đang xét tại vị trí ¡ và j giỗng nhau hay ‘wo’ va ‘sho’.Lập tức bỏ qua hai ký tự này và sử dụng kết quả của hai phần chuỗi ký tự trước tươngứng là ‘w’ va ‘sh’ cho kết quả giá trị chuyên đồi

Hay nói cách khác, việc chuyên đổi từ chuỗi ‘wo’ sang ‘sho’ tương đương với

việc chuyên đổi chuỗi ‘w’ sang ‘sh’ và cần thực hiện 1 thao tác thay thế (ký tự w

thành s) và 1 thao tác chèn (ký tự h).

22

Trang 35

Thực hiện tương tự cho đến khi lấp đầy ma trận Kết quả gia tri chuyén đổi tai

6 cuối cũng chính là số lượng thao tác cần thực hiện trong việc chuyền đổi từ chuỗi

ký tự ‘word’ sang ‘short’, và tương ứng với giá tri là 3.

Hình 2.15 Ví dụ chuyên đổi hai chuỗi ký tự sử dụng ma trận với kết quả cuối cùng

Như vậy, việc chuyển đổi chuỗi ky tự ‘word’ thành ‘short’ cần 3 thao tácchuyền đổi gồm:

1 thao tác thay thế (w thành s): word > sord,

1 thao tác chèn (ký tự h): sord > shord,

1 thao tác thay thế (d thành t): shord > short

+* Nhận xét độ phức tạp thời gian và không gian:

Với m là độ dài chuỗi a và n là độ dài chuỗi b Đề triển khai ma trận cần hai

vòng lặp đơn dé giải quyết chuỗi ký tự rỗng, và một cặp vòng lặp lồng nhau dé giải

quyết quá trình chuyền đổi Do vậy, độ phức tạp về thời gian băng: O(m) + O(n) +

O(mn) = O(mn) Ở một góc độ khác, do chỉ truy cập các phần tử trong bảng một lần

23

Trang 36

và thực thi một phép tính, nên độ phức tạp thời gian bằng: (m + 1)(n + 1) * O(1) =

O(mn).

Do thuật toán được triển khai trên ma trận có kích thước (m+ 1)(n+ 1), nên

độ phức tap không gian: O(mn).

2.1.6 Tối ưu hoá thuật toán Wagner-Fischer

Mặc dù sử dung một không gian vùng nhớ với kích thước (m + 1)(n + 1) với

m là độ dài chuỗi a và n là độ dài chuỗi b, dé lưu trữ ma trận các giá tri chuyền đôicho từng ký tự Tuy nhiên, dé tính toán giá trị chuyền đổi, chi sử dụng dòng dit liệu

trước đó [i - 1][0 n] và 6 dữ liệu trước đó [i][j — 1] Đồng thời, những 6 đữ liệu còn

lại sẽ bị bỏ qua.

Do đó, có thé sử dụng một mang (array) và hai biến giá trị (pre, temp) đề lưu

các số liệu chuyên đổi thay cho việc sử dụng ma trận Với phương pháp này, các giá

trị mới sau khi tính toán sẽ ghi đè lên các 6 dữ liệu cũ, và các biến (pre, temp) đóngvai trò giữ lại các 6 giá trị cũ dé thực hiện công việc tính toán cho vòng lặp tiếp theo’

Hình 2.16 Ví dụ chuyền đổi hai chuỗi ký tự sử dụng một mảng

Với ký tự đầu tiên của chuỗi a (word) là rỗng, thực hiện việc lấp đầy mảng

(array) với các giá trị từ 0 đến n (n là độ dài chuỗi b) Và array[0] đại diện cho ký tựrỗng của chuỗi b nên luôn cho giá trị bằng ¡

Trong đó, X là gia trị cần tính toán, nếu ký tự tại vị trí X là giống nhau, giá tri

X sẽ được gán bằng giá trị của biến pre, ngược lại sẽ lấy giá trị nhỏ nhất của ba biến

? Tham khảo tại: https://www.enjoyalgorithms.com/blog/edit-distance, lần cuối truy

cập 05/06/2023.

24

Trang 37

min(pre, temp, array[j]) tăng thêm một đơn vi Sau khi có gia trị của 6 X, gan lại

array[j] bằng X, pre bằng temp, và temp bằng array[j] và tiếp tục thực hiện công việc

tính toán, ghi đè lên các ô giá trị của mảng.

Hình 2.17 Ví dụ chuyền đối hai chuỗi ký tự sử dụng một mang và kết quả cuối cùng

Lặp lại các thao tác tương tự cho đến khi không còn ký tự nào của chuỗi ađược xét nữa Lúc này, kết quả giá trị chuyên đổi bằng với giá trị tại phần tử cuốicùng của mảng (array), và cũng chính là số lượng thao tác cần thực hiện trong việcchuyên đổi hai chuỗi ký tự

+* Nhận xét độ phức tap thời gian và không gian:

Độ phức tạp thời gian tương đồng với phương pháp sử dụng ma trận, do cả haiphương pháp đều phải duyệt qua tất cả ký tự của hai chuỗi a, b (m là độ dài chuỗi a

và n là độ dài chuỗi b) và bằng O(mn)

Tuy nhiên, do sử dụng hai mảng giá trị để lưu trữ kết quả với độ dài bằng n

(độ dài chuỗi b) Do đó, độ phức tạp không gian là O(n), cải thiện một cách đáng kế

so với sử dụng phương pháp ma trận.

* Nhận xét kết quả tối ưu thuật toán:

Mặc dù độ phức tạp thời gian khi so sánh giữa phương pháp sử dụng ma trận

và phương pháp sử dụng một mảng là tương đương nhau Tuy nhiên, phương pháp

tối ưu hóa một mảng hưởng lợi từ việc sử dụng bộ nhớ tốt hơn, cải thiện hiệu suất

hoạt động của chương trình được áp dụng, điều này có thể tạo ra sự khác biệt đáng

kế trong thực tế, đặc biệt là đối với kích thước mẫu đầu vảo lớn

25

Trang 38

2.2 Phương pháp nghiên cứu

Bước tiêp theo của việc lên ý tưởng phân mêm là lựa chọn công nghệ va công

cụ sao cho hiệu quả và phù hợp với phạm vi và tính năng của ứng dụng Bên dưới là

giải thích lý do cho việc lựa chọn các công nghệ va công cụ hỗ trợ cho việc triển khai

ý tưởng phần mềm

Lý do lựa chọn Flutter làm nền tảng chính phát triển ứng dụng di động:

Flutter là một framework phát trién ứng dụng đi động đa nên tang do đó nócung cấp khả năng phát triển ứng dụng cho cả iOS và Android từ một mãnguồn duy nhất Từ đó có thé dé dàng xuất bản ứng dụng cho cả hai nền

tảng di động lớn này một cách dễ dàng.

Flutter có giao điện người dùng đồng nhất, đẹp mắt (với hơn 2000 thànhphần giao diện khác nhau), hiệu suất cao và tính năng hot reload nhờ đó

giúp tăng năng suất phát trién

Flutter có một cộng đồng phát triển mạnh mẽ và rất nhiều tài liệu hỗ trợgiúp cho việc tìm ra các giải pháp hỗ trợ (thắc mắc, sửa lỗi) trở nên dễ

dàng.

Một trong những lý do quan trọng trong việc lựa chọn Flutter nhờ vào khả

năng dễ cài đặt lên máy tính, dễ tiếp cận với người mới và ngôn ngữ Dart

với cầu trúc đơn giản và hỗ trợ hướng đối tượng.

Ly do lựa chọn các dich vụ của Firebase (Cloud Firestore, Authentication,

Cloud Storage):

Với quy mô ứng dụng vừa và nhỏ thì việc lựa chọn các dịch vụ của Firebase

cho các chức năng xác thực, lưu trữ tệp và cơ sở dit liệu giúp giảm tối thiểuthời gian thiết đặt và triển khai nơi lưu trữ đám mây cho ứng dụng

Các dịch vụ này có thé kết nói với nhau dé dàng giúp cho việc đồng bộ hoá

dữ liệu lưu trữ tối ưu cả về thời gian và công sức

Ứng dụng gần như không bao gồm các mối quan hệ phức tạp giữa các mô

hình di liệu, từ đó việc lựa chon một cơ sở dir liệu NoSQL như Cloud

Firestore sẽ dễ dàng cho việc triên khai cơ sở dữ liệu ứng dụng hơn.

26

Trang 39

Các dịch vụ của Firebase mặc định đa phần đều miễn phí với số lượng và

khôi lượng tính năng lớn Hơn nữa, nêu muôn mở rộng và trả phí thêm cho

các dich vụ thì chi phí cho nó là tương đối thấp

Ly do lựa chọn các dịch vụ khác của Google như Google Cloud và Dialogflow:

Dialogflow sử dụng trí tuệ nhân tạo và xử lý ngôn ngữ tự nhiên để hiểu và

phản hồi các câu hỏi và yêu cầu từ người dùng, đồng thời hỗ trợ nhà phát

triển tạo ra các bối cảnh cho đoạn đối thoại một cách chủ động và mangtính đặc trưng và biểu tượng

Dialogflow sử dụng API key được cung cấp bởi Google Cloud, tiếp tục là

một dich vụ khác của Google giúp cho việc quan lý và đồng bộ dé dàng

Sử dụng Dialogflow cho việc tạo ra chatbot trong ứng dụng nhằm hỗ trợngười dùng một số tính năng cơ bản như: hỗ trợ giải đáp các tính năng củaứng dụng, tra cứu nghĩa của từ, tra cứu từ đồng nghĩa trái nghĩa,

Lý do lựa chọn Lunacy cho công đoạn thiết kế giao diện người dùng:

Lunacy là phần mềm hỗ trợ thiết kế giao diện người dùng miễn phi và phổ

biến với rất nhiều tính năng hữu ích

Lunacy với giao diện phần mềm cực kỳ dễ sử dụng và mạnh mẽ, giúp tạo

các trang giao diện dễ dàng và nhanh chóng.

Lunacy có bộ biểu tượng (icon) và hình ảnh minh hoa (vector, image) cực

kỳ đa dang và khả năng xuất ra các định dạng png hay svg rất hữu ích cho

giai đoạn lập trình giao diện sau nay.

27

Trang 40

CHUONG 3 PHAN TÍCH VÀ THIET KE UNG DUNG

Quản trị viên: là người quan trị hệ thống, quan ly cơ sé dit liệu

Người dùng: là người sử dụng của ứng dụng di động.

Trang web quản lý: là sản phẩm giúp quản trị viên thao tác với cơ sở ditliệu hoặc xem thống kê dit liệu

Ứng dụng di động: là sản phẩm trực tiếp tương tác với người dùng

Google Cloud API: địch vụ cung cấp API đóng vai trò liên kết ứng dụng di

động và dịch vụ Dialogflow.

Dialogflow: là nền tảng tạo ra chatbot cung cấp cho ứng dụng

Các dịch vụ Firebase: bộ công cụ của Firebase cung cấp các tính năng xác

thực đăng nhập (Authentication), lưu trữ dtr liệu (Cloud Firestore), lưu trữ

tệp tin (Cloud Storage).

28

Ngày đăng: 02/10/2024, 04:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w