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

Xây dựng ứng dụng quản lý chi tiêu

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

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

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

Lê Đức Trung – 19522422
Hồ Hữu Thịnh – 19522275

ĐỒ ÁN MÔN HỌC

XÂY DỰNG ỨNG DỤNG QUẢN LÝ CHI TIÊU

GIẢNG VIÊN GIẢNG DẠY
THÁI THUỴ HÀN UYỂN
TP. HỒ CHÍ MINH, 2022


LỜI CẢM ƠN
Trước khi bước vào phần báo cáo đồ án, nhóm chúng em trân trọng gửi lời cảm ơn đến cô Thái
Thị Hàn Uyển đã tạo điều kiện cho chúng em có cơ hội được thực hiện đồ án và đã nhiệt tình
góp ý, giúp đỡ chúng em trên lớp, cung cấp cho chúng em rất nhiều kiến thức và cả kinh nghiệm
hữu ích trong và ngoài mảng lập trình di động.
Dù vậy, trong quá trình học tập, cũng như làm đồ án vì thời gian và kiến thức có hạn nên nhóm
em khơng thể tránh khỏi những thiếu sót. Nhóm em mong nhận được sự thơng cảm, đóng góp và
xây dựng từ cơ để nhóm em có thêm nhiều kiến thức có ích và ngày càng hồn thiện Monas hơn
nữa.
Nhóm thực hiện

Trường Đại học Cơng nghệ Thơng tin, tháng 12 năm 2021


MỤC LỤC


CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI .................................................................................... 5
1. Giới thiệu chung .......................................................................................................... 7
2. Mục tiêu đề tài ............................................................................................................. 7
2.1. Lý thuyết ............................................................................................................... 7
2.2. Mục tiêu ................................................................................................................ 7
3. Quá trình hiện thực ...................................................................................................... 8
4. Tổng quan về chức năng .............................................................................................. 8
CHƯƠNG II. CƠ SỞ LÝ THUYẾT ................................................................................... 9
1. Flutter........................................................................................................................... 9
1.1. Tổng quan và lịch sử ............................................................................................ 9
1.2. Thành phần của Flutter ......................................................................................... 9
1.3. Một số đặc điểm nổi bật ..................................................................................... 10
1.4. Ưu và nhược điểm của Flutter: ........................................................................... 11
2. Ngôn ngữ lập trình Dart............................................................................................. 11
2.1. Tổng quan ........................................................................................................... 11
2.2. Tại sao Flutter chọn Dart? .................................................................................. 11
3. Hệ quản trị cơ sở dữ liệu Firebase ............................................................................. 12
3.1. Firebase là gì? ..................................................................................................... 12
3.2. Firebase Realtime database ................................................................................ 12
3.3. Firebase Authentication ...................................................................................... 12
3.4. Firebase Hosting ................................................................................................. 12
3.5. Ưu điểm của Firebase ......................................................................................... 13
3.6. Nhược điểm của Firebase ................................................................................... 13
CHƯƠNG III. XÂY DỰNG HỆ THỐNG ........................................................................ 14
1. Xây dựng kiến trúc hệ thống ..................................................................................... 14
1.1. Công nghệ sử dụng ............................................................................................. 14
1.2. Kiến trúc hệ thống: Mơ hình Client-Server ........................................................ 14
1.3. Kiến trúc ứng dụng: Mơ hình MVVM ............................................................... 15
1.4. Mơ tả thành phần hệ thống ................................................................................. 16
1.5. Sơ đồ Use case .................................................................................................... 17

1.6. Mô tả Use case .................................................................................................... 18


1.7. Đặc tả use case .................................................................................................... 19
2. Mô tả các màn hình ................................................................................................... 41
2.1. Màn hình đăng nhập ........................................................................................... 41
2.2. Màn hình đăng ký ............................................................................................... 42
2.3. Màn hình quên mật khẩu .................................................................................... 43
2.4. Màn hình chính ................................................................................................... 44
2.5. Màn hình ............................................................................................................. 45
CHƯƠNG IV. KẾT LUẬN ............................................................................................... 56


