Ứng dụng giúp mang đến chức năng cơ bản như số ghichép, quản lí sự kiện, lễ, các khoản vay, nợ, các hóa đơn sắp phải thanh toán và thông báogiảm tải những điều mà người dùng phải nhớ để
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HE THONG THONG TIN
HOANG DINH PHU - 19520838
KHOA LUAN TOT NGHIEP
TÌM HIEU CÔNG NGHỆ DEEP SPEECH VÀ XÂY DUNG UNG DUNG
QUAN Li CHI TIỂU TREN THIẾT BI DI ĐỘNG
STUDY DEEP SPEECH TECHNOLOGY AND DEVELOP AN
APPLICATION FOR MANAGING EXPENSES ON MOBILE DEVICES
KY SƯ NGANH HE THONG THONG TIN
GIANG VIEN HUONG DAN
THS THAI BAO TRAN
TP HO CHÍ MINH, 6/2023
Trang 2LỜI CẢM ƠN
Đầu tiên em xin được gửi lời cảm ơn đến Trường Đại học Công nghệ Thông tin đã tạo mộtmôi trường học tập, rèn luyện chất lượng cao dé em có những kiến thức nền tảng về ngành
mà mình đam mê cũng như hoàn thành khóa luận này.
Em cũng xin gửi lời cảm ơn sâu sắc nhất tới cô Thái Bảo Trân đã chỉ dạy, định hướng, thúcđây em trong quá trình học tập, nghiên cứu đặc biệt là hoàn thành sản phẩm lần này
Tuy nhiên, trong quá trình nghiên cứu có thể còn những thiếu sót do hạn chế thời gian vàthêm vào đó kỹ năng, kiến thức chuyên môn còn đang được hoàn thiện Vì vậy, em rất mongnhận được sự quan tâm, đánh giá và đóng góp ý kiến của thầy cô để em có thể rút ra đượcnhững bai học kinh nghiệm dé hoàn thiện bản thân, dé không phụ lòng kỳ vọng của quý thay
cô cũng như công hiến cho xã hội
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Hoàng Đình Phú
Trang 3MỤC LỤC
Chương I MO ĐẦU 2-52 22212 EE2E2121121121121111111121211.11 1111 2
1.1 Lí do chọn để tài :ccccc 2tr reo 2
1.2 Phạm vVi -cL CC SĐT 11T ST KĐT KĐT kg kg KH 1K kEt 2 1.3 Mục tIiÊU LLL LH HT TS HT ng KT KT kg kg K01 krr 3
1.4 Khảo sát các ứng dụng đã có sẵn 2-2: 22522E2x2E2212112122121121121 21211211211 xe 3
1.4.1 Số thu chi: Quản lý chỉ tiêu - 2-5255 E222 1221271717121 31.4.2 Quản lý tiền: theo dõi chỉ phí 2-2 2+2x+SE+2E+2E+2EEEEEEEEEEEEEECEEEEEEerkrrree 41.4.3 Quản lý chi tiêu — số thu chỉ -2- 5: ©5c2522S22EE2E1EEEEEEE2E2E211211221221 11212 5Chuong 2 CO SỞ LÝ THUYÊT s.55225ES222EEEESEEEEEEEE22121121127121 2121 xe 7
2.3.1 Quy luật của âm lịch Việt Nam L0 11121112 111111111 1111111111151 xe 16
2.3.2 Công thức tính chuyền đổi giữa Dương lịch và Âm lịch Việt Nam 18
2.3.2.1 _ Đổi ngày Dương lich ra số ngày Julius 5c ©5c+se+cz+zzxssrxerxered 192.3.2.2 Tinh điểm Sóc tháng 11 âm lịch dựa vào Đông chí 5: 5-52 202.3.2.3 Đôi ngày dương thành ngày âm lịch 2-52 2 x+2E£E2E2Ezzzxcrxcred 20
2.3.2.4 Đôi ngày âm lịch sang ngày dương lịch 2-2 s2s2z2z+zzrxerxcred 21
2.4 FITeDase ha 21
Chương 3 PHÂN TÍCH THIET KE.uoi.ce.ccecceccescsscesessessessessessssssessessessessessesssssenessesseesess 23
Trang 43.1 DAC ta nh 233.2 Sơ db uS€-CaSe ch TH TH HE 11 H1 11211111 11111111 111111 1E tk ro go 24
3.3 Sơ đồ hoạt động -2- 2+ E2 2E12E12712212212112112112112110111211121.E1Eaeeeg 253.4 Lược đồ cơ sở dữ liỆU ©2:- 55:22 2E 2E1221122112112711211211271211211211 211.11 re 293.5 Thiết kế giao điện - SE E1 E521571511211211111211211111111111 1111212111 re 34Chương4 CÀI ĐẶT THỰC NGHIỆM -2-©+22++2E++2EE+tEEEtEEkrzrkrerkrerred 46
4.1 Xây dựng Ứng dỤng - -. - + Sc 11k 1S ST TH TH HH, 46 4.2 Xây dựng bộ dữ liệu ©-+-©22+22k+2E12221127112711271121121121122111211 21 re 46
Su con 5 47
4.3.1 Yêu cầu đầu vào của mô hình ¿¿ 2+ ++2++cx+2ExeEx++rxezrrerxrzrxerxrerxee 474.3.2 _ Tiền xử lí dữ liệu -22¿+2E2EE221221122112712112211211211.1121 1c 484.3.3 Tổng quan về dữ liỆu - 2 25t E22E2112E1271221271211211211211211 111 re 49
4.4 Xây dung mô hình DeepSpeech - - 2c 3112112 1131151111511 11 1111111 rrke 49
AA Thiết lập môi trường -c: 5s + 1xx E211211271211211 1111111211111 1xx cre, 49
4.4.2 Đào tạo mô hình 22c 6E 221111622231 111115911 1111195111119 11kg 1kg khay 50
4.5 Kết quả mô hình -5-©5- 252 2<2212E1E2152121121121121121127111112112111111 11.11 re 52
4.6 Tích hợp vảo Ứng dỤụng - - - c c t1 1121 19111 11111 111111111 11 111g TH Hinh Hiệp 56 4.7 Phát hành 2-++2 tk 2212211271122112211221211221112111.111 211cc 56
4.6.1 Thiết lập tài khoản nhà phát triỀn - ¿2-2 2 +E£EE£EE2E££E£EEEEE2ErEerxerxzreree 56
4.6.2 _ Thiết lập ứng dụng trong Google Play Console 2-52 ©5z+5z+£++zs+zsszxd 59Chương 5 TONG KET i.eeececceccssssssessessessessvsssessessessessvssvsssssssssesiessessessssnsssssnssssssessesseesess 62
5.1 Kết qua dat GUC cecceccccccsccssessessessesssssssssessessessessessessussusssssseesessessessessesssssssessesseesess 62
5.2 nh dd 62
5.3 Hướng phát triỂn 2 2s+2kSEE2E221211211221211271711121211211211 21111 yee 63
Trang 6Hình 2-2 Kiểm tra ngữ phap.o c.ccccccccccccsscsscesessessessessessvcssesscssessessessessssssssssssessessessesssanessesseess 8
I0) 6A00.0ui.09.ì 1 3 U 9 Hinh 2-4 Logo ctta Flutter 0 10
Hình 2-5 Kiến trúc của Flutter ccscccsssssssssssscessnseessssseescessnsecessnsecsesssnescssnneesssneeeesssneeessees 11
Hình 2-6 So sánh 2 phiên ban Material (2 - bên trai, 3 - bên phả!) -++5s<5s+2 13 Hình 2-7 So tiện ích chọn ngày giữa Material 3 (bên trai) va Cupertino (bên phải!) 14
Hình 2-8 Mô hình hoạt động của kênh nền tảng - 2-52 2+S22EE+£E+£E+£E+£EzE+zEzrssrxee 15Hình 2-9 Vị trí của Trái Đất só với Mặt Trời theo mốc thời gian trong năm 17Hình 3-1 Sơ đồ se-case c: - t2 2 v22 tr reo 24
Hình 3-2 Sơ đồ hoạt động cho chức năng đăng ký - 2-2-2 £+£2+£++££+EE+£Eerxrrxerreee 25
Hình 3-3 Sơ đồ chức năng cho chức năng đăng nhập -2- 2 5£ +52+££+££+£++£++£xerxrxeez 27Hình 3-4 Sơ đồ hoạt động cho chức thêm, cập nhật dữ liệu - - - ¿+55 +++<x+sx++ 28Hình 3-5 Sơ đồ hoạt động cho chức năng xóa dữ liệu - - 522 5+ St +Eseserrsersrxee 28Hình 3-6 Lược đồ cơ sở dữ liệu -:: 222++t2EEvvttrtEErtrtttrtrrrttrtrrrrrrrrrrrrrrrrrriiee 29
Hinh 3-7 /ìi8niii0iii) 0117 34
Hình 3-8 Màn hình số ghi chép chi tiêu -2 2: ©2¿5S2E£2EE£2EE£EE2EEtEEE2EECEEEEEEzErrrrrer 35
Hình 3-9 Màn hình thêm mới chi tiÊU - 5c 2631991291 15121 191151 11 11 11011111 gr rnrkp 37 Hình 3-10 Màn hình cách chức năng nâng CaO - -c- SG c3 3211212115111 1.1.1 rke 39
Hình 3-11 Màn hình quan li vay TỢ c2 221131111511 1911 19 11511110111 11 11H HH ke 41 Hình 3-12 Man hình quản lí sự kiỆn - - c2 3221122113511 E2 1121151151111 111 1k key, 43 Hình 3-13 Màn hình thêm mới hóa đơn 6 +32 E22 E23 E212 1 E1 8115121111111 1 Hiện 44
Trang 7Biểu đồ kết quả trên 50% o ccccccccccsessessesssssessessessessessessessssssessessessessessessesssssseeeeses 54
Các từ được đảo tạo nhiều nhất -.- ¿5-2 Ss SE SE9E851232E15551212E2555111212E251E32x5e x2 55Các bước thiết lập tài khoản nhà phat triển - 2-2 52+ 2E22E£2EE+EEerxerxerreee 57
Thông báo thanh toán phí nhà phát triÊn 2 2+2£2E+£E+£E+£EzEzEzzzzezxeei 58
Thư thông báo xác minh danh tính - 5 + 32+ ***E+E+vEEeeEseEsereseeerrrrerke 58 Thư thông báo xác minh danh tính thành công - - 2555 +++++s+sesserssss 59
Các bước cung cấp thông tin về ứng dụng - 2 ++2+£+2E++E++EE+Exerxerxerreee 60Hình ảnh ứng dụng Heo đất trên cửa hang Google Play -2- 2 s5: 62
Trang 8DANH MỤC BANG
?T) 50908) /ár8si:):0a 00:12 1 30 Bang 3-2 Mô tả bang UserÏÖefa1ÌS - - c1 1211211911211 1119111 11 11T 1n HH nnrkp 30 Bảng 3-3 Mô tả bảng TYD€S - Ác 1 11T TH TT nh TT TH HT TH TH nưkp 31
Bang 3-4 MG ta bang Event 1 šš57 31
Bang 3-5 MG ta bang 1n dd 31 Bang 3-6 Mô tả bang EXD€TS€S, - Q0 1S TT HT 1 TH ng ni 32 Bang 3-7 Mô tả bảng DebtLOaTS - 2G 022112111211 311 11119111 111111 11 11H TH HT ng Hư nrệp 32 Bang 3-8 Mô tả bang NoOtIÍÍCafIOTS - SG SG 012111 12112 11111911111 11111111 T1 HH nà rệt 33
Bang 3-9 Mô tả các thành phan trong màn hình chính -2- 52 ©52+£2££2££2£++zxezxe+z 35Bảng 3-10.Mô tả các thành phan trong màn hình số ghi chép - 2-2 22 s52 36Bang 3-11 Mô tả cách thành phan trong màn hình thêm mới chi tiêu - 38Bảng 3-12 Mô tả các thành phan trong màn hình các chức năng nâng cao 40Bảng 3-13 Mô tả cách thành phan trong màn hình quản lí vay nợ -::-: 42
Bang 3-14 Mô tả các thành phan trong màn hình quản lí sự kiện 2- 5: 5255225+ 44Bang 3-15 Mô tả các thành phần trong màn hình thêm mới hóa đơn -5-52-5s 45Bang 4-1 So sánh cách thiết lập môi trường đảo tạo 2-2-2 s+E+2E£2E£+EE+EE2EEzrxerxered 49Bang 4-2 Các tham số đào tạo mô hình - 2-2: 5£ +222S£+EE£EE+EE£EEEEEEEEEEE2EE2EEEEEEEEErErrkree 51
Trang 9DANH MỤC TU VIET TAT
STT Tên thuật ngữ Mô tả
API API là các phương thức, giao thức kết nối với các thư viện và
ứng dụng khác Nó là viết tắt của Application ProgrammingInterface — giao diện lập trình ứng dụng API cung cấp khảnăng cung cấp khả năng truy xuất đến một tập các hàm hay
dùng
GPU GPU (Graphics Processing Unit) là một vi mạch chuyên dụng
được thiết kế dé thao tác và truy cập bộ nhớ đồ họa một cách
nhanh chóng, đây nhanh việc tạo ra các hình ảnh trong bộ đệmkhung hình trước khi xuất ra màn hình hién thị
Trang 10TÓM TAT KHÓA LUẬN
Ứng dung quản lý chi tiêu được bắt nguồn từ nhu cầu chính bản thân Cũng như bao sinhviên khác khi bắt đầu đi học phải tự lo cho bản thân từng khoản chi tiêu với sự thoải mái khikhông được kiểm soát chặt chẽ từ gia đình nên chỉ tiêu đầu tháng quá dẫn đến mất cân bằngchỉ tiêu Bản thân cũng thử ghi chép bằng Excel trong khoảng một năm thì nhận ra rằng ghi
chép tốn nhiều thời gian đặc biệt với thiết bị đi động cũng như thống kê Cũng như thường bị
quên ghi chép
Ứng dụng mang tên Heo đất được phát triển bởi chính bản thân ra đời để thực hiện sứ
mệnh đó Sử dụng công nghệ, framework mới nhất tại thời điểm hiện tại gồm: DeepSpeech
(công cụ chuyên đổi giọng nói thành văn bản thời gian thực), Flutter (framework phát triển
ứng dụng đa nền tảng), Firebase (hỗ trợ xác thực, đồng bộ hóa dữ liệu)
Báo cáo là toàn bộ quá trình từ khảo sát cho đến ứng dụng được phát hành trên cửa hàngứng dụng lớn nhất là Google Play Ứng dụng giúp mang đến chức năng cơ bản như số ghichép, quản lí sự kiện, lễ, các khoản vay, nợ, các hóa đơn sắp phải thanh toán và thông báogiảm tải những điều mà người dùng phải nhớ để tập trung vào những công việc trong cuộcsống hàng ngày
Trang 11Chương 1 MO DAU
1.1 Lido chon đề tài
Su khung hoang tai chinh, chiến tranh, dịch bệnh làm ảnh đến thu nhập đến các cá nhân,gia đình trên toàn thé giới Dé vượt qua thời kì khó khăn thì việc tiết kiệm chỉ tiêu và có kếhoạch chỉ tiêu hợp lý chưa bao giờ quan trọng đến thế Việc quản lí chi tiêu bằng cách ghichép đã được nhiều người làm từ xa xưa, nhưng phương pháp nay dần trở nên lạc hậu do tốnnhiều thời gian, không tiện lợi, không có thống kê, dễ xảy ra sai sót và khó kiểm tra Hơn nữa,khi tuôi tác càng lớn thì việc ghi chép dan khó khăn hơn Ngoài ra, việc chi tiêu nhiều thứ nhỏ
dẫn đến dễ quên và khó kiểm soát.
Việc ứng dụng công nghệ, mô hình học máy giúp cho việc quá đỗi bình thường này càng
dé dang hon bao giờ hết Dựa vào những khoản đã chi, các khoản phải chi trong tương laiđược thống kê mà người dùng có thể đưa ra những hướng giải quyết sớm
1.2 Pham vi
Đối tượng được hướng tới chính là các cá nhân như sinh viên đặc biệt là tân sinh viên dễ
bị mất kiểm soát các khoản chỉ tiêu trong thời gian đầu đi học trên giảng đường đại học.Những người đảm nhiệm các công việc nội trợ, chăm lo chính trong gia đình có mong muốn
có một công cụ hỗ trợ trong công việc quản lí chi tiêu Ngoài ra, những người có nhiều khoảnchi từ nhiều nguồn, thư ký, thủ quỷ cũng cần một công cụ tông hợp lại những chi tiêu đó
Việc ghi chép chỉ tiêu nhiều thứ lặp đi lặp trong một ngày trở thành một rảo cản vô hìnhkhiến mọi người thường không ghi chép lại những chỉ tiêu
Chuyền đổi giọng nói thành văn bản giúp quá trình ghi chú, tìm kiếm các chỉ tiêu thêm
phan tiện lợi và dé dang hon
Ung dụng có thể hoạt động tốt, hiệu quả trên các thiết bi di động sử dụng hệ điều hành
Android.
Trang 12Chufa quảng cáo * Mua hang trong ứng dung
Hình 1-1 Biểu tượng ứng dụng Số thu chỉ trên Google PlayDay là ứng xếp đầu tiên trong danh sách được Komorebi Inc phát triển Được đánh giá 4.8sao với 31 nghìn bài đánh giá, trên 500 nghìn lượt tải xuống
Trang 1305:39 P ọ - wee le 05:45 9 # - Bee — 0545 08+ Bee — 05:46 0 Me ewes
Ngay < 20/06/2023 (T.3) >< 06/2023i0/06 20700) >« 06/202301/0 3252)
cai dat co ban
a : - Tử ew
Ghi chú Khơng được nhập 2 MO 2 2 : thu ~56,666¢ “umản — +2,662,629,5950
Seok ủ ư z a * a ia Thay đối màu chủ đề Simple orange
Änuống | Chitiêuhàn Quần áo Mỹ phẩm _ = : (Ð_ Báo cáo danh mục trong năm
Tin thu Tin chỉ Tổng
#9 82 I ge 2,662,629,595đ 56,666đ 2,662,572,929đ Bao cáo tồnkì
Phí giao lưu Vie Giáodục Tien dign ®
Báo cáo danh mục tồn kì
Bilal Phíliên lac Tiềnnhà
YOR muảng 04 Thơng, 42 Khơng cho hiển thị quảng edo
fO} An uéng 56,666 teòx CA Ấn quảng cdo trước
Hình 1-2 Hình ảnh nồi bật của ứng dụng Số thu chi
Ưu điểm: Đập vào mắt người dùng khi tải ứng dụng về là màn hình thêm chỉ tiêu nên giúpngười dùng mới thuận tiện, đơn giản Cĩ nhiều loại báo cáo theo thời gian Cĩ cung cấp lịch
và hiên thị những khoản chỉ tiêu cho từng ngày Cĩ nhiều tùy chỉnh màu và ngơn ngữ
Nhược điểm: Giao diện gĩc cạnh khiến người dùng khĩ nhìn Chưa cĩ giao điện tối trongkhi các ứng dụng hiện đại đều cĩ Chứa nhiều quảng gây khĩ chịu cho người dùng Các báocáo nhiều loại nhưng đơn giản chỉ cĩ thé đơi khoảng thời gian thống kê Khơng cĩ chức năng
gì nổi bật ngồi ghi chép với thống kê đơm thuần
1.4.2 — Quản lý tiền: theo dõi chỉ phí
Quản lý tiền: theo dõi
Trang 1406/129 9 - 06:14 ` Ð 9 + wo 612 : Mứ 06:15 BOO:
= ® Tầng cộng ¥ E
€_ Thêmgiaodich =
CHI PHI
CHI PHÍ THU NHAP CHI PHI HU NHAP
theo năm theo thang theo tuần theo ngày O) Biểuđö
@ & Tat quảng cáo
Hình 1-4 Hình ảnh nồi bật của ứng dụng Quản lý tiền
Ứng dụng này xếp thứ 2 trên danh mục tìm kiếm được phát triển bởi Innim Mobile Exp
Được đánh giá 4.8 sao trong 267 nghìn bài đánh giá với hơn 5 triệu lượt tải xuống.
Ưu điểm: Có hỗ trợ máy tính đề tính toán Màu sắc đa dạng Có hỗ trợ giao diện tối và nhiều ngôn ngữ Danh mục nhiều và đầy chủ chỉ tiết
Nhược điểm: Chứa nhiều quảng cáo gây ảnh hưởng đến người dùng Độ tương phản giữa
chữ và các nút bam chưa cao gây khó nhìn Biéu đồ, các phần liên quan chưa được đầu tư kĩ
lưỡng
1.4.3 Quan lý chi tiêu — số thu chi
Quản lý chỉ tiêu - sổ thu
chỉ
HG Group Inc.
Chứa quảng cáo * Mua hàng trong ứng dung
Hình 1-5 Biểu tượng ứng dụng Quản lý chỉ tiêu - số thu chỉ
Trang 15Ứng dung “Quản lý chỉ tiêu — số thu chỉ” được phát triển bởi HG Group Inc Được đánh
giá 4.8 sao dựa trên 68 nghìn bài đánh giá với hon 1 triệu lượt tải xuống
Đăng Ky Tai Khoản Facebook 5 Tổng chi tu oun wm ® @® Giao thông z =
Duy trì cặp nhật tin túc quan trọng trên Facebook SDS OER SDS:
10 ThSC2068u:-5.815.296.213 Thu nhap:+6.646.464.646 4
" T0Kẹp Cứu Thương Tránh Tránh Tiếp Xúc @
Hoa quả -545.454 7.316đ Thời gian giao hang dự kiến cho san phẩm này là tử 7-9 ngày.
ddssaaof hunwh ‘Bbc trung: Có kẹp.
MỞ
| a ++ THÊM PHAN LOẠI MỚI
Hình 1-6 Hình ảnh nồi bật của ứng dụng Quản ly chỉ tiêu
N sen a + 1 ©, Wr, | C1 |
Uu diém: Giao dién đẹp, đơn giản Có hỗ trợ máy tính phục vụ cho cộng trừ nhân chia đơn giản Các loại chỉ tiêu được phân loại đầy đủ
Nhược điểm: Giao diện một số chỗ chưa được đầu tư Biểu đồ chỉ có một loại chưa đa
dạng Ứng dụng chưa có chức năng thông báo chưa có tính tự động
Trang 16Chương 2 CƠ SỞ LÝ THUYẾT
2.1 DeepSpeech
DeepSpeech (phát biểu sâu) là một công cụ tự động chuyền đổi âm thanh giọng nói thành đoạn văn DeepSpeech nhận vào một đoạn âm thanh và trả về bản dịch cho đoạn âm thanh
tương ứng
DeepSpeech sử dụng thuật toán DeepSpeech được phát triển bởi Baidu và được trình bày
trong “Hannun, A., Case, C., Casper, J., Catanzaro, B., Diamos, G., Elsen, E., Prenger R, Satheesh S, Sengupta S, Coates A., & Ng, A Y (2014) Deep speech: Scaling up end-to-end
speech recognition” [1]
DeepSpeech có thé được sử dung cho hai hoạt động chính liên quan đến nhận dang giọngnói - dao tạo và suy luận Suy luận nhận dạng giọng nói - quá trình chuyên đôi âm thanh nóithành văn bản viết - dựa trên một mô hình được đào tạo DeepSpeech có thé được sử dụng vớiphần cứng (GPU) phù hợp để đào tạo một mô hình bằng cách sử dụng một tập hợp dữ liệugiọng nói, được gọi là kho văn bản Sau đó, suy luận hoặc nhận dạng có thể được thực hiệnbằng mô hình được dao tao Mozilla cung cấp săn một số mô hình được dao tạo trước
DeepSpeech lấy một luồng âm thanh làm đầu vào và chuyền đồi luồng âm thanh đó thànhmột chuỗi ký tự trong bảng chữ cái được chỉ định trước phù tương ứng với ngôn ngữ cần đàotạo Việc chuyền đôi này có thể thực hiện được bằng hai bước cơ bản:
Thứ nhất, âm thanh được chuyên đổi thành một chuỗi xác suất đối với các ky tự trong bang
chữ cái Bước này được xử lí bởi một Deep Neural Network! Nhiệm vụ dự đoán kí tự xuất
hiện trong luông âm thanh đâu vao, có thê được hiéu là phiên âm.
! https://en.wikipedia.org/wiki/Deep_learning
Trang 17và gân giông nhau.
| fi IL | iT HÌ! orf |
Thu s pe:V3
> Theve 3 pets
Hình 2-2 Kiểm tra ngữ phápPhần lõi của Deep Speech được viết băng C++ nhưng có các liên kết với Python, NET,
Java, Javascript và các liên két dựa trên cộng đông cho cung cap các ngôn ngữ khác
Trang 182.2 Flutter Framework
2.2.1 Dart, Flutter la gi?
Dart là một ngôn ngữ lập trình được thiết kế bởi Lars Bak và Kasper Lund và được phát
triển bởi Google Ngôn ngữ lập trình có thé được sử dụng dé phát triển ứng dụng web và thiết
bị di động cũng như ứng dụng máy chủ và máy tinh dé ban Ngôn ngữ lập trình được thiết kế
dé phát triển ứng dụng khách, chăng hạn như cho web và ứng dụng dành cho thiết bị di động,đồng thời nó cũng có thé được sử dụng dé xây dung ứng dụng máy chủ và máy tinh dé bàn.[2]
@ Dart
Hình 2-3 Logo của Dart
Mục tiêu của Dart sinh ra là cung cấp ngôn ngữ lập trình hiệu qua nhất dé phát triển danên tảng, kết hợp với nền tảng thời gian thực thi linh hoạt cho các khung ứng dụng
Flutter là một bộ công cụ phát triển giao diện phần mềm mã nguồn mở được tạo bởi
Google Được sử dụng dé phát triển phần mềm đa nền tảng cho Android, iOS, Linux, macOS,Windows, web, đựa trên một mã nguồn Flutter sử dụng ngôn ngữ lập trình Dart.?
? https://vi.wikipedia.org/wiki/Flutter (phần mềm)
Trang 19Hình 2-4 Logo của Flutter
Flutter được phát hành lần đầu tiên vào ngày 12 tháng 5 năm 2017 Phiên bản ôn định mớinhất cho đến khi viết báo cáo này là 3.10.2 phát hành vào ngày 24 tháng 5 năm 2023 Ứngdụng được phát triển cũng được phát hành dựa trêm phiên bản Flutter này
2.2.2 Kiến trúc của Flutter
Đối với hệ điều hành cơ bản, các ứng dụng Flutter được đóng gói giống như bat kỳ ứngdụng gốc nào khác Trình nhúng dành riêng cho nền tảng cung cấp một điểm vào; phối hợpvới hệ điều hành cơ bản dé truy cập vao các dịch vụ như hiển thị bề mặt, khả năng truy cập
và đầu vào; và quản lý vòng lặp sự kiện tin nhăn Trình nhúng được viết bằng ngôn ngữ phù
hợp với nền tảng: hiện tại là Java và C++ cho Android, Objective-C/Objective-C++ cho iOS
và macOS va C++ cho Windows và Linux Sử dụng trình nhúng, mã Flutter có thé được tíchhợp vào một ứng dụng hiện có dưới dạng một mô-đun hoặc mã có thể là toàn bộ nội dung củaứng dụng Flutter bao gồm một số trình nhúng cho các nền tảng mục tiêu chung, nhưng cũngtồn tại các trình nhúng khác
Flutter được thiết kế như một hệ thống phân lớp, có thể mở rộng Nó ton tại đưới dạng một
loạt các thư viện độc lập, mỗi thư viện phụ thuộc vào lớp bên dưới Không lớp nào có đặc
quyền truy cập vào lớp bên dưới và mọi phần của framework được thiết kế dé tùy chọn và cóthé thay thé [3]
10
Trang 20Dart Isolate Setup Rendering System Events
Dart Runtime Mgmt Frame Scheduling Asset Resolution
Frame Pipelining Text Layout
V/s ` —ỶïễỶ`
Embedder : : :
Platform-specific Render Surface Setup Native Plugins App Packaging
Thread Setup Event Loop Interop
Hình 2-5 Kiến trúc của Flutter
Flutter được thiết kế như một hệ thống phân lớp, có thể mở rộng Nó tồn tại đưới dạng một
loạt các thư viện độc lập, mỗi thư viện phụ thuộc vào lớp bên dưới Không lớp nào có đặc
quyên truy cập vào lớp bên dưới và mọi phan của cấp khung được thiết kế dé tùy chọn và cóthé thay thé
Lớp framework là lớp trên cùng là giao diện người dùng của ứng dụng, dành riêng cho
nền tảng Android và iOS Lớp trên cùng thứ hai chứa tat cả các tiện ích gốc của Flutter Lớpframework là nơi hầu hết các nhà phát triển có thê tương tác với Flutter Flutter cung cấp mộtkhung phản ứng và hiện đại được viết bằng Dart Đây cũng là lớp được tập trung chính trong
báo cáo
Trang 21Lớp động cơ (engine) được viết bằng C/C++ và nó xử lý các yêu cầu đầu vào, đầu ra,mạng và xử lý bản dịch của kết xuất bất cứ khi nào một khung hình cần được vẽ lại Đây làlớp tiếp nhận giao tiếp các hàm riêng biệt với từng nền tảng.
Các trình nhúng này cung cấp một điểm vào và phối hợp với hệ điều hành tương ứng của
chúng dé truy cap cac dich vu nhu kết xuất, lưu trữ, Đối với hệ điều hành cơ bản, các ứngdụng Flutter được đóng gói giống như bat kỳ ứng dụng gốc nào khác Trình nhúng dành riêngcho nền tảng cung cấp một điểm vào; phối hợp với hệ điều hành cơ bản để truy cập vào cácdịch vụ như hiển thị bề mặt, khả năng truy cập và đầu vào; và quản lý vòng lặp sự kiện tinnhắn Flutter cung cấp khả năng cho các trình nhúng có thé tùy chỉnh có nghĩa là có thé tạo ranhững cách mới dé đưa Flutter hoạt động trên các nền tảng quan trọng mà dự án hướng tới
Material Design là một hệ thống thiết kế mã nguồn mở được xây dựng và hỗ trợ bởi các
nhà thiết kế và nhà phát trién của Google? Một hệ thống thiết kế mã nguồn mở là một tập hợp
các thành phần có thể tái sử dụng được cung cấp miễn phí cho mọi người Mục tiêu giúp các
nhóm xây dựng giao diện người dùng nhất quán và chất lượng bằng cách cung cấp một ngôn
ngữ và bộ công cụ dùng chung cho các nhà thiết kế và phát triển Phiên bản hiện tại củaMaterial là 3 được ra mắt nửa cuối năm 2021 sau sự kiện Google I/O 2021 Tai đây Googlecông bồ phong cách thiết kế với tên gọi là Material You là một phần của Material 3 tập trungvào việc cá nhân hóa và tùy chỉnh giao điện người dùng Material trong flutter cung cấp cácthành phần theo Material 2 và 3 Flutter cũng đang quá trình nâng cấp toàn bộ lên Material 3
và đặt nó làm mặc định vào cuôi năm 2023.
3 https://vi.wikipedia.org/wiki/Material_Design
12
Trang 22Actions Actions
Common buttons © Common buttons ©
Elevated Elevated Elevated + Icon Elevated
Filled Filled Filled Filled
Filled tonal + Icon Filled tonal Filled tonal + Icon Filled tonal
Outlined + Icon lin C Outlined » < + Icon )
Text + Icon Text Text + Icon
Floating action buttons @
Floating action buttons ©
Hình 2-6 So sánh 2 phiên ban Material (2 - bên trái, 3 - bên phải)
Cupertino là tên một thành phố ở Thung lũng Silicon của California* Được biết đến là trụ
sở của Apple Cupertino là ngôn ngữ thiết kế do Apple phát trién và dựa trên Nguyên tắc giaodiện con người của Apple (Apple’s Human Interface Guidelines) [5], ngôn ngữ này triển khai
ngôn ngữ thiết kế iOS hiện tại Cupertino trong Flutter cung cấp một bộ sưu tập các tiện ích
Cupertino (kiểu iOS) đẹp và có độ trung thực cao dé xây dựng ứng dụng với ngôn ngữ thiết
kế iOS hiện tại
* https://en.wikipedia.org/wiki/Cupertino, California
13
Trang 23Hình 2-7 So sánh tiện ich chọn ngày giữa Material 3 (bên trai) va Cupertino (bên phải)
Widget (tiện ích) trong Flutter được xây dựng từ framework hiện đại lay cảm hứng từReact (thư viện xây dựng giao diện băng ngôn ngữ JavaScript mã nguồn mở) [6] Xây dựng
giao diện người dùng từ chính tiện ích Tiện ích được phân làm 2 loại chính là tiện ích có trạng thái (StatefullWidget) và tiện ích không có trang thái (Sateless Widget)
Tiện ích không có trạng thái là một đối tượng tĩnh không phụ thuộc vào sự thay đôi của
dữ liệu hay các hành vi nào Không có trạng thái không thể tự động cập nhật chỉ được cậpnhật lại khi đữ liệu bên ngoài thay đôi Vi dụ: Chữ, biểu tượng,
Tiện ích có trạng thái là một đối tượng động có thê được cập trong quá trình chạy dựa trênhành động của người dùng hoặc đữ liệu thay đối Có trạng thái và có thé cập nhật nếu dữ liệuđầu vào thay đôi hoặc trạng thái thay đổi Ví dụ: hộp kiểm, thanh trượt,
2.2.3 Kênh nền tảng
Flutter là framework thuần về việc phát triển nhanh giao diện ứng dụng trên bat kỳ lọaimàn hình nào Một ứng dụng không chỉ gồm những phần giao diện mà còn phần xử lí bêndưới Cùng một chức năng mỗi hệ điều hành cung cấp các API khác nhau hoặc hệ điều hànhnày có mà hệ điều hành khác không có Flutter sử dụng kênh nền tảng (platform channel) có
14
Trang 24thé sử dụng các API do hệ điều hành cung cấp Kênh nền tảng thuộc lớp Engine trong kiến
trúc cua Flutter
iOS host
_
FlutterViewController FlutterMethodChanne!
Hình 2-8 Mô hình hoạt động của kênh nền tang
Ở hình trên mình họa cách kênh nền tảng hoạt động cho hai hệ điều hành phổ biển nhấttrên điện thoại thông minh hiện nay (cách nên tảng khác tương tự) Ứng dụng sẽ giao tiếp vớicác nền thông qua MethodChannel Từ MethodChannel sẽ nhận một tham số là tên kênh Khi
15
Trang 25ứng dụng được xậy dụng cho nền tảng nào thì MethodChannel sẽ gọi các hàm đúng với tham
số tên kênh nhận được từ trước Đối với iOS thì sẽ gọi được hàm bên trong AppDelegate kếthừa từ FlutterViewController, còn Android thì là Activity kế thừa từ FlutterView Bên trongnhững hàm được viết ngôn riêng dành cho chính những nền tảng đó (Java hoặc Kotlin cho
Android; Swift, Objective-C cho 1Os; C++ cho Windows, ) Từ việc sử dụng ngôn ngữ dành
riêng cho chính những nền tảng đó nên ta có thê gọi và sử dụng API của chính nền tảng cũng
cap cũng như sử dụng thư viện ma ngôn ngữ đó sử dụng được.
Hiện tại DeepSpeech chưa hỗ trợ chính thức cho Flutter mà có thư viện Java vì vậy ứng
dung Heo đất sử dung Kotlin cho nền tang Android dé tích hợp mô hình này vào ứng dụng (sẽđược trình bày ở phần dưới)
2.3 Âm lịch Việt Nam
Âm lịch là loại lich dựa trên chu kỳ và vị trí của Mặt Trăng so với Trái Dat® Loại lịch duy
nhất trên thực tế chỉ thuần túy sử dụng âm lịch là lịch Hồi giáo, trong đó mỗi năm chỉ chứa
đúng 12 tháng Mặt Trăng.
Trong tiếng Việt âm lịch (hoặc lịch ta) thường được dùng dé chỉ nông lịch Đó là một loại
âm dương lịch chứ không phải âm lịch thuần túy Âm đương lịch là loại lịch được nhiều nềnvăn hóa sử dụng, trong đó ngày tháng của lịch chỉ ra cả pha Mặt Trăng (hay tuần trăng) vàthời gian của năm Mặt Trời (dương lịch) Nếu năm Mặt Trời được định nghĩa như là năm chítuyến thì âm đương lịch sẽ cung cấp chỉ thị về mùa; nếu nó được tính theo năm thiên văn thìlich sẽ dự báo chòm sao mà gan đó trăng tròn (điểm vọng) có thể xảy ra Trong phan lớn các
năm là 12 tháng nhưng cứ sau mỗi 2 (hay 3) năm lại có một năm với 13 tháng.
2.3.1 Quy luật của âm lịch Việt Nam
Có 5 nguyên tắc tính lịch quy luật lịch âm Việt Nam
- Ngày đầu tiên của tháng âm lịch là ngày chứa điểm Sóc
- _ Một năm bình thường có 12 tháng âm lịch, một năm nhuận có 13 tháng âm lịch
5 https://vi.wikipedia.org/wiki/Am_lich
16
Trang 26- - Đông chí luôn rơi vao thang 11 âm lịch
- _ Trong một năm nhuận, nếu có 1 tháng không có Trung khí thì thang đó là tháng nhuận
Nếu nhiều tháng trong năm nhuận đều không có Trung khí thì chỉ tháng đầu tiên sau
Đông chí là thang nhuận
Việc tính toán dựa trên kinh tuyến 105° đông (kinh độ của nước ta)
Sóc là thời điểm hội diện, đó là khi trái đất, mặt trăng và mặt trời nằm trên một đườngthang và mặt trăng nằm giữa trái đất và mặt trời (Như thé góc giữa mặt trăng và mặt trời bằng
0 độ) Gọi là “hội diện” vì mặt trăng và mặt trời ở cùng một hướng đối với trái đất Chu kỳcủa điểm Sóc là khoảng 29,5 ngày Ngày chứa điểm Sóc được gọi là ngày Sóc, và đó là ngàybắt đầu tháng âm lịch [7]
Tiết khí là 24 điểm đặc biệt trên quỹ đạo của Trái Dat xung quanh Mat Troi, mỗi điểm
cách nhau 15° Các điểm tiết khi được chia làm 2 loại trung khí và tiêu khí xen kẽ nhau Trungkhí là các điểm chia đường hoàng đạo thành 12 phan bằng nhau Trong đó, bốn Trung khí giữabốn mùa là đặc biệt nhất: Xuân phân (khoảng 20/3), Hạ chí (khoảng 22/6), Thu phân (khoảng23/9) và Đông chí (khoảng 22/12) Ngày dương lịch của các điểm khí có độ sai lệch + 1 ngày
17
Trang 27Dé tính ngày tháng âm lịch cho một năm bat ky chúng ta cần xác định những ngày nàotrong năm chứa các thời điểm Sóc (New moon) và các thời điểm Trung khí (Major solar term).Ngày mùng một của tháng âm lịch là ngày chứa điểm sóc.
Cách để xác định tên cách tháng và tìm tháng nhuận theo nguyên tắc Đông chí luôn rơivào tháng 11 của năm âm lịch Vì vậy cần tính 2 điểm Sóc ngay trước ngày Đông chí thử nhất
và thứ hai Nếu không cách giữa 2 điểm Sóc dưới 365 ngày thì năm âm lịch đó có 12 tháng.Nếu ngược lại thì năm âm lịch đó có 13 tháng hay còn được gọi là năm nhuận Tháng nhuậnđược gọi băng tên tháng trước đó kèm theo chữ “nhuận”
Vi dụ 1: Tính âm lịch Việt Nam năm 1984
Sóc A (ngay trước Đông chí năm 1983) rơi vào ngày 4/12/1983, Sóc B (ngay trước
Đông chí năm 1984) vào ngày 23/11/1984.
Giữa A và B là khoảng 355 ngày, như thé năm âm lịch 1984 là năm thường Tháng 11
âm lịch của năm trước kéo dài từ 4/12/1983 đến 2/01/1984, tháng 12 âm từ 3/1/1984
đến 1/2/1984, tháng Giêng từ 2/2/1984 đến 1/3/1984
Ví dụ 2: Âm lịch năm 2004
Sóc A - điểm sóc cuối cùng trước Đông chí 2003 - rơi vào ngày 23/11/2003 Sóc B
(ngay trước Đông chí năm 2004) rơi vào ngày 12/12/2004 Gitta 2 ngày nay là khoảng 385 ngày, như vậy năm âm lịch 2004 là năm nhuận Thang
11 âm của năm 2003 bắt đầu vào ngày chứa Sóc A, tức ngày 23/11/2003Tháng âm lịch đầu tiên sau đó mà không chứa Trung khí là tháng từ 21/3/2004 đến
18/4/2004 (Xuân phân rơi vào 20/3/2004, còn Cốc vũ là 19/4/2004) Như thé thang ay
là tháng nhuận.
Từ 23/11/2003 đến 21/3/2004 là khoảng 120 ngày, tức 4 tháng âm lịch: tháng 11, 12, 1
và 2 Như vậy năm 2004 có tháng 2 nhuận.
2.3.2 Công thức tính chuyền đổi giữa Dương lịch và Âm lịch Việt Nam
Ngày Julius hoặc số ngày Julius (viết tat theo tiếng Anh là JDN) là số ngày đã trôi qua kê
từ 12 giờ trưa Gio Greenwich (UT) của thứ hai, ngày | tháng 1, năm 4713 TCN trong lịch
18
Trang 28Julius đón trước (tức là 24 tháng 11, 4714 TCN trong lich Gregory đón trước, cũng là ngày
Julius 0)5 Hệ thống ngày Julius thường được dùng trong thiên văn học dé thống nhất mọi sự
kiện thiên văn, miêu tả bởi nhiều hệ thống lịch khác nhau, vào một hệ thống ngày duy nhất
2.3.2.1 Đổi ngày Dương lịch ra số ngày Julius
Năm 1582 đã bắt đầu như là một năm thông thường bắt đầu vào thứ hai theo lịch Julius,tiếp tục như bình thường cho đến thứ 5 ngày 4 tháng 10 Tuy nhiên, ngày hôm sau trở thànhthứ sáu ngày 15 tháng 10 năm 1582 tại tất cả các quốc gia Công giáo như: Italy, Ba Lan, BồĐảo Nha, và Tây Ban Nha’ Các nước Đông Âu khác như Nga hay Hy Lạp tiếp tục sử dụnglịch Julius truyền thống với ngày kế tiếp vẫn là thứ 6 ngày 5 tháng 10 cho đến mãi về sau khi
họ quyết định thay đổi.
Vì vậy công thức đổi ngày Dương lịch ra số ngày Julius cũng được chia làm 2 khoảng thời
gian Trước và sau ngày 15 tháng 10 năm 1582.
Đối với trước ngày 15 tháng 10 năm 1582:
Trang 29- m: tháng
- V:năm
Công thức trên tính theo múi giờ chuẩn Đề tính theo giờ địa phương thì cộng trừ thêm
một khoảng bằng múi giờ chia 24 (Việt Nam là 7/24, Nhật Bản là 8/24, )
2.3.2.2 Tính điểm Sóc tháng 11 âm lịch dựa vào Đông chí
Tham số đầu vào là Y (năm)
Bước 1: Tính số ngày Julius của ngày 31/12/Y
Bước 2: Tính số tháng âm lịch đã trả qua bằng cách chia lấy phần nguyên cho29.530588853 (là số ngày trong một tháng công hội — the synodic month’) -> K
Bước 3: Tính điểm Sóc của K được ở bước 2 và chuyên thành ngày dương lịch
Bước 4: Vì Đông chí luôn rơi vào tháng 11 âm lịch nên nếu điểm Sóc vừa tìm được ở bước
3 là điểm Sóc của tháng 11 khi chưa vượt qua ngày Đông chí Nếu vượt qua thì là điểm Sóccủa tháng 11 cần tìm là điểm Sóc của K -1
2.3.2.3 Đối ngày dương thành ngày âm lịch
Tham số đầu vào D, M, Y lần lượt là ngày tháng năm dương lịch cần chuyển đổi
Bước 1: Dat YY = Y Nếu cần chuyên đôi vượt qua điểm Sóc của tháng 11 của năm Y thì
YY=Y+rl
Bước 2: Tính điểm sóc của năm YY -1 và YY Nếu khoảng các giữa 2 điểm này nhỏ lớnhoặc bằng 365 thì năm đó là năm nhuận và ngược lại
Bước 3: Tao một bảng có 13 cột cho năm bình thường va 14 cột cho năm nhuận có 5 hàng.
Mỗi cột tương ứng cho từng tháng từ tháng 11 năm YY -1 đến tháng 11 năm YY Ba hàng lần
lượt chứa ngày, tháng, năm dương lịch của điểm Sóc tháng tương ứng Hàng thứ 4 là tên tháng
Hàng thứ 5 dành cho đề đánh dấu đó có phải là tháng nhuận hay không
8 https://search.r-project.org/CRAN/refmans/emoji/html/day_in_synodic_cycle.html
20
Trang 30Bước 4: So sánh ngày đương lịch đầu vào với bảng tạo ở bước 3 để tìm ra tháng và năm
âm lịch tương ứng Còn ngày là phần nguyên của hiệu số ngày julius và số ngày julius củađiểm sóc tháng tương ứng cộng thêm 1
2.3.2.4 Đồi ngày âm lịch sang ngày dương lich
Tham số đầu vào lần lượt D, M, Y, L lần lượt là ngày, tháng, năm va cờ cho biết có phải
tháng nhuận hay không
Bước 1: YY = Y Nếu M >= 11 thi YY = Y +1
Bước 2: Tạo một bang (đặt la arr) có 13 cột cho năm bình thường va 14 cột cho năm nhuận
có 5 hàng Mỗi cột tương ứng cho từng tháng từ tháng 11 năm YY -1 đến tháng 11 năm YY.
Ba hàng lần lượt chứa ngày, tháng, năm dương lịch của điểm Sóc tháng tương ứng Hàng thứ
4 là tên tháng Hàng thứ 5 dành cho dé đánh dau đó có phải là tháng nhuận hay không
Bước 3: Duyệt qua bảng vừa được tạo nếu arr[3] = M và arr[5] = L thì tính số ngày juliuscủa điểm Sóc của tháng vừa tim được (đặt là jd) Nếu không tìm thấy thì thuật toán kết thúcvới kết quả không tìm thấy
Bước 4 Kết quả thuật toán là chuyền đổi (jd + D -1) sang ngày đương lich
2.4 Firebase
Firebase là một tập hợp các dịch vụ điện toán đám mây phụ trợ và nền tảng phát triển ứngdụng do Google cung cấp [8] Nó cung cấp các dịch vụ mà Heo dat sử dụng dé phát triển:
- _ xác thực (authentication): mục dich làm cho việc xây dựng các hệ thống xác thực an
toàn trở nên dé dàng, đồng thời cải thiện trải nghiệm đăng nhập và đăng nhập cho người
dùng cuối Nó cung cấp giải pháp nhận dạng đầu cuối, hỗ trợ tài khoản email và mật
khẩu, xác thực điện thoại và đăng nhập Google, Twitter, Facebook và GitHub
- _ Lưu trữ (storage): là một dịch vụ lưu trữ đối tượng mạnh mẽ, đơn giản và tiết kiệm chỉ
phí được xây dựng cho quy mô của Google Nó được thiết kế để giúp bạn lưu trữ vàphân phát nội dung do người dùng tạo một cách nhanh chóng và dễ dàng, chăng hạn
21
Trang 31như ảnh và video Google bổ sung tính năng bảo mật của Google vào các tệp tải lên vàtải xuống cho các ứng dụng Firebase của bạn, bất kế chất lượng mạng như thé nào
Phòng thí nghiệm (Test Lab) là cơ sở hạ tầng thử nghiệm ứng dụng dựa trên đám mâycho phép bạn thử nghiệm ứng dụng của mình trên nhiều loại thiết bị và cấu hình, vìvậy, bạn có thê hiểu rõ hơn về cách ứng dụng sẽ hoạt động trong tay người dùng trựctiếp Nó cho phép bạn thử nghiệm ứng dụng của mình trên các thiết bị được lưu trữ
trong trung tâm dữ liệu của Google.
22
Trang 32Chương 3 PHAN TÍCH THIẾT KE
3.1 Dac tả bài
Việc suy thoái kinh tế toàn cầu, biến đổi khí hậu, chiến tranh ảnh hướng đến chuỗi cungứng Việc tiết kiệm trở nên thiết thực hơn bao giờ hết Việc ghi chép thường tốn nhiều thờigian theo cách truyền thống và không có ghi chép không có thông báo nhắc nhở
Quản li chỉ tiêu (số ghi chép) là chức năng cơ bản dùng dé lưu trữ những chi tiêu mỗi chitiêu thuộc một loại chi tiêu dé dễ dàng quản lí
Quản lí loại chi tiêu dùng để phân loại các chi tiêu khác nhau mang lại sự trực quan hóa
tránh rối mắt với những thông tin lặp đi lặp lại
Bên cạnh loại chi tiêu cũng cần đánh dấu những chỉ tiêu đặc biệt mang tính bất thường
như các buổi hợp lớn, gặp bạn cũ, Những loại này không han là một loại chi tiêu cụ thể và
thường xuyên lặp đi lặp lại
Xã hội phát triển sinh ra nhiều dịch vụ các dịch vụ truyền thống như hóa đơn điện nước
cho đến các dich vụ trực tuyến tốt làm tăng chất lượng sống của mọi người kèm theo đó sốlượng hóa đơn cũng tăng lên từng tháng việc quản lí những hóa đơn đó cũng là một van délớn Đa số các dịch vụ trực tuyến sẽ thông báo trước 10 ngày nhưng khoảng thời gian đó khá
là lớn dẫn tới việc phải thanh toán thêm tiền cho dịch vụ không cần thiết nữa hay để số dư đủdẫn tới việc bị trễ, dán đoạn công việc Việc tự động hóa cần thiết cho công việc này là một
điêu cân thiệt
Am lịch, dương lịch đã ăn sâu vào văn hóa của người Việt Một sô ngày lê, dam cưới, gid
chạp đều được coi ngày theo lịch âm Cần được quản lý một cách trực quan
Các khoản nợ, cho vay là một trong những công việc nhạy cảm cần được thanh toán đúnghạn Dé tránh việc chịu thêm tiền lãi hay ảnh hưởng đến các quan hệ xã hội
Kha năng thống kê là một khả năng mà cách truyền thống khó có thé thực hiện Thống kêgiúp người dùng có cái nhìn tổng quát về những khoản đã chi, thu dé đưa ra các quyết định
chính xác
23
Trang 33Các chỉ tiêu thường chứa nhiều thông tin, cần được đơn giản hóa các bước ghi chép mà
van hiệu quả Giao diện hiện dai, dé sử dụng cũng là một yêu tô cân thiệt
Trang 34Người dùng những người đã dăng nhập được vào ứng dụng
Khách là trạng thái khi người dùng chưa được xác thực bới ứng dụng
3.3 Sơ đồ hoạt động
Người dùng Google Firebase Authentication
Nhập thông tin tài ¬
Trang 35Nhập email
Gửi email đỗi mật
khẩu mới
Kiểm tra cú pháp
Google Firebase Authentication
Kiém tra đã tồn tại
26
Trang 36Google Firebase Authentication
đăng nhập Kiem tra cú pháp
Kiểm tra đăng nhập
Kiểm tra tài xác
Trang 37Người dùng Ứng dụng Database SQFLite
Nhập thông tin Kiểm tra cú pháp
Sai Đúng Kiểm tra ràng buộc
Thông báo a
§ Đúng
Hình 3-4 Sơ đồ hoạt động cho chức thêm, cập nhật đữ liệu
Người dùng | j Ứng dụng Ì | Database SQFLite
có Thông báo mm
Hình 3-5 Sơ đồ hoạt động cho chức năng xóa dữ liệu
28