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

xây dựng ứng dụng quản lý chi tiêu cá nhân

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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
-----🙞🙜🕮🙞🙜-----

BÁO CÁO ĐỒ ÁN 2
ĐỀ TÀI: XÂY

DỰNG ỨNG DỤNG QUẢN LÝ

CHI TIÊU CÁ NHÂN
Giảng viên hướng dẫn:
ThS.Thái Thụy Hàn Uyển
Sinh viên thực hiện:
Phạm Quốc Trung
Đỗ Ngọc Quý

18521557
18521313

TP. Hồ Chí Minh, ngày 24 tháng 12 năm 2021


LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học
Công nghệ Thông tin – ĐHQG TP.HCM, em đã được trang bị các kiến thức cơ bản
cùng các kỹ năng thực tế để có thể hồn thành Đồ án 2 của mình.
Để hồn thành đồ án này, với lịng biết ơn sâu sắc em xin gửi lời cảm ơn chân
thành đến:
Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo
điều kiện thuận lợi để sinh viên tìm kiếm, nghiên cứu thơng tin với hệ thống thư viện


hiện đại, đa dạng các loại sách và tài liệu
Gần gũi hơn là những lời tốt đẹp nhất xin gửi đến đến cơ Thái Thị Hàn Uyển đã
tận tình giúp đỡ, định hướng cách tư duy và hướng làm việc khoa học. Đó là những
góp ý hết sức quý báu khơng chỉ trong q trình thực hiện đồ án mà cịn là hành trang
tiếp bước cho em trong q trình học tập và làm việc sau này.
Sau cùng, xin chúc q Thầy Cơ trong khoa Cơng nghệ Phần mềm nói riêng cũng
như các giáo viên tại trường Công nghệ thông tin nói chung thật dồi dào sức khỏe,
niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình.
Thành phố Hồ Chí Minh, 25 tháng 12 năm 2021
Sinh viên 1

Phạm Quốc Trung
Sinh viên 2

Đỗ Ngọc Quý


NHẬN XÉT CỦA GIÁO VIÊN
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................

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


Mục Lục
I. MỞ ĐẦU ......................................................................................................................................................... 6


1. Lý do chọn đề tài...................................................................................................... 6
1.1. Tại sao bạn cần học cách quản lý chi tiêu hợp lý ...................................................................6
1.2. Lợi thế khi sử dụng app quản lý tài chính cá nhân .................................................................7

2. Đối tượng hướng đến ............................................................................................... 7
3. Khảo sát hiện trạng .................................................................................................. 8
3.1. Money Lover ..........................................................................................................................8
3.2. Spendee...................................................................................................................................9

4. Mục tiêu đề tài ....................................................................................................... 10
5. Phương pháp thực hiện .......................................................................................... 10
II. GIỚI THIỆU VỀ CÔNG NGHỆ SỬ DỤNG ......................................................................................... 10

1. Giới thiệu ngôn ngữ lập trình Dart ........................................................................ 10
1.1. Ngơn ngữ lập trình Dart là gì? ..............................................................................................10
1.2. Ưu điểm của Dart .................................................................................................................10

2. Giới thiệu về Flutter ............................................................................................... 11
2.1. Flutter là gì? ..........................................................................................................................11
2.2. Kiến trúc của Flutter .............................................................................................................11
2.3. Ưu điểm của Flutter so với các framework khác ..................................................................13

3. Firebase Authentication ......................................................................................... 14
4. Cloud FireStore ...................................................................................................... 15
III. XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ CHI TIÊU CÁ NHÂN............................. 16

1. Các chức năng chính .............................................................................................. 16
2. Phân tích thiết kế .................................................................................................... 16
2.1. Sơ đồ Use-case: ....................................................................................................................16

2.2. Bảng danh sách Actor: ..........................................................................................................17
2.3. Đặc tả Use-case: ...................................................................................................................19
2.4. Sơ đồ lớp...............................................................................................................................29
2.5. Sơ đồ tuần tự .........................................................................................................................32
2.6. Sơ đồ hoạt động ....................................................................................................................46

3. Giao diện ứng dụng ................................................................................................ 59
3.1. Màn hình giới thiệu ..............................................................................................................59
3.2. Màn hình đăng nhập (Sign In) ..............................................................................................60
3.3. Màn hình đăng ký (Sign Up) ................................................................................................61
3.4. Màn hình Trang chủ (Home) ................................................................................................62
3.5. Màn hình Danh sách chi tiêu (Transaction) .........................................................................63


3.6. Màn hình Ngân sách (Budget) ..............................................................................................64
3.7. Màn hình Quản lý tài khoản (Profile) ...................................................................................65
IV. TỔNG KẾT .............................................................................................................................................. 67

1. Đánh giá ................................................................................................................. 67
1.1. Thuận lợi...............................................................................................................................67
1.2. Khó khăn ..............................................................................................................................67

2. Kết luận .................................................................................................................. 67
2.1. Kết quả đạt được ...................................................................................................................67
2.2. Ưu điểm ................................................................................................................................67
2.3. Nhược điểm ..........................................................................................................................68