DANH MỤC HÌNH ẢNH
Hình 1. Tổng quan về chức năng .......................................................................................... 8
Hình 2. Một số ứng dụng nổi tiếng được viết bằng Flutter .................................................. 9
Hình 3. Kiến trúc của Flutter .............................................................................................. 10
Hình 4. Kiến trúc hệ thống client server............................................................................. 14
Hình 5 Kiến trúc ứng dụng ................................................................................................. 15
Hình 6. Sơ đồ use case ........................................................................................................ 17
Hình 7. Màn hình đăng nhập .............................................................................................. 41
Hình 8. Màn hình đăng ký .................................................................................................. 42
Hình 9. Màn hình quên mật khẩu ....................................................................................... 43
Hình 10. Màn hình trang chủ .............................................................................................. 44
Hình 11. Màn hình ví của bạn ............................................................................................ 45
Hình 12. Màn hình thêm ví ................................................................................................. 46
Hình 13. Màn hình thêm giao dịch ..................................................................................... 47
Hình 14. Màn hình thêm ngân sách .................................................................................... 48
Hình 15. Màn hình chi tiết ngân sách ................................................................................. 49
Hình 16. Màn hình quản lý tài khoản ................................................................................. 50

Hình 17. Sơ đồ lớp .............................................................................................................. 51
Hình 18. Sơ đồ hoạt động đăng ký ..................................................................................... 52
Hình 19. Sơ đồ hoạt động thêm ví ...................................................................................... 53
Hình 20. Sơ đồ hoạt động thêm giao dịch .......................................................................... 54
Hình 21. Sơ đồ hoạt động thêm ngân sách ......................................................................... 55


DANH MỤC BẢNG
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng

1. Mô tả thành phần ứng dụng ................................................................................. 16

2. Mô tả use case ...................................................................................................... 19
3. Đặc tả chức năng đăng ký .................................................................................... 20
4. Đặc tả chức năng đăng nhập với email và mật khẩu............................................ 21
5. Đặc tả chức năng đăng nhập bằng Google ........................................................... 23
6. Đặc tả chức năng quên mật khẩu ......................................................................... 24
7. Đặc tả chức năng thêm ví ..................................................................................... 25
8. Đặc tả chức năng cập nhật ví ............................................................................... 26
9. Đặc tả chức năng xố ví ....................................................................................... 27
10. Đặc tả chức năng thêm giao dịch ....................................................................... 28
11. Đặc tả chức năng cập nhật giao dịch.................................................................. 30
12. Đặc tả chức năng xoá giao dịch ......................................................................... 31
13. Đặc tả chức năng báo cáo chi tiêu ...................................................................... 32
14. Đặc tả chức năng thêm ngân sách ...................................................................... 34
15. Đặc tả chức năng sửa ngân sách ........................................................................ 35
16. Đặc tả chức năng xoá ngân sách ........................................................................ 36
17. Đặc tả chức năng chỉnh sửa thời gian thông báo ............................................... 37
18. Đặc tả chức năng chỉnh sửa định dạng ngày tháng ............................................ 38
19. Đặc tả chức năng bật tắt âm thanh thông báo .................................................... 39
20. Đặc tả chức năng đăng xuất ............................................................................... 41


CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI
1. Giới thiệu chung
Tạo ra thu nhập đã khó, tuy nhiên việc quản lý chi tiêu cá nhân lại càng khó hơn. Vậy nên, nếu
biết cách quản lý tài chính cá nhân, chúng ta sẽ chủ động trong cuộc sống và có thể tạo thêm
nhiều cơ hội cho bản thân. Tuy nhiên, việc quản lý tài chính như thế nào cho hiệu quả lại chính là
vấn đề mà rất nhiều người gặp phải trong cuộc sống hiện nay.
Quản lý tài chính cá nhân thoạt nghe thì có vẻ rất dễ nhưng thực tế thì khơng hề đơn giản và
không thể thực hiện trong ngày một ngày hai được, cần đầu tư rất nhiều thời gian và cơng sức
mới có thể quản lý sát sao được. Chính vì thế nhiều cơng ty tiên phong đã áp dụng cơng nghệ

