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 3THONG 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 4LỜ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 51.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 63.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 7CHUONG 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 85.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 9Hì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 10Hì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 11Hì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 12DANH 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 13TÓ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 14s* 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 15CHUONG 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 17về 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 181.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 19Chí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 20CHƯƠ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 23Dialogflow 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 24Khi 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 25Firestore
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 26Tươ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 27Firebase 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 282.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 29Firebase 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 302.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 31al 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 33tá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 34Trong đó, 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 35Thự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 36và 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 37min(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 382.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 39Cá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 40CHUONG 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