3. Hướng phát triển .................................................................................................... 68
V.TÀI LIỆU THAM KHẢO ........................................................................................................................... 68



I. MỞ ĐẦU
1. Lý do chọn đề tài
1.1. Tại sao bạn cần học cách quản lý chi tiêu hợp lý
Việc quản lý chi tiêu tiền hợp lý là một bài tốn khó đối với tất cả mọi người
khơng chỉ ở từng cá nhân, hộ gia đình mà cịn ở doanh nghiệp. Nhiều người trẻ có
tài năng, cơ hội kiếm tiền với thu nhập khủng, nhưng việc không ghi chép các giao
dịch, sổ sách chi tiêu dễ dẫn đến việc “vung tay q trán”, từ đó khơng thể kiểm
sốt được dịng tiền vào ra dễ dẫn đến việc “thâm thủng ngân sách”. Đây là tình
trạng chung, yêu cầu chúng ta cần học cách quản lý chi tiêu hợp lý:
- Quản lý chi tiêu giúp nhu cầu cá nhân, chất lượng cuộc sống được đáp ứng
như nhà ở, ăn uống bảo vệ sức khỏe, công việc… Tiền được tiêu vào đúng thứ cần
thiết, khơng bị lãng phí mà vẫn chưa đáp ứng được mức sống cơ bản của mỗi
người. Nhiều người có thu nhập trung bình, nhưng lại có mức sống cơ bản tốt,
thoải mái bởi họ biết cách quản lý chi tiêu, dành tiền sử dụng cho những điều cần
thiết.
- Quản lý chi tiêu sẽ cắt giảm những khoản tiền không hợp lý, để dành tiết
kiệm. Bắt đầu học cách tiết kiệm tiền sẽ giúp tương lai có một đảm bảo chắc chắn.
Ít nhất trong các trường hợp bệnh tật hay thất nghiệp, bạn sẽ có khoản dự phịng
bảo vệ, duy trì cuộc sống cơ bản.
- Học cách quản lý tiền sẽ giúp bạn không lâm vào cảnh nợ nần, nợ tín dụng.
Các vấn đề stress hàng ngày về tiền bạc sẽ khơng cịn đáng lo ngại.
- Học cách quản lý chi tiêu hợp lý sẽ hiểu được giá trị và bản chất của đồng
tiền, cách mà tiền vận hành. Bạn sẽ khơng cịn phải trơng chờ duy nhất vào khoản
lương hàng tháng mà tiền sẽ được đầu tư sinh lời thụ động. Tiền được bắt làm việc
để tạo ra tiền, thu nhập làm giàu thêm khoản tiết kiệm hay nâng cao mức sống.
Những ước mơ trước kia tưởng chừng như xa vời sẽ được rút ngắn khoảng cách
bởi khoản tiền mà bạn tích cóp được.
- Ai cũng muốn tâm lý thảnh thơi, khơng bị gị bó bởi cơng việc văn phịng
nhàm chán, tự do du lịch và làm điều mình thích… Tự do tài chính là khao khát

của mỗi người và học cách quản lý chi tiêu cá nhân hợp lý sẽ là bước đầu tiên quan
trọng mà mỗi người cần thực hiện.


1.2. Lợi thế khi sử dụng app quản lý tài chính cá nhân
Việc ghi chú các khoản chi tiêu như chi tiêu sinh hoạt gia đình, chi tiêu cá nhân,
chi tiêu đi chơi,... thường được ghi chú trên file Excel,các ứng dụng ghi chú,…
nhưng rất bất tiện, không linh động. Do đó, các ứng dụng quản lý chi tiêu trên điện
thoại di động ra đời nhằm:
- Sự tiện lợi: Người dùng có thể kiểm tra, thao tác, ghi chép chi tiêu ở bất cứ
đâu với app trên điện thoại. Với thời đại công nghệ số, smartphone là người bạn
đồng hành thân thiết, được sử dụng nhiều, quen thuộc với người trẻ. Điện thoại
thơng minh tích hợp nhiều ứng dụng mang lại sự tiện lợi, nhỏ gọn, dễ dàng thao tác
hơn so với sổ ghi chép chi tiêu.
- Dễ dàng quản lý chi tiêu, ghi chép, thiết lập ngân sách, theo dõi dịng tiền đã
sử dụng: Trí não con người có quá nhiều thông tin cần nhớ, khiến việc lưu trữ chi
tiêu không hiệu quả, nhanh quên. Ứng dụng thông minh với trí tuệ nhân tạo được
các nhà phát triển phần mềm tối ưu những tính năng thay thế người dùng lưu trữ và
quản lý tài chính, chi tiêu hàng ngày, hàng tháng.
- App quản lý và phân tích thói quen tiêu dùng, đưa ra biểu đồ so sánh rõ ràng
giúp bạn đánh giá được sự chênh lệch chi tiêu ở các mục: Nhu cầu cần thiết, giải
trí, học tập, đầu tư hay tiết kiệm… Từ đó giúp người dùng điều chỉnh dòng tiền
phù hợp, thay đổi hành vi tiêu dùng.
- App quản lý có liên kết các kênh đầu tư chứng khoán, tài khoản ngân hàng, tài
khoản tiết kiệm online. Người dùng dễ dàng phân bố tiền vào các khoản tiết kiệm,
đầu tư, sử dụng cho nhu cầu hàng ngày hiệu quả.