vào lĩnh vực này để đơn giản hố việc quản lý chi tiêu và mang đến cho người dùng trải nghiệm
và đơn giản hơn.
Hiểu được nhu cầu và xu hướng ấy, nhóm chúng em đã quyết định làm ứng dụng hỗ trợ quản
lý chi tiêu cá nhân – Monas.

2. Mục tiêu đề tài
2.1. Lý thuyết
-

Nghiên cứu về Flutter và ngơn ngữ lập trình Dart

-

Nắm rõ các thao tác trên mơi trường phát triển tích hợp Android studio và cơng cụ
lập trình Visual studio code

-

Nghiên cứu và sử dụng dịch vụ cơ sở dữ liệu trên nền tảng đám mây – Firebase

-

Nghiên cứu cách thức phát triển ứng dụng đa nền tảng
2.2. Mục tiêu

-

Người dùng có thể lưu lại thông tin cá nhân và giao dịch để phục vụ tốt hơn trong
việc quản lý chi tiêu


-

Ứng dụng sẽ hỗ trợ từ cơ bản đến đầy đủ chức năng của một ứng dụng quản lý chi
tiêu điển hình

-

Ứng dụng có giao diện thân thiện, dễ sử dụng


3. Quá trình hiện thực
Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn đề đặt
ra ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới để ngày càng hồn
thiện sản phẩm. Những bước thực hiện:
-

Phân tích u cầu bài tốn

-

Lựa chọn nền tảng cơng nghệ phù hợp với yêu cầu

-

Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn

-

Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn


-

Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hoá trải nghiệm người dùng
và cải thiện các tính năng cho ứng dụng

4. Tổng quan về chức năng

Hình 1. Tổng quan về chức năng


CHƯƠNG II. CƠ SỞ LÝ THUYẾT
1. Flutter
1.1. Tổng quan và lịch sử
Flutter là một bộ công cụ phát triển phần mềm mã nguồn mở được tạo ra bởi Google –
một trong những công ty công nghệ lớn nhất hành tinh. Nó được sử dụng với mục đích
phát triển các ứng dụng đa nền tảng cho Android, iOS, Linux, Windows, MacOS và web
chỉ từ một nền tảng mã duy nhất.
Flutter được giới thiệu lần đầu tiên vào năm 2015 và đến tháng 5, 2017 phiên bản ổn định
đầu tiên được ra mắt chính thức. Dù được ra mắt khá trễ nhưng Flutter đã và đang phát
triển mạnh mẽ, dần trở thành một đối thủ nặng ký đối với những công cụ hỗ trợ lập trình
đa nền tảng khác như React Native (Facebook), Xamarin (Microsoft)…
Tính đến thời điểm hiện tại Flutter đang là một trong những công cụ hỗ trợ lập trình đa
nền tảng được sử dụng nhiều nhất. Một số ứng dựng nổi tiếng được viết bằng Flutter:

Hình 2. Một số ứng dụng nổi tiếng được viết bằng Flutter


1.2. Thành phần của Flutter
Flutter gồm có hai tầng chính là Engine và Framework:
-


-

Tầng engine chứa một thư viện đồ hoạ giúp render giao diện người dùng và máy
ảo Dart – môi trường để thực thi mã nguồn và biên dịch mã lệnh Dart. Đây cũng
chính là nơi thực hiện việc kết nối với hệ thống
Tầng framework được viết bằng mã lệnh Dart, cung cấp các lớp, chức năng và tiện
ích (widget) được dùng để tạo ứng dụng Flutter. Lập trình viên sẽ sử dụng chủ yếu
tầng này để lập trình.

