Với sự phát triển mạnh mẽ của cuộc cách mạngcông nghệ 4.0, thì sự phát triển của internet là điều dễ dự đoán, khi mà mọi người đều cócho riêng mình các thiết bị di động luôn kết nối với
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ
Giảng viên hướng dẫn: ThS Trần Anh Dũng
Sinh viên thực hiện:
Trang 2chi tiêu cho phòng trọ” chúng em đã nhận được sự giúp đỡ, chỉ bảo nhiệt tình của thầy để
hoàn thành đồ án này
Chúng em xin bày tỏ sự biết ơn đặc biệt đến Thầy Trần Anh Dũng người đã trực tiếphướng dẫn, giúp đỡ về kiến thức, tài liệu và phương pháp để chúng em hoàn thành đề tàinày
Chúng em xin chân thành cảm ơn vì những thời gian quý báu thầy đã dành ra đểkiểm tra, đưa ra các ý kiến nhận xét và đóng góp rất nhiều vào những tính năng, hướngphát triển mới hơn cho đề tài
Hi vọng với sự chỉ báo và góp ý từ thầy, nhóm đề tài có thể tiếp túc phát triển để ứngdụng ngày càng được mở rộng và phục vụ được tốt hơn cho người dùng
Mặc dù đã có nhiều cố gắng trong suốt quá trình thực hiện đề tài, song có thể còn cónhững mặt hạn chế, thiếu sót Chúng em rất mong nhận được ý kiến đóng góp và sự chỉdẫn của thầy và các bạn để đề tài của chúng em được hoàn thiện hơn
Chúng em xin trân trọng cảm ơn!
Thành phố Hồ Chí Minh, 11 tháng 01 năm 2021
MỤC LỤC
Nô i dung ̣i dung
Chương 1 GIỚI THIỆU CHUNG 1 1.1 Lý do chọn đề tài 1 1.2 Mục đích của đề tài 21.3 Chức năng dự kiến 3 1.4 Đối tượng nghiên cứu 3
Chương 2 KIẾN THỨC NỀN TẢNG 4 2.1 Tổng quan về mô hình 3 lớp 4 2.1.1 Kháiniệm 4 2.1.2 Cấu trúc mô hình 3 lớp 5 2.1.2.1 Tầng trình diễn – Presentation Layer (GUI)
5 2.1.2.2 Tầng logic dữ liệu – Business Logic Layer (BLL) 5 2.1.2.3 Tầng truy cập dữliệu – Data Access Layer (DAL) 5 2.1.3 Ưu điểm của mô hình 3 lớp 6 2.1.4 So sánhMVC và 3-tiers Model 7 2.2 Tổng quan về công nghệ Flutter 8 2.2.1 Khái niệm 8 2.2.2.Lịch sử phát triển 8 2.2.3 Ưu điểm của Flutter 8 2.3 Ngôn ngữ Dart 10 2.3.1 Giới thiệu
ngôn ngữ Dart 102.3.2 Ưu điểm của Dart 10 2.4 Google Firebase Cloud 12 2.4.1 Khái niệm Firebase 122.4.2 Chức năng chính của Google Firebase 13 2.4.2.1 Realtime Database – Cơ sở dữliệu thời gian thực 13 2.4.2.2 Firebase Authentication – Hệ thống xác thực của Firebase
Trang 313 2.4.2.3 Firebase storage 13 2.4.2.4 Firebase Cloud Messaging 13 2.4.3 Lợi ích củaGoogle Firebase 13 2.5 Tổng quan về Android 14 2.5.1 Giới thiệu nền tảng Android 142.5.2 Cấu trúc của hệ điều hành Android 15 2.5.3 Giới thiệu hệ điều hành mở Android 16Chương 3 XÂY DỰNG HỆ THỐNG 16 3.1 Xây dựng kiến trúc hệ thống 16 3.1.1 Xácđịnh yêu cầu hệ thống 16 3.1.1.1 Mô tả chức năng 17 3.1.2 Phân tích thiết kế hệ thống.
19 3.1.2.1 Sơ đồ use case 19 3.1.2.2 Danh sách các actors 22 3.1.2.3 Danh sách các use
cases 22 3.1.3 Sơ đồ lớp 23 3.1.4 Phân tích và thiết kế CSDL 243.1.4.1 Bảng Thông tin nhóm 24 3.1.4.2 Bảng Khoản chi nhóm 25 3.1.4.3 BảngChi tiết khoản chi 25 3.1.4.4 Bảng Người dùng 26
3.2 Thiết kế giao diện 27 3.2.1 Giao diện ứng dụng 27 3.2.1.1 Giao diện Đăng ký 273.2.1.2 Xác minh số điện thoại 28 3.2.1.3 Giao diện Đăng nhập 29 3.2.1.4 Giao diệnQuản lý khoản chi 30 3.2.1.5 Giao diện Danh sách nhóm 31 3.2.1.6 Giao diện Tổng quan
32 3.2.1.7 Giao diện Quản lý tài khoản 33 3.2.1.8 Giao diện Thống kê 34 3.2.1.9 Giaodiện Thông tin chi tiết khoản chi 35 Chương 4 KẾ HOẠCH THỰC HIỆN 36 4.1 Quátrình thực hiện 36 4.2 Bảng phân công công việc 37 Chương 5 KẾT LUẬN, HƯỚNGPHÁT TRIỂN 38 5.1 Ưu điểm 38 5.2 Nhược điểm 38 5.3 Hướng phát triển 38 Chương
6 TÀI LIỆU THAM KHẢO 39
DANH MỤC HÌNH VẼ
Hình 1: Mô hình 3 lớp 4 Hình 2: So sánh Mô hình 3 lớp và MVC 6 Hình 3:Google Firebase Cloud 10 Hình 2-4: Cấu trúc hệ điều hành Android 13 Hình 3-1:Biểu đồ use case mức tổng quát 16 Hình 3-2: Biểu đồ use case Đăng nhập 17 Hình 3-3:Biểu đồ use case Quản lý khoản chi nhóm 18 Hình 3-4: Biểu đồ use case Tổng quannhóm 18 Hình 3-5: Biểu đồ lớp 21 Hình 3-6: Giao diện đăng ký 25 Hình 3-7: Giao diệnxác minh số điện thoại 26 Hình 3-8: Giao diện đăng nhập 27 Hình 3-9: Giao diện Quản
2-lý khoản chi 28 Hình 3-10: Giao diện Danh sách nhóm 29 Hình 3-11: Giao diện Tổngquan 30 Hình 3-12: Giao diện Quản lý tài khoản 32 Hình 3-13: Giao diện Thống kê 33Hình 3-14: Giao diện Thông tin chi tiết 34
DANH MỤC BẢNG
Trang 4Bảng 3-1: Danh sách actors 19 Bảng 3-2: Danh sách use cases 20 Bảng 3-3: Các lớpcủa sơ đổ lớp 21 Bảng 3-4: Các đối tượng và thuộc tính của đối tượng 22 Bảng 3-5:Bảng Khoản chi 22 Bảng 3-6: Bảng Chi tiết khoản chi 22 Bảng 3-7: Bảng Khoản thu
23 Bảng 3-8: Bảng Chi tiết khoản thu 23 Bảng 3-9: Bảng Người dùng 24
DANH MỤC TỪ VIẾT TẮT
QLTC Quản lý tài chính Hình thức quản lý tiền bạcCSDL Cơ sở dữ liệu Cơ sở dữ liệu cho ứng dụngRFM RoomFinancialManagement Tên của ứng dụng
Chương 1 GIỚI THIỆU CHUNG
1.1 Lý do chọn đề tài
Dựa trên nhu cầu các bạn ở trọ thường nộp ra một tiền quỹ rồi từ đó sử dụng dần,hay việc nợ tiền giữa người này và người khác, các món hàng được mua bởi người này sửdụng bởi người kia.v.v Việc quản lý thủ công trở nên khó khăn, thì phần mềm sẽ giúp bạnquản lý một cách đơn giản và gọn nhẹ Kết quả trả ra là dư nợ của mỗi người và số tiềncòn dư hay thiếu của quỹ chung
Đối với những người tiêu dùng thông minh, chuyện quản lý chi tiêu rất dễ dàng.Nhưng đối với những sinh viên còn đi học thì rất ít ai có thể tự quản lý được túi tiền củamình thế nên nhiều ứng dụng đã được làm ra để giải quyết vấn đề đó
Xây dựng ứng dụng tài chính là một đề tài không mới nhưng luôn mang tính ứngdụng và nhu cầu cao từ các lập trình viên Với sự phát triển mạnh mẽ của cuộc cách mạngcông nghệ 4.0, thì sự phát triển của internet là điều dễ dự đoán, khi mà mọi người đều cócho riêng mình các thiết bị di động luôn kết nối với internet cùng với sự ra đời của rấtnhiều ứng dụng quản lý cùng chức năng cũng như tính năng riêng
Phục vụ tốt hơn nhu của người dùng và người quản lý chi tiêu trong hoạt động thường ngày
Người dùng chỉ cần các thao tác đơn giản trên điện thoại di động là có thể sử
dụng được ngay
Trang 51
1.2 Mục đích của đề tài
- Với bước khởi đầu là môn Đồ án 1, nhóm thực hiện đề tài mong muốn sẽ nghiên
cứu tìm ra các tính năng ưu việt hơn để áp dụng thêm vào đề tài này
- Từ các công nghệ đã tìm hiểu, nhóm sẽ chọn ra các công nghệ phù hợp, có thể mởrộng và nâng cấp thêm để ứng dụng sẽ hoàn thiện theo hướng mong muốn củanhóm
- Trong phạm vi môn học, nhóm đặt ra các chức năng phải thực hiện gồm: ●
Xây dựng chức năng đăng nhập, đăng ký, xác thực tài khoản
● Xây dụng chức năng quản lý thông tin người dùng
● Xây dựng chức năng quản lý các khoản chi nhóm
● Xây dựng chức năng tạo nhóm chi tiêu
● Xây dựng chức năng quản lý và thống kê
2
1.3 Chức năng dự kiến
- Tạo nhóm chi tiêu và thêm người dùng khác vào nhóm
Trang 6- Tạo khoản chi và chia tiền cho những người tham gia khoản chi này -
Thống kê chi tiêu của nhóm theo tuần/tháng
- Tìm kiếm thông tin có sử dụng bộ lọc
1.4 Đối tượng nghiên cứu
- Các công nghệ:
● Android Studio
● Firebase
● Flutter
- Giao diện: Quy tắc thiết kế F-layout, quy tắc phối màu mono
- Đối tượng trong phạm vi đề tài hướng đến: Sinh viên đang ở trọ hoặc ở ký túc
xá theo nhóm từ 3 người trở lên
Trang 7logic), và việc lưu trữ dữ liệu được phát triển như những module độc lập, và hầu hết làđược duy trì trên các nền tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiếntrúc phần mềm và là một mẫu thiết kế
Hình 2-1: Mô hình 3 lớp
4
2.1.2 Cấu trúc mô hình 3 lớp
2.1.2.1 Tầng trình diễn – Presentation Layer (GUI)
Tầng này có nhiệm vụ chính là giao tiếp với người dùng Nó gồm các thànhphần giao diện (winform, webform, …) và thực hiện các công việc như nhập liệu,
hiển thị dữ liệu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL)
2.1.2.2 Tầng logic dữ liệu – Business Logic Layer (BLL)
● Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính
nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access
Trang 8Layer và lưu xuống hệ quản trị CSDL
● Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện
tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation Layer
2.1.2.3 Tầng truy cập dữ liệu – Data Access Layer (DAL)
Tầng này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu (tìm kiếm, thêm, xóa, sửa, …)
5
2.1.3 Ưu điểm của mô hình 3 lớp
Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờ vào việcchia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truyvấn thay vì để tất cả lại một chỗ Nhằm giảm sự kết dính
Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi Việcthay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đến lớp gần nhất mà khôngảnh hưởng đến cả chương trình
Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào đó thì việclập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn để tuân theo Và việc
sử dụng lại khi có sự thay đổi giữa hai môi trường (Winform sang Webform) thì chỉ việcthay đổi lại lớp GUI
Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì công việcbàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian
Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm
Trang 9vụ trong mô hình 3 lớp Việc phân chia rõ ràng như thế sẽ giúp các lập trình viên kiểmsoát được khối lượng công việc của mình.
6
2.1.4 So sánh MVC và 3-tiers Model
Điểm khác biệt cơ bản của 2 mô hình MVC và Mô hình 3 lớp là sự khác nhau củacách xử lý yêu cầu của 2 mô hình Trong MVC, thành phần model giữ chức năng của cảtầng Business và Data Access trong mô hình 3 lớp
3 Layer thường được sử dụng trong lập trình ứng dụng, trong khi đó MVC được ưuchuộng nhiều trong lập trình website vì tính linh hoạt và không bắt buộc các DTO như 3-Layer
Trang 10Hình 2-2: So sánh Mô hình 3 lớp và MVC
7
2.2 Tổng quan về công nghệ Flutter
Trong đề tài này, appservice sẽ được viết bằng Flutter Vì vậy sinh viên thực hiện đề tài cần tìm hiểu về ngôn ngữ này
2.2.1 Khái niệm
Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android do Googlephát triển Flutter sử dụng ngôn ngữ DART cũng do Google phát triển và flutter cũng đãđược sử dụng để tạo ra các ứng dụng native cho Google
Flutter hỗ trợ rất nhiều cơ sở dữ liệu như: MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC…
2.2.2 Lịch sử phát triển
Phiên bản đầu tiên của Flutter được gọi là "Sky" và chạy trên hệ điều hành Android
Nó được công bố tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu để có thể kếtxuất ổn định ở mức 120 khung hình trên giây Trong bài phát biểu chính ở hội nghị Google
Trang 11Developer Days tại Thượng Hải, Google công bố phiên bản Flutter Release Preview 2, đây
là phiên bản lớn cuối cùng trước Flutter 1.0 Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 đãđược phát hành tại sự kiện Flutter Live, là phiên bản "ổn định" đầu tiên của khung ứngdụng này
2.2.3 Ưu điểm của Flutter
❖ Dart DevTools
DevTools tuy mới ở giai đoạn beta nhưng độ hoàn thiện cũng rất cao, so với
DevTools của React/React Native thì DevTools của Flutter tốt hơn
❖ Nâng cấp dễ dàng
Mặc dù cách cài đặt ban đầu của Flutter là tải về tập tin nén, nhưng khi cập nhật lên phiên bản mới thì chỉ cần dòng lệnh là đủ, và khá dễ dàng Ứng dụng sau khi nâng cấp phiên bản Flutter chạy không gặp trở ngại gì cả Đây là một điểm cộng khá lớn khi xét về
độ trưởng thành Khi sử dụng React Native, các phiên bản từ 0.25, 0.48 có những thay đổiphải sửa bằng tay mới chạy, rất khó chịu
Kết luận: Với những tính năng ưu việt của mình, Flutter vẫn, sẽ và đang là một trong
những ngôn ngữ lập trình phổ biến nhất ngày nay và trong tương lai, được các lập trìnhviên rất ưa chuộng, và sử dụng rộng rãi trên toàn thế giới
Trang 129
2.3 Ngôn ngữ Dart
2.3.1 Giới thiệu ngôn ngữ Dart
Ngôn ngữ DART là ngôn ngữ thuần hướng đối tượng được Google giới thiệu từ năm
2011, với mục đích cung cấp sự lựa chọn hiện đại hơn nhưng không thay thế Javascript.Tối ưu cho client, nhất là ứng dụng đa nền tảng
Từng giữ vị trí Top 1 cho bình chọn ngôn ngữ không nên học năm 2018 theo
Codementor:
https://www.codementor.io/blog/worst-languages-to-learn-3phycr98zk
Đưa ra ví dụ để có thể nói mọi thứ đều có thể trở thành hiện tượng “vật đổi sao dời”, từ một ngôn ngữ không nên học vào 2018 có thể trở thành ngôn ngữ được sử dụng nhiều trong năm 2019 này, và nhờ Flutter mà có khả năng tiếp tục phát triển vào 2020
Ngôn ngữ DART được hỗ trợ khá tốt ở Visual Studio Code, và trong Android Studio
2.3.2 Ưu điểm của 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ẽ 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áigồm hàng ngàn package
Trang 13chạ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
Trang 14Hình 2-3: Google Firebase Cloud
2.4.1 Khái niệm Firebase
Firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đámmây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụngbằng cách đơn giản hóa các thao tác với cơ sở dữ liệu
Ra mắt muộn hơn các công nghệ khác, Firebase được ra đời vào năm 2014 và đượcgoogle mua lại vào năm 2016 Từ đó Firebase đã tăng từ 110.000 lên 470.000 nhà pháttriển và vẫn đang nắm giữ tốc độ tăng trưởng đáng kể Firebase được tin dùng và phổ biếnbởi vì nó giúp nhà phát triển có thể xây dựng hệ thống Client – Server mà công sức cũngnhư chi phí bỏ ra cho phía Server giảm đi đáng kể
12
2.4.2 Chức năng chính của Google Firebase
2.4.2.1 Realtime Database – Cơ sở dữ liệu thời gian thực
Dữ liệu được firebase lưu trữ có dạng JSON và được đồng bộ cơ sỡ dữ liệu đến tất cảuser theo thời gian thực Điều này sẽ giúp xây dựng hệ thống đa nền tảng và tất cả usercùng dùng chung một database được cung cấp với firebase, điều tuyệt vời hơn là firebase
tự động cập nhật mỗi khi có sự thay đổi dữ liệu
2.4.2.2 Firebase Authentication – Hệ thống xác thực của Firebase
Trang 15Firebase dễ dàng tích hợp các công nghệ xác thực của các ông lớn trên internet nhưGoogle, Facebook, …hoặc một hệ thống xác thực tự xây dựng trong ứng dụng ở bất kỳnền tảng nào như Android, iOS
2.4.2.3 Firebase storage
Firebase storage lưu trữ được nhiều dạng dữ liệu như tập tin, hình ảnh, video mộtcách dễ dàng Ngoài ra nó còn tích hợp Google security giúp tải lên và tải về các ứng dụngfirebase một cách tiện lợi
2.4.2.4 Firebase Cloud Messaging
Bên cạnh các tính năng trên, Firebase còn cung cấp dịch vụ Cloud Messaging, mộtgiải pháp đa nền tảng, cho phép mọi người gửi thông điệp miễn phí dưới dạng tin nhắntheo thời gian thực
2.4.3 Lợi ích của Google Firebase
❖ Triển khai ứng dụng cực nhanh
Với firebase, lập trình viên sẽ giảm được nhiều thời gian cho việc xây dựng và pháttriển và đồng bộ cơ sở dữ liệu, nó diễn ra nhanh chóng và tự động qua các API màFirebase cung cấp Ngoài ra, nếu lập trình viên muốn xây dựng ứng dụng đa nền tảng, điềunày hoàn toàn dễ dàng vì Firebase cũng hỗ trợ đa nền tảng
13 Không chỉ có vậy, quá trình đăng ký và đăng nhập vào ứng dụng sẽ tiện lợi và dễ dàng hơn bằng các hệ thống xác thực mà Firebase đã cung cấp
❖ Bảo mật
Firebase hoạt động dựa vào nền tảng đám mây và thực hiện kết nối bằng giao thứcbảo mật SSL, vì thế bảo mật dữ liệu cũng như đường truyền giữa client và server sẽ đượcđảm bảo nghiêm ngặt Ngoài ra, việc phân quyền cho người dùng chỉ đơn giản với cú phápjavascript cũng được nâng cao hơn, bởi chỉ người nào được cấp phép mới có thể chỉnh sửa
dữ liệu
❖ Tính linh hoạt và khả năng mở rộng
Firebase cho phép nhà phát triển xây dựng server của riêng mình để thuận tiện trong quá trình quản lý Firebase sử dụng hệ quản trị cơ sở dữ liệu là NoSQL, giúp database dễ dàng mở rộng các bảng, các trường tùy theo ý thích của mỗi lập trình viên
Trang 162.5 Tổng quan về Android
2.5.1 Giới thiệu nền tảng Android
Android là một nền tảng phổ biến hiện nay, khi mà nó có mặt trên nhiều loại thiết bịnhư điện thoại smartphone, máy tính bảng Hiện nay, với sự tiện lợi và dễ dàng sử dụngcủa nó, Android đã được tích hợp trên các thiết bị khác như ti vi, đồng hồ, xe hơi, … Các ứng dụng Android chủ yếu viết bằng ngôn ngữ Java, đồng thời cũng hỗ trợ ngônngữ C++ và mới mẽ hơn, ngôn ngữ Kotlin cũng được hỗ trợ với biệt danh là Swift củaAndroid
14
2.5.2 Cấu trúc của hệ điều hành Android
Hình 2-4: Cấu trúc hệ điều hành Android
Hệ điều hành Android bao gồm các thành phần sau:
− Linux kernel: là cốt lõi của Android, đa phần là những driver để tích hợp vào phần cứng và phần mềm
− Android runtime: là trình biên dịch code Android từ dạng tiền biên dịch sang
Trang 17bytecode để có thể chạy được trên bất kỳ thiết bị Android nào
− Library: phần này gồm các thư viện dựa trên Java Nó bao gồm các Framework Library giúp xây dựng, vẽ đồ họa và truy cập cơ sở dữ liệu trở nên dễ dàng hơn − Application Framework: cung cấp nhiều dịch vụ cấp cao hơn cho các ứng dụng
Android
− Application: Là tầng trên cùng của nền tảng Android, những ững dụng mà lập trình viên sẽ lập trình nằm ở& này
15
2.5.3 Giới thiệu hệ điều hành mở Android
− Mã nguồn Android được cung cấp miễn phí cho các nhà sản xuất và họ có thể thoải mái sử dụng mà không cần xinh phép Google
− Cho pháp các nhà phát triển tự do xây dựng ứng dụng và có thể tận dụng tối đa khả năng của phần mềm, phần cứng và cả điều hành
− Các ứng dụng do các nhà phát triển xây dựng hoàn toàn có thể thay thế gần như toàn
bộ ứng dụng cốt lõi như: gọi điện, cài đặt, tin nhắn, camera, … − Ngoài ra, Google cũng cung cấp Android Studio, một IDE tiện loại để phát triển ứng dụng Android
+ Quản lý thông tin khoản chi nhóm + Tạo khoản chi nhóm
+ Quản lý thông tin tổng quan của nhóm + Thống kê khoản chi của nhóm
Trang 18+ Chỉnh sửa thông tin nhóm
− Đăng nhập:
Người dùng sử dụng tài khoản đã đăng ký để đăng nhập vào ứng dụng Khi đăng nhập vào ứng dụng, người dùng có thể sử dụng tất cả tiện ích của ứng dụng
− Quản lý chi tiêu theo ngày:
Ứng dụng sẽ trình bày tổng quát các khoản chi tiêu theo từng ngày, những khoản chiđược lập trong cùng một ngày sẽ được hiển thị trong cùng một ô Mỗi ô sẽ có chức năng
“xem chi tiết” để xem thông tin chi tiết của các khoản chi trong ngày đó
− Tạo khoản chi:
Người dùng có thể tạo khoản chi tiêu bằng cách nhấn vào button “+” để tạo khoảnchi Một khoản chi bao gồm: Loại khoản chi(chọn 1 trong những loại khoản chi có sẵn củaứng dụng), Nội dung, Giá tiền, Ngày mua(chọn ngày mua hàng từ lịch của ứng dụng), Hóađơn(nếu có, định dạng là 1 ảnh), Người mua, Người tham gia(chọn người trong nhómcùng tham gia vào khoản chi) và Ghi chú Sau khi tạo khoản chi xong người dùng có thểxem lại khoản chi vừa tạo ở trang quản lý khoản chi
Trang 1917
− Quản lý thông tin tổng quan của nhóm:
Các thông tin tổng quan của nhóm được hiển thị bao gồm: Ảnh đại diện, Tên nhóm, Tiền quỹ hiện tại của nhóm, Tiền quỹ hiện tại của các thành viên trong nhóm
Nếu người dùng là trưởng nhóm, người dùng có thể thay đổi các thông tin được hiểnthị trên trang quản lý bao gồm Ảnh đại diện, Tên nhóm, Tiền quỹ hiện tại của các thànhviên trong nhóm
− Thống kê chi tiêu của nhóm:
Thống kê tổng số tiền chi của từng thành viên trong nhóm của tháng hiện tại và tháng trước đó
− Tạo nhóm
Người dùng có thể tạo nhóm của mình theo các thông tin: Tên nhóm, Ảnh đại diện,Quỹ nhóm, Thành viên tham gia vào nhóm (sử dụng id được ứng dụng cung cấp cho từngtài khoản) Nhóm sau khi được tạo sẽ được hiển thị trong danh sách nhóm của tài khoản
18
3.1.2 Phân tích thiết kế hệ thống
3.1.2.1 Sơ đồ use case
- Use case mức tổng quát:
Trang 20Hình 3-1: Biểu đồ use case mức tổng quát
19
− Use case Đăng nhập
+ Mục đích: Đảm bảo xác thực thông tin người dùng và an toàn bảo mật hệ thống
+ Tác nhân: User
+ Mô tả: User đăng nhập để thực hiện những chức năng như Quản lý chi tiêunhóm, chỉnh sửa thông tin cá nhân,