2. Đối tượng hướng đến
Với sự bùng nổ của Smartphone, nhóm đối tượng chủ yếu của ứng dụng là các tổ
chức/cá nhân có và biết sử dụng smart phone ở mọi độ tuổi, cụ thể:

- Những cá nhân không có nhiều kinh nghiệm cũng như kiến thức về quản lý
chi tiêu muốn tìm hiểu và trang bị thêm cho mình kiến thức.
- Những cá nhân/tổ chức quan tâm về quản lý chi tiêu, mong muốn hạn chế số
tiền chi tiêu khơng hợp lý.
- Những cá nhân/tổ chức muốn có một công cụ giúp dễ dàng quản lý mọi
nguồn tiền chi/thu của mình.


- Những cá nhân/tổ chức chưa hài lòng về các công cụ hỗ trợ quản lý chi tiêu
cá nhân đang sử dụng.

3. Khảo sát hiện trạng
Thực tế hiện nay, Việt Nam đã có nhiều ứng dụng quản lý chi tiêu quen thuộc có
thể kể đến như: Money Lover, Spendee, MISA Money Keeper, ... . Ta cùng đi qua
một số thông tin chung về các ứng dụng này.

3.1. Money Lover
3.1.1. Giới thiệu chung
Đây là một ứng dụng tài chính được nhiều người tin dùng, đạt Giải Nhất trong
cuộc thi Nhân tài đất Việt và lọt Top 5 ứng dụng tốt nhất trên Android, Google
I/O 2017.

3.1.2. Giao diện

Hình 3.1.2-1. Giao diện Money Lover

3.1.3. Một số tính năng chính của ứng dụng
- Theo dõi các khoản chi tiêu, thu nhập, hoá đơn hàng ngày.
- Dễ dàng lập các kế hoạch chi tiêu trong tuần, tháng.
- Liên kết Money Lover với tài khoản của hơn 25 ngân hàng ở Việt Nam,

độ bảo mật cao.


- Xem báo cáo tình hình tài chính qua hình ảnh giúp dễ nắm bắt thơng
tin.
- Tính năng nhắc nhở thanh tốn hóa đơn tiền điện, tiền nước

3.2. Spendee
3.2.1. Giới thiệu chung
Spendee là ứng dụng sở hữu giao diện vô cùng bắt mắt, đầy màu sắc, cung
cấp cho bạn các công cụ để theo dõi chi tiêu hàng ngày, phân chia các khoản
như chi tiêu cá nhân, chi tiêu gia đình, chi tiêu các dịp lễ hội,...
Từ đó đưa cho bạn cái nhìn tổng quan hơn về các khoản thu chi trong ngày,
tuần, tháng. Việc chi tiêu sẽ được kiểm soát và tối ưu hơn, giúp bạn tiết kiệm
được những khoản chi khơng đáng có.

3.2.2. Giao diện

Hình 3.2.2-1. Giao diện Spendee

3.2.3. Một số tính năng chính của ứng dụng
- Theo dõi chi phí cá nhân thủ cơng hoặc đồng bộ an toàn với tài khoản
ngân hàng.
- Dễ dàng đặt mục tiêu ngân sách, kê chi phí và tiết kiệm.
- Đồ thị thu-chi đẹp mắt.
- Lập kế hoạch ngân sách cho cả gia đình.


- Chia sẻ ví với bạn bè và gia đình.
- Tùy biến ví với nhiều loại tiền tệ, cho nhiều mục đích: du lịch, hiếu hỷ,

mua xe,...

4. Mục tiêu đề tài
Sau khi sử dụng và đưa ra những nhận xét về ưu nhược điểm của một vài ứng dụng
đọc tin tức quen thuộc của Việt Nam, chúng em muốn triển khai một ứng dụng có
thể đáp ứng các nhu cầu sau:
- Có thể lấy tin tức từ nhiều nguồn báo.
- Giao diện tối giản nhất có thể để người dùng khơng gặp khó khăn khi sử
dụng.
- Bỏ các tính năng thừa.
- Cải thiện performance cho ứng dụng.

5. Phương pháp thực hiện
- Tìm hiểu và đánh giá các giải pháp hiện có.
- Đề xuất, cải thiện các tính năng cần thiết.
- Tham khảo ý kiến giảng viên hướng dẫn để có định hướng tốt nhất.
- Phân tích và thiết kế hệ thống.
- Xây dựng ứng dụng.
- Kiểm thử, triển khai và đánh giá kết quả.