Hình 3. Kiến trúc của Flutter

-

-

-

1.3. Một số đặc điểm nổi bật
Fast Development: Tíng 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 fluter 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.



1.4. Ưu và nhược điểm của Flutter:
1.4.1. Ưu điểm:
- Flutter là một bộ open-source SDK, tức là nó hồn tồn miễn phí và “mở” chính vì
-

thế mà cộng đồng lập trình viên có thể cùng tham gia phát triển và hồn thiện nó
Flutter cung cấp đầy đủ và đa dạng các tiện ích (widget) hỗ trợ nên lập trình viên ít
khi cần sự hỗ trợ từ thư viện của bên thứ ba cung cấp
Hỗ trợ hot reload: Tính năng này cho phép thay đổi xuất hiện trực tiếp trên ứng
dụng mà khơng cần phải rebuild lại tồn bộ ứng dụng từ đó làm giảm thời gian của
lập trình viên và khiến việc xây dựng ứng dụng trở nên dễ dàng hơn

1.4.2. Nhược điểm:
- Còn nhiều hạn chế khi phát triển các ứng dụng có các chức năng cần can thiệp sâu
-

-

vào phần cứng của thiết bị
Kích thước ứng dụng khá lớn do Flutter hỗ trợ đa nền tảng nên hiển nhiên số lượng
file và mã nguồn cũng sẽ bị đội lên khá nhiều, tuy nhiên điều này đã được Google
cam kết sẽ cải thiện hơn trong tương lai
Cơng nghệ cịn mới và vẫn chưa có quá nhiều thư viện hỗ trợ, tuy nhiên thì cộng
đồng lập trình viên sử dụng Flutter đang ngày càng nhiều, chính vì thế mà trong
tương lai chắc chắn sẽ có thêm nhiều thư viện hỗ trợ tốt cho Flutter

2. Ngơn ngữ lập trình Dart
2.1. Tổng quan

- Flutter sử dụng ngôn ngữ lập trình Dart. Ra đời từ năm 2011 và được phát triển bởi
Google, Dart đượ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à 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.
- 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à type safe.
-

-

2.2. Tại sao Flutter chọn Dart?
Năng suất: Cú pháp Dart rõ ràng và súc tích, cơng cụ của nó đơn giản nhưng mạnh
mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. 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
Tính 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ễ học và sử dụng: 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.

3. Hệ quản trị cơ sở dữ liệu Firebase

3.1. Firebase là gì?
Firebase là một nền tảng mà Google cung cấp để phát triển các ứng dụng di động và trang
web, hỗ trợ Developer trong việc đơn giản hóa các thao tác với dữ liệu và không cần tác
động tới backend hay server
3.2. Firebase Realtime database
Đầu tiên, để sử dụng nền tảng này tạo ứng dụng, lập trình viên cần đăng ký tài khoản
Firebase. Đăng ký xong, bạn sẽ sở hữu một Realtime Database có dạng JSON được đồng
bộ thời gian đến tất cả kết nối client
Dữ liệu trong các database được tự động cập nhật liên tục khi lập trình viên tiến hành
phát triển ứng dụng. Sau khi được cập nhật, những dữ liệu này sẽ được truyền tải thông
qua kết nối SSL có chứng nhận 2048 bit
Tại những ứng dụng đa nền tảng toàn bộ máy khách đều dùng chung một database. Trong
trường hợp kết nối Internet bị gián đoạn, các dữ liệu sẽ được lưu trữ trên local và cập nhật
khi đường truyền ổn định

3.3. Firebase Authentication
Hoạt động kế tiếp của Firebase là tạo lập quy trình xác thực người dùng thông qua các
phương tiện như Google, Email, GitHub, Facebook, Twitter và xác thực nặc danh đối với
các ứng dụng. Việc xác thực giúp bảo vệ an toàn dữ liệu về thông tin cá nhân của người
dùng mạng
3.4. Firebase Hosting
Các thức hoạt động tiêu biểu cuối cùng, không thể không nhắc đến của Firebase là cung
cấp hosting. Firebase hosting thông qua sự hỗ trợ của SSL đến từ mạng CDN. Nhờ vậy
mà lập trình viên có thể tiết kiệm rất nhiều thời gian thiết kế cũng như phát triển ứng
dụng.


3.5. Ưu điểm của Firebase
- Tốc độ cao: Firebase hỗ trợ phát triển ứng dụng với tốc độ nhanh chóng, giảm bớt
-


-

-

thời gian phát triển và tiếp thị ứng dụng
Đơn giản, dễ dàng trong sử dụng: Người dùng có thể tạo tài khoản Firebase bằng
tài khoản Google và cũng như sử dụng nền tảng này trong phát triển ứng dụng một
cách dễ dàng
Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ trợ phát triển
web, bạn có thể chọn database Firestore hoặc Realtime theo ý muốn
Là một phần của Google: Firebase đã được mua lại và hiện tại đang là một phần
của Google. Nó khai thác triệt để sức mạnh và các dịch vụ sẵn có của Google
Tập trung phát triển chủ yếu về giao diện người dùng: Firebase cho phép lập trình
viên tập trung chủ yếu vào phát triển phần giao diện người dùng nhờ kho Backend
mẫu phong phú đa dạng
Khơng có máy chủ: Điều này giúp Firebase có khả năng tối ưu hóa về hiệu suất
làm việc thông qua mở rộng cụm database
Học máy: Firebase cung cấp học máy cho lập trình viên, hỗ trợ tối đa cho việc phát
triển ứng dụng
Tạo ra lưu lượng truy cập: Với khả năng hỗ trợ tạo lập các chỉ mục, Firebase giúp
nâng cao thứ hạng của ứng dụng trên bảng xếp hạng Google, từ đó tăng lượt traffic
Theo dõi lỗi: Firebase là công cụ phát triển, khắc phục lỗi tuyệt vời
Sao lưu: Firebase sao lưu thường xun, giúp đảm bảo tính sẵn có và bảo mật
thơng tin cho dữ liệu

3.6. Nhược điểm của Firebase
-

Không phải mã nguồn mở

Chỉ hoạt động trên CSDL NoSQL
Lập trình viên không được truy cập vào mã nguồn
Truy vấn chậm
Phạm vi hoạt động bị hạn chế ở một vài quốc gia
Một vài dịch vụ cần trả phí, chi phí dành cho Firebase tương đối lớn và không ổn
định
Thiếu Dedicated Servers và cả hợp đồng doanh nghiệp


CHƯƠNG III. XÂY DỰNG HỆ THỐNG
1. Xây dựng kiến trúc hệ thống
1.1. Công nghệ sử dụng
● Ngôn ngữ: Dart
● UI Framework: Flutter
● UI Design tool: Figma
● Database: Firebase
● IDE: Android Studio & Visual Studio Code
● Kiến trúc ứng dụng: MVVM
1.2. Kiến trúc hệ thống: Mơ hình Client-Server
- Lớp Client: Hiển thị giao diện người dùng, thông qua kết nối Internet để kết nối đến cơ
sở dữ liệu quản lý thư viện. Là nơi diễn ra các tương tác của người dùng với chương trình
như nhập, các thao tác truy xuất dữ liệu.
- Lớp Server: Quản lý và chứa toàn bộ dữ liệu của phần mềm. Đồng thời xử lý các yêu
cầu nhập/xuất được gửi xuống từ lớp Client. Ứng dụng được dùng làm lớp Server là
Firebase.

Hình 4. Kiến trúc hệ thống client server


1.3. Kiến trúc ứng dụng: Mơ hình MVVM