II. GIỚI THIỆU VỀ CÔNG NGHỆ SỬ DỤNG
1. Giới thiệu ngơn ngữ lập trình Dart
1.1. Ngơn ngữ lập trình Dart là gì?
Dart là ngơn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và sau
đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn. Nó được sử dụng để xây
dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động. Dart là một
ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế garbage-collected,
sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript. Nó hỗ trợ interface,
mixin, abstract, generic, static typing và sound type (2 cái cuối có thể hiểu là typesafe). Dart là ngơn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub.


1.2. Ưu điểm của Dart


Một số ưu điểm vượt trội của Dart so với các ngơn ngữ lập trình khác:
- Năng suất: Cú pháp Dart rõ ràng và súc tích, cơng cụ của nó đơn giản
nhưng mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các
thư viện cốt lõi và một hệ sinh thái gồm hàng ngàn package.
- Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được
dự đốn hiệu suất cao và khởi động nhanh trên các thiết bị di động và web.
- Di động: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động
của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với các
ứng dụng web, chuyển mã từ Dart sang JavaScript.
- Dễ gần Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp
và định hướng đối tượng khơng gây ngạc nhiên của nó. Nếu bạn đã biết C++,
C # hoặc Java, bạn có thể làm việc hiệu quả với Dart chỉ sau vài ngày.
- Reactive: Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản lý
các đối tượng tồn tại trong thời gian ngắn, chẳng hạn như các widget UI,
thông qua phân bổ đối tượng nhanh và GC. Dart hỗ trợ lập trình khơng đồng
bộ thơng qua các tính năng ngơn ngữ và API sử dụng các đối tượng Future và
Stream.

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

2.2. Kiến trúc của Flutter



Hình 2.2-1. Kiến trúc Flutter

Flutter được viết chia làm hai tầng:
- Tầng ở trên sử dụng ngôn ngữ Dart cung cấp các đoạn mã xây dựng lên một
ứng dụng Flutter. Các đoạn mã này cung cấp phương tiện để có thể thay đổi và
chỉnh sửa chúng. Từ đó giúp ứng dụng của lập trình viên có thể được tùy chỉnh
theo mong muốn. Tầng Framework này giúp lập trình viên thay đổi mã nguồn ứng
dụng ở thời điểm compile time.
- Tầng thứ hai của Flutter nằm ở sâu bên dưới và được viết bằng ngôn ngữ
C++. Tầng Shell này chứa các cơng cụ trợ giúp ứng dụng Flutter trong q trình
chạy. Ở tầng này cịn có máy ảo Dart VM. Khái niệm máy ảo là khái niệm về một
ứng dụng chạy song song với mã nguồn chính như một phần của ứng dụng. Máy
ảo Dart VM có ba nhiệm vụ chính bao gồm:
+ Làm ứng dụng trung gian giữa mã nguồn được viết bởi Dart và thiết bị phần
cứng (hoặc phần mềm nằm ngồi ứng dụng).
+ Thơng dịch các đoạn mã Dart theo phương thức JIT (Just in time) hoặc AOT
(Ahead of Time).
+ Thực thi các đoạn mã đã được thông dịch hoặc biên dịch cũng như cung cấp
các runtime system bao gồm garbage collector, và các thư viện cần có khác.


→ Máy ảo Dart VM chịu trách nhiệm lớn nhất trong việc quản lý các runtime
system, hỗ trợ debugging hoặc hot reload cho các ứng dụng viết bằng Flutter.

2.3. Ưu điểm của Flutter so với các framework khác
- Flutter là bộ SDK đa nền tảng, hỗ trợ cả Android, iOS và web.
- Fast Development: Tính năng Hot Reload hoạt động trong milliseconds để hiện
thị giao diện tới bạn. Sử dụng tập hợp các widget có thể customizable để xây
dựng giao diện trong vài phút. Ngồi ra Hot Reload cịn giúp bạn thêm các tính

năng, fix bug tiết kiệm thời gian hơn mà không cần phải thông qua máy ảo,
máy android hoặc iOS.
- Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện
của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ
trợ nhiều các APIs chuyển động, smooth scrolling...
- Native Performance: Các widget của Flutter kết hợp các sự khác biệt của các
nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng
tốt nhất tới iOS và Android.
- Một đối thủ khác của Flutter là React Native. Đây là framework được tạo bởi
Facebook. Tương tự như Flutter, React Native cũng cho phép các lập trình viên
sử dụng JavaScript để làm ứng dụng di động đa nền tảng, trên cả Android và
iOS.

Flutter
Khả năng tái
sử dụng

Flutter cho phép Overwriting
code. Hỗ trợ tốt cho việc tái
sử dụng về sau.

Cấu trúc mã
nguồn

React Native
React Native cho phép bạn sử
dụng lại code, nhưng điều này
lại bị giới hạn trong một vài
components cơ bản.


Khi sử dụng Flutter, các Sử dụng React Native cần có
thêm JSX hoặc XML để tạo
Developer có thể thực hiện
giao diện hay các công cụ đặc
mọi thứ trên cùng một màn
biệt để tạo layout.
hình, trong đó đặc biệt khơng
cần phải chuyển từ code sang