Hình 5 Kiến trúc ứng dụng

MVVM (viết tắt của Model-View-ViewModel) là một mẫu kiến trúc thiết kế phần
mềm dựa trên việc tách quá trình phát triển GUI (view) ra khỏi quá trình phát triển các xử
lý logic và backend, sao cho phần view khơng bị phụ thuộc vào bất kì nền tảng model cụ
thể nào. Trong MVVM, các tầng bên dưới sẽ không biết được thông tin của các tầng trên.
MVVM bao gồm 3 phần:
◾ View: phần giao diện của ứng dụng dùng hiển thị dữ liệu và nhận tương tác người
dùng.
◾ Model: là đối tượng giúp truy xuất và thao tác trên database.
◾ View Model: là lớp trung gian giữa View và Model.
Mục đích lựa chọn:
◾ Tận dụng cơ chế data binding: Tối ưu việc phân tách lớp view khỏi phần còn lại của
hệ thống, bằng việc loại bỏ hầu như toàn bộ các đoạn code-behind ở lớp view. Điều
này giúp cho các lập trình viên UI, UX tập trung vào việc thiết kế giao diện mà
không phải bận tâm đến việc xử lý logic. Các lớp của phần mềm sẽ được phát triển
nhanh hơn vì sự phân tách luồng công việc rõ ràng, tăng hiệu suất. Ngay cả khi một
lập trình viên phải làm việc với tồn bộ code thì họ vẫn sẽ dễ đọc và chỉnh sửa code,
hơn nữa UI thường sẽ thay đổi xuyên suốt quá trình phát triển dựa vào feedback từ
khách hàng nên đây sẽ là một lựa chọn ổn định. Ngồi ra kiểm tra, bảo trì và mở
rộng khá dễ dàng.


Thực hiện Unit testing dễ dàng, vì nhà phát triển thực sự khơng phụ thuộc vào
view







MVVM sẽ tạo sự tương tác hiệu quả giữa designer và developer
Tăng khả năng sử dụng lại các thành phần hay việc thay đổi giao diện chương
trình mà khơng cần phải viết lại code quá nhiều
Phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì…
1.4. Mô tả thành phần hệ thống
STT

Thành Phần

Mô tả

1

Repository

Chứa các service được cung cấp từ firebase

2

Models

Chứa các class đối tượng từ database.

3

Views

Chứa các thiết kế giao diện cho các màn hình.


4

Components

Chứa các thành phần có thể được tái sử dụng cho
các màn hình khác nhau.

5

ViewModels

Chứa các file viewmodel của từng module riêng biệt
của các màn hình.

6

Constants

Chứa các file định dạng các hằng số được liên tục tái
sử dụng trong ứng dụng.

7

Assets

Chứa các file hình ảnh của ứng dụng.
Bảng 1. Mô tả thành phần ứng dụng



1.5. Sơ đồ Use case

Hình 6. Sơ đồ use case


1.6. Mơ tả Use case
Chức năng

Mơ tả

1

Đăng ký

Người dùng có thể tạo tài khoản mới bằng email và mật
khẩu

2

Đăng nhập
bằng email và
mật khẩu

Người dùng tiến hành đăng nhập bằng email và mật khẩu
đã được đăng ký trước đó

3

Đăng nhập
bằng google


Người dùng tiến hành đăng nhập bằng tài khoản google

4

Quên mật khẩu Người dùng có thể đổi lại mật khẩu bằng email được
dùng để đăng ký tài khoản được trước

5

Thêm ví

Người dùng có thể thêm ví chi tiêu với tên và số dư

6

Cập nhật ví

Người dùng có thể sửa các thơng tin của ví như đổi tên ví,
đổi icon ví, cập nhật số dư

7

Xóa ví

Người dùng có thể xóa ví khỏi tài khoản hiện tại

8

Thêm giao

dịch

Người dùng có thể thêm giao dịch với các thơng tin cần
thiết

9

Sửa giao dịch

Người dùng có thể cập nhật giao dịch đã được tạo trước
đó

10

Xóa giao dịch

Người dùng có thể xóa giao dịch đã được tạo trước đó

11

Báo cáo chi
tiêu

Người dùng có thể xem báo cáo về thống kê chi tiêu trong
tháng

12

Thêm ngân
sách


Người dùng có thể thêm ngân sách cho mỗi danh mục để
quản lý mức độ chi tiêu trong tháng

13

Sửa ngân sách

Người dùng có thể chỉnh sửa hạn mức của ngân sách đã
tạo

STT


Người dùng có thể xóa ngân sách đã tạo

14

Xóa ngân sách

15

Chỉnh sửa thời Người dùng có thể chỉnh sửa thời gian thông báo mặc
gian thông báo định của ứng dụng

16

Chỉnh sửa định Người dùng có thể chỉnh sửa định dạng ngày tháng mặc
định của ứng dụng
dạng ngày

tháng

17

Bật tắt âm
thanh thông
báo

Người dùng có thể bật tắt âm thanh mỗi khi ứng dụng
xuất hiện thơng báo

18

Đăng xuất

Người dùng có thể thốt tài khoản hiện tại trong ứng dụng
Bảng 2. Mô tả use case

1.7. Đặc tả use case
1.7.1. Đăng ký
Use case ID

UC1

Tên

Đăng ký

Mô tả tóm tắt


Cho phép người dùng tạo tài khoản để sử dụng nhiều
chức năng hơn của ứng dụng

Người thực hiện (Actors)

Khách (Guest)

Sự kiện kích hoạt (Trigger) Bấm chọn nút Đăng ký ngay


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

Email được nhập chưa được đăng ký trước đó

conditions)

Điều kiện kết quả (Post-

Tài khoản mới và thơng tin người dùng được lưu vào hệ

conditions)

thống

Kịch bản chính (Basic

1. Người dùng bấm chọn nút Đăng ký ngay.

flow)


2. Hệ thống hiện bản nhập liệu thông tin đăng ký tài
khoản.
3. Nhập thông tin và bấm Đăng ký.
4. Hệ thống kiểm tra tính hợp lệ và tạo tài khoản.
5. Hệ thống lưu lại thông tin người dùng và điều
hướng đến màn hình chính của ứng dụng.

Kịch bản thay thế
(Alternative flow)

3a.1. Người dùng nhập thiếu thông tin và bấm Đăng ký
3a.2. Hệ thống hiện thông báo điền thiếu thông tin
4.1. Hệ thống hiện tài khoản đã tồn tại, người dùng phải
thay đổi tài khoản đăng ký để tiếp tục
Bảng 3. Đặc tả chức năng đăng ký

1.7.2. Đăng nhập với email và mật khẩu
Use case ID

UC2

Tên

Đăng nhập bằng email và mật khẩu


Cho phép người dùng đăng nhập vào ứng dụng với tài

Mơ tả tóm tắt


khoản đã được tạo trước đó.

Người thực hiện (Actors)

Người dùng (User)

Sự kiện kích hoạt (Trigger) Bấm chọn nút Đăng nhập

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

Tài khoản và mật khẩu được nhập vào phải hợp lệ.

conditions)

Điều kiện kết quả (Post-

Ứng dụng thông báo đăng nhập thành công và điều

conditions)

hướng đến màn hình chính của ứng dụng.

Kịch bản chính (Basic

1. Người dùng nhập thông tin email, mật khẩu và
bấm nút Đăng nhập.

flow)

2. Hệ thống sẽ kiểm tra tính hợp lệ của tài khoản.

3. Ứng dụng sẽ điều hướng người dùng đến màn
hình chính của ứng dụng.

Kịch bản thay thế
(Alternative flow)