chế độ thiết kế hoặc ngược lại,
vì vậy các trải nghiệm trên
Flutter khá tiết kiệm thời gian.

Cài đặt môi

Việc cài đặt Flutter diễn ra
nhanh chóng, tiện lợi với sự hỗ
trợ của câu lệnh flutter doctor -v
giúp chẩn đoán lỗi trong q
trình cài đặt.

Cài đặt mơi trường phát triển
React Native trơng khá loằng
ngoằng và khó khăn đối với
các lập trình viên mới.

Các thư viện

Có nhiều các third-party


hỗ trợ

packages đang được sử dụng

Từ khi React Native trở lên
phổ biến, đã có rất nhiều các
thirdparty packages được phát
triển và được sử dụng rất nhiều
trong ứng dụng.

trường phát
triển

và đang ngày càng được phát

Độ phổ biến

Tài liệu
tham khảo

triển, và chúng thực sự rất hữu
dụng.
Số lượng người sử dụng

React Native có lượng
developer sử dụng đang nhiều
Flutter đang ngày càng gia
hơn bởi vì lượng developer sử
tăng. Đặc biệt nhờ sự hậu

dụng JavaScript rất dễ dàng để
sử dụng với các thư viện của
thuẫn tích cực từ phía Google.
React
Cách viết tài liệu của Google
Việc tìm kiếm tài liệu có lúc
khá khó khăn, phụ thuộc vào
đơn giản, dễ hiểu nên việc tài
các cơng cụ dev bên ngồi, u
liệu hóa cho Flutter cơ bản là
cầu người dùng phải kiếm tài
hiệu quả
liệu cho từng bộ mặc dù
Facebook đã khá
nỗ lực để xây dựng một kho tài
liệu trực quan nhất.
Bảng 2.3.1. So sánh giữa Flutter và React Native

3. Firebase Authentication
Firebase Authentication là chức năng dùng để xác thực người dùng bằng Password,
số điện thoại hoặc tài khoản Google, Facebook hay Twitter, v.v. Đồng thời cũng xác
thực nặc danh cho các ứng dụng. Hoạt động xác thực có thể giúp thơng tin cá
Việc xác thực người dùng là một chức năng quan trọng trong phát triển ứng dụng.
Tuy nhiên, việc đối ứng với nhiều phương pháp xác thực khác nhau sẽ tốn nhiều
thời gian và công sức.


Firebase Authentication giúp thực hiện việc chia sẻ ID giữa các ứng dụng, giúp
người dùng dễ dàng tiếp cận sản phẩm hơn.


Hình 3-1. Giới thiệu Firebase Authentication

4. Cloud FireStore
Cloud Firestore là một Database linh hoạt và dễ mở rộng cho mobile, web và
server được phát triển từ Firebase and Google Cloud Platform. Cũng giống như
Firebase realtime database Cloud Firestore giúp cho việc đồng bộ dữ liệu giữa các
ứng dụng phía client một các nhanh chóng (Realtime) và hộ trợ lưu offline data trong
ứng dụng của bạn.
Cloud Firestore là một cloud-hosted, NoSQL database mà các ứng dụng phía client
có thể trực tiếp truy cập thơng qua native SDKs. Nó lưu dữ liệu theo mơ hình dữ liệu
NoSQL. Dữ liệu được lưu trữ trong các file tài liệu chứa các trường được ánh xạ vào
các giá trị. Các file tài liệu này được lưu trữ trong các tập hợp chúng có thể sử dụng
nó để tổ chức dữ liệu và truy vấn dữ liệu. Cloud Firestore hỗ trợ rất nhiều kiểu dữ liệu
từ đơn giản như String, Integer hay những kiểu dữ liệu phức tạp.

Hình 4-1. Giới thiệu Cloud Firestore

Một số điểm đặc biệt:


- Sự ổn định và hiệu năng: dữ liệu của bạn được đặt ở nhiều nơi đảm bảo tính
mở rộng và độ tin cậy cao
- Khả năng mở rộng: Việc mở rộng này là hoàn toàn tự động, vậy nên bạn sẽ
không cần phải quan tâm đến việc dữ liệu của mình lưu trữ theo nhiều phiên
bản
- Bảo mật: bảo mật đơn giản và mạnh mẽ cho SDK di động, web và server:
SDK trên thiết bị di động và web sử dụng các quy tắc bảo mật của Cloud
Firestore.

III.XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ


CHI TIÊU CÁ NHÂN
1. Các chức năng chính
- Chức năng “Đăng nhập”
- Chức năng “Đăng ký”
- Chức năng “Quên mật khẩu”
- Chức năng “Quản lý thông tin tài khoản”
- Chức năng “Đổi mật khẩu”
- Chức năng “Quản lý chi tiêu”: Thêm/Sửa/Xóa
- Chức năng “Xem chi tiêu gần đây”
- Chức năng “Lọc chi tiêu”.
- Chức năng “Xem thống kê”
- Chức năng “Quản lý ví tiền”: Thêm/Sửa/Xóa
- Chức năng “Quản lý ngân sách”: Thêm/Sửa/Xóa

2. Phân tích thiết kế
2.1. Sơ đồ Use-case:


Hình 2.1-1. Sơ đồ Use-case

2.2. Bảng danh sách Actor:


Tên Use-case

Ý nghĩa/Ghi chú

1


Đăng nhập

- Đăng nhập vào hệ thống với tài khoản đã
tạo trước đó.

2

Đăng ký

Người dùng đăng ký tài khoản mới nếu chưa
có tài khoản đăng nhập.

3

Quản lý chi tiêu

3.1

Xem chi tiêu

Người dùng có thể xem chi tiết số tiền mà
mình đã chi tiêu trong ngày/tháng/năm.

3.2

Thêm/Sửa/Xóa

Người dùng có thể thêm/sửa/xóa chi tiêu tùy
vào mục đích sử dụng.


3.3

Xem thống kê

Người dùng có thể xem biểu đồ thống kê chi
tiêu trong tuần/tháng/năm.

4

Quản lý ngân sách

STT

Actor

4.1
4.2

Xem ngân sách
Người
dùng

Thêm/Sửa/Xóa

Người dùng xem số lượng ngân sách hiện tại
của mình, đồng thời xem được số tiền cịn
lại của từng ngân sách.
Người dùng có thể thêm/sửa/xóa ngân sách
tùy vào mục đích sử dụng.


5

Quản lý danh mục

5.1

Xem danh mục

Người dùng có thể xem tất cả danh mục hiện
tại.

5.2

Thêm/Sửa/Xóa

Người dùng có thể thêm/sửa/xóa danh mục.

6

Quản lý thơng tin cá nhân

6.1

Cập nhật thông tin cá nhân

6.2

Đổi mật khẩu

7


Quên mật khẩu

Người dùng thay đổi thơng tin cá nhân mình
muốn.
Người dùng có thể thay đổi mật khẩu hiện
tại thành mật khẩu mới.
- Chưa đăng nhập: người dùng có thể đổi
mật khẩu sau khi cung cấp chính xác các
thơng tin cần thiết.
- Đã đăng nhập: Thực hiện usecase 14.

Bảng 2.2-1. Danh sách actor


2.3. Đặc tả Use-case:
2.3.1. Người dùng đăng nhập vào hệ thống
Tên Use-case

Đăng nhập

Actor

Người dùng

Tóm tắt

Người dùng đăng nhập vào phần mềm để sử dụng

Điều kiện tiên quyết


PRE-1. Người dùng đã có tài khoản hợp lệ.

Điều kiện lúc sau

POST-1. Người dùng đăng nhập thành cơng.

Dịng sự kiện chính

1. Người dùng chọn “Sign In”.
2. Người dùng nhập đầy đủ tài khoản và mật khẩu và
nhấn nút “Sign In”.
3. Hệ thống xác thực thông tin đăng nhập.
4. Phần mềm hiển thị giao diện màn hình “Home”.

Dịng sự kiện khác

1.Nếu tài khoản hoặc mật khẩu không hợp lệ, hệ thống sẽ
yêu cầu người dùng nhập lại.
2. Nếu người dùng quên mật khẩu, họ có thể chọn chức
năng “Forgot Password”.
3. Nếu người dùng chưa có tài khoản, họ có thể chọn
chức năng “Sign up”.

2.3.2. Người dùng đăng ký tài khoản mới
Tên Use-case

Đăng ký

Actor


Người dùng

Tóm tắt

Người dùng đăng ký tài khoản mới để đăng nhập vào hệ
thống

Điều kiện tiên quyết

Khơng có

Điều kiện lúc sau

POST-1. Người dùng có tài khoản hợp lệ để đăng nhập.

Dịng sự kiện chính

1. Người dùng chọn “Sign Up”.
2. Người dùng nhập đầy đủ các thông tin mà hệ thống
yêu cầu(Email, Password, Confirm Password) và nhấn
nút “Sign Up”.


3. Hệ thống xác thực thông tin đăng ký.
4. Phần mềm hiển thị giao diện màn hình “Sign In”.

Dịng sự kiện khác

1. Người dùng đăng ký thất bại (Thiếu thông tin/ Tài

khoản đã tồn tại,…) hệ thống sẽ yêu cầu người dùng nhập
lại.
2. Nếu người dùng đã có tài khoản, họ có thể chọn chức
năng “Sign in”.

2.3.3. Người dùng sử dụng chức năng “Quên mật khẩu”
Tên Use-case

Quên mật khẩu

Actor

Người dùng

Tóm tắt

Khi người quên mật khẩu, họ có thể yêu cầu hệ thống
cung cấp cho họ mật khẩu mới để đăng nhập.

Điều kiện tiên quyết

PRE-1. Người dùng đã có tài khoản hợp lệ.
PRE-2. Người dùng đang sử dụng Email hoặc SĐT đã
đăng ký trước đó để nhận mã kích hoạt.