2a.1. Người dùng nhập sai thông tin đăng nhập.
2a.2. Hệ thống thông báo tài khoản không hợp lệ, đăng
nhập thất bại.

Bảng 4. Đặc tả chức năng đăng nhập với email và mật khẩu


1.7.3. Đăng nhập bằng Google
Use case ID

UC3

Tên

Đăng nhập bằng Google

Mô tả tóm tắt

Cho phép người dùng đăng nhập vào ứng dụng với tài
khoản Google.

Người thực hiện (Actors)

Người dùng (User) hoặc Khách (Guest)


Sự kiện kích hoạt (Trigger) Bấm chọn nút Đăng nhập với Google

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

Tài khoản Google phải hợp lệ

conditions)

Điều kiện kết quả (Post-

Ứng dụng thông báo đăng nhập thành cơng và điều

conditions)

hướng đến màn hình chính của ứng dụng.

Kịch bản chính (Basic
flow)

1. Người dùng bấm nút Đăng nhập với Google và
nhập thông tin tài khoản Google
2. Hệ thống sẽ kiểm tra tính hợp lệ của tài khoản.
3. Ứng dụng sẽ điều hướng người dùng đến màn
hình chính của ứng dụng.


2a.1. Người dùng nhập sai thông tin tài khoản Google.

Kịch bản thay thế

(Alternative flow)

2a.2. Hệ thống thông báo tài khoản không hợp lệ, đăng
nhập thất bại.
Bảng 5. Đặc tả chức năng đăng nhập bằng Google

1.7.4. Quên mật khẩu
Use case ID

UC4

Tên

Quên mật khẩu

Mô tả tóm tắt

Cho phép người dùng đổi lại mật khẩu khi quên.

Người thực hiện (Actors)

Người dùng (User)

Sự kiện kích hoạt (Trigger) Bấm chọn nút Quên mật khẩu tại màn hình đăng nhập

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

Tài khoản ứng với email đó phải được tạo từ trước.

conditions)


Điều kiện kết quả (Post-

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

conditions)

Kịch bản chính (Basic
flow)

1. Người dùng bấm vào nút Quên mật khẩu.


2. Người dùng nhập vào email ứng với tài khoản đã
được tạo bởi email.
3. Người dùng kiểm tra mail và tạo password mới
dựa trên đường link được cung cấp.

Kịch bản thay thế
(Alternative flow)
Bảng 6. Đặc tả chức năng quên mật khẩu

1.7.5. Thêm ví
Use case ID

UC5

Tên

Thêm ví


Mơ tả tóm tắt

Cho phép người dùng thêm ví để quản lý chi tiêu

Người thực hiện (Actors)

Người dùng (User)

Sự kiện kích hoạt (Trigger) Bấm dấu cộng tại màn hình Ví của bạn

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

Người dùng phải đăng nhập trước đó

conditions)

Điều kiện kết quả (Postconditions)

Người dùng tạo ví thành cơng


1. Người dùng bấm dấu cộng tại màn hình Ví của
Kịch bản chính (Basic

bạn

flow)
2. Người dùng điền tất cả thơng tin tại màn hình
thêm ví.

3. Người dùng bấm nút Lưu để lưu ví mới
4. Người dùng bấm dấu X phía bên trái màn hình để
thốt tạo ví

Kịch bản thay thế

3a.1. Người dùng điền không đủ thông tin.

(Alternative flow)
3a.2. Hệ thống hiển thị cảnh cáo, tạo ví khơng thành cơng
Bảng 7. Đặc tả chức năng thêm ví

1.7.6. Cập nhật ví
Use case ID

UC6

Tên

Cập nhật ví

Mơ tả tóm tắt

Cho phép người dùng cập nhật thơng tin ví đã tạo trước
đó

Người thực hiện (Actors)

Người dùng (User)


Sự kiện kích hoạt (Trigger) Bấm dấu 3 chấm của ví muốn sửa tại màn hình Ví của
bạn


×