Điều kiện lúc sau

POST-1. Người dùng thay đổi thành công mật khẩu mới.

Dịng sự kiện chính


1. Người dùng chọn “Forgot Password”.
2. Người dùng nhập chính xác tên tài khoản của mình.
3. Hệ thống xác thực có tồn tại tài khoản trong hệ thống.
4. Người dùng nhập SĐT hoặc Email mình đang sử
dụng.
5. Hệ thống gửi mã bảo mật vào SĐT và Email mà người
dùng đã nhập.
6. Người dùng nhập mã bảo nhật mà hệ thống đã gửi.
7. Người dùng thay đổi mật khẩu mới.

Dòng sự kiện khác

Nếu người dùng nhập sai mã bảo mật, người dùng có thể
thử lại và nhận mã bảo mật mới.


2.3.4. Người dùng đổi mật khẩu
Tên Use-case

Đổi mật khẩu

Actor

Người dùng

Tóm tắt

Khi người cảm thấy mật khẩu cũ khơng cịn an tồn, họ
có thể thay đổi thành mật khẩu mới để tăng cường tính

bảo mật.

Điều kiện tiên quyết

PRE-1. Người dùng đã có tài khoản hợp lệ.
PRE-2. Người dùng phải nhớ mật khẫu hiện tại.

Điều kiện lúc sau

POST-1. Người dùng thay đổi thành cơng mật khẩu mới.

Dịng sự kiện chính

1. Người dùng chọn “Change Password”.
2. Người dùng nhập mật khẩu hiện tại.
3. Người dùng nhập mật khẩu mới và phần “Confirm
new password”.
4. Hệ thống kiểm tra 2 mật khẩu mà khách hàng đã nhập
có trùng khớp với nhau, đồng thời kiểm tra mật khẩu
mới có đáp ứng đủ các tiêu chuẩn của hệ thống.
5. Người dùng thay đổi thành công mật khẩu mới.

Dịng sự kiện khác

1. Nếu mật khẩu mới khơng đáp ứng các tiêu chuẩn của
hệ thống, người dùng sẽ phải nhập mật khẩu khác.
2. Nếu mật khẩu mới và phần “Confirm new password”
không trùng khớp, hệ thống sẽ yêu cầu người dùng nhập
lại.


2.3.5. Người dùng chỉnh sửa thông tin cá nhân
Tên Use-case

Quản lý thơng tin cá nhân

Actor

Người dùng

Tóm tắt

Sau khi đã đăng nhập vào hệ thống, người dùng có thể
thay đổi thơng tin cá nhân của mình.

Điều kiện tiên quyết

PRE-1. Người dùng đã đăng nhập vào hệ thống.

Điều kiện lúc sau

POST-1. Người dùng thay đổi thông tin cá nhân mới


thành cơng.
Dịng sự kiện chính

1. Người dùng chọn “Thay đổi thông tin cá nhân”.
2. Người dùng chỉnh sửa thông tin cá nhân.
3. Hệ thống xác thực thông tin thay đổi.
4. Hệ thống lưu thơng tin vào hệ thống.


Dịng sự kiện khác

Nếu thông tin mới không đáp ứng các tiêu chuẩn của hệ
thống, người dùng sẽ phải nhập lại.

2.3.6. Người dùng xem danh sách chi tiêu gần đây
Tên Use-case

Xem chi tiêu gần nhất

Actor

Người dùng

Tóm tắt

Ở phần giao diện “Home”, người dùng có thể xem danh
sách bao gồm 5 chi tiêu gần đây nhất của mình

Điều kiện tiên quyết

PRE-1. Người dùng đã đăng nhập thành cơng vào hệ
thống

Điều kiện lúc sau

Khơng

Dịng sự kiện chính


1. Người dùng nhấn nút “Home” ở phần Bottom
Navigation.
2. Người dùng kéo màn hình đến phần “Recent
Transaction” để xem danh sách.
3. Hệ thống hiển thị danh sách “Recent Transaction” cho
người dùng.

Dòng sự kiện khác

Trường hợp người dùng vừa đăng nhập thành cơng vào
hệ thống thì hệ thống tự động hiển thị giao diện “Home”
cho người dùng.

2.3.7. Người dùng thêm chi tiêu
Tên Use-case

Thêm chi tiêu

Actor

Người dùng

Tóm tắt

Người dùng muốn thêm một chi tiêu mới: tiền thu vào
hoặc tiền đã chi trả để quản lý chi tiêu, từ đó biết được


mình có nên hạn chế chi tiền hoặc mình vẫn có thể chi

tiêu bình thường.
Điều kiện tiên quyết

PRE-1. Người dùng đã đăng nhập vào hệ thống.

Điều kiện lúc sau

POST-1. Người dùng thêm được chi tiêu mới.

Dịng sự kiện chính

1. Người dùng chọn button “ Add ”

ở phần Bottom

Navigation.
2. Hệ thống hiển thị giao diện “Add Transaction” cho
người dùng.
3. Người dùng chọn 1 trong 2 loại: Expense(Tiền chi) /
Incom (Tiền thu).
4. Người dùng điền đầy đủ các mục mà hệ thống u
cầu: số tiền, loại , mơ tả, ví.
5. Người dùng bấm nút “Add” để hồn tất.
Dịng sự kiện khác

Nếu trong quá trình thực hiện việc thêm chi tiêu, người
dùng chọn button “Back” thì hệ thống sẽ hủy bỏ những
gì người dùng đã nhập và quay trở lại trang trước đó.

2.3.8. Người dùng sửa chi tiêu

Tên Use-case

Sửa chi tiêu

Actor

Người dùng

Tóm tắt

Người dùng muốn sửa lại một chi tiêu nào đó: sửa số
tiền, sửa loại thu chi, ....

Điều kiện tiên quyết

PRE-1. Người dùng đã đăng nhập vào hệ thống.

Điều kiện lúc sau

POST-1. Người dùng sửa được thơng tin chi tiêu cũ.

Dịng sự kiện chính

1. Người dùng chọn “Transaction” ở phần Bottom
Navigation.
2. Người dùng chọn chi tiêu muốn thay đổi.
3. Hệ thống hiển thị chi tiết chi tiêu cho người dung.
4. Người dùng chọn button “Edit”.
5. Người dùng sửa thơng tin mình muốn.
6. Người dùng bấm nút “Save” để hoàn tất.



Dịng sự kiện khác

Nếu trong q trình thực hiện việc sửa chi tiêu, người
dùng chọn button “Back” thì hệ thống sẽ hủy bỏ những
gì người dùng đã nhập và quay trở lại trang trước đó.

2.3.9. Người dùng xóa chi tiêu
Tên Use-case

Xóa chi tiêu

Actor

Người dùng

Tóm tắt

Người dùng muốn xóa một thu chi nào đó vì cảm thấy
nó bị sai hoặc khơng cần thiết nữa.

Điều kiện tiên quyết

PRE-1. Người dùng đã đăng nhập vào hệ thống.

Điều kiện lúc sau

POST-1. Người dùng xóa được chi tiêu.


Dịng sự kiện chính

1. Người dùng chọn “Transaction” ở phần Bottom
Navigation.
2. Người dùng chọn chi tiêu muốn xóa.
3. Hệ thống hiển thị chi tiết chi tiêu cho người dung.
4. Người dùng chọn button “Delete”
5. Hệ thống gửi form xác nhận.
6. Người dùng bấm nút “Yes” để hồn tất.

Dịng sự kiện khác

Nếu trong q trình thực hiện việc xóa chi tiêu, người
dùng chọn button “No” thì hệ thống sẽ hủy bỏ và quay
trở lại trang trước đó.

2.3.10. Người dùng lọc chi tiêu
Tên Use-case

Lọc chi tiêu

Actor

Người dùng

Tóm tắt

Ở phần giao diện “Transaction”, người dùng có thể lọc
danh sách chi tiêu tùy theo ý muốn của mình:
- Lọc theo type: Expense (Chi) & Income (Thu)

- Lọc theo Highest / Lowest / Newest / Oldest

Điều kiện tiên quyết

PRE-1. Người dùng đã đăng nhập thành cơng vào hệ
thống
PRE-2. Người dùng phải có ít nhất 1 chi tiêu trong danh


sách.
Điều kiện lúc sau

POST-1. Danh sách chi tiêu được lọc theo như ý người
dùng

Dịng sự kiện chính

1. Ở trang “Transaction”, người dùng nhấn nút “Filter”
ở phần trên cùng màn hình.
2. Người dùng chọn Expense (Chi) hoặc Income (Thu)
ở phần “Filter by”.
3. Người dùng chọn Highest / Lowest / Newest / Oldest
ở phần “Sort by”.
4. Hệ thống trả về danh sách kết quả đã lọc.

Dịng sự kiện khác

1. Trong q trình thực hiện, người dùng click ra ngồi
màn hình thì hệ thống sẽ trở về màn hình cũ.
2. Người dùng nhấn button “Reset” để reset lại các tiêu

chí lọc

2.3.11. Người dùng thêm ví tiền
Tên Use-case

Thêm ví tiền

Actor

Người dùng

Tóm tắt

Người dùng muốn thêm một ví tiền mới, ví tiền này sẽ
thể hiện số tiền đang có trong tài khoản từ đó biết được
mình có nên hạn chế chi tiền hoặc mình vẫn có thể chi
tiêu bình thường.

Điều kiện tiên quyết

PRE-1. Người dùng đã đăng nhập vào hệ thống.

Điều kiện lúc sau

POST-1. Người dùng thêm được ví tiền mới.

Dịng sự kiện chính

1. Người dùng chọn “ User ” ở phần Bottom
Navigation.

2. Hệ thống hiển thị giao diện “User” cho người dùng.
3. Người dùng chọn “Account”.
4. Hệ thống hiển thị giao diện “Account” cho người
dùng.


×