1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

68 881 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Quản Lý Chi Tiêu Cá Nhân
Tác giả Phạm Quốc Trung, Đỗ Ngọc Quý
Người hướng dẫn ThS. Thái Thụy Hàn Uyển
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ phần mềm
Thể loại báo cáo đồ án
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 68
Dung lượng 2,76 MB

Cấu trú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)

Nội dung

GIỚI THIỆU VỀ CÔNG NGHỆ SỬ DỤNG

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 được phát triển bởi Google và được Ecma phê chuẩn theo tiêu chuẩn ECMA-408 Ngôn ngữ này được sử dụng để xây dựng ứng dụng web, server, máy tính để bàn và thiết bị di động Dart có cấu trúc hướng đối tượng, hỗ trợ nhiều tính năng như interface, mixin, abstract, generic, static typing và sound type, giúp đảm bảo tính an toàn cho kiểu dữ liệu Là ngôn ngữ mã nguồn mở và miễn phí, Dart được phát triển trên nền tảng GitHub, sử dụng cú pháp kiểu C để chuyển đổi mã sang JavaScript.

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:

Dart mang lại năng suất cao với cú pháp rõ ràng và súc tích, cùng với công cụ đơn giản nhưng mạnh mẽ Việc sử dụng type-safe giúp phát hiện sớm các lỗi tinh tế, trong khi hệ sinh thái phong phú với hàng ngàn package và các thư viện cốt lõi hỗ trợ phát triển ứng dụng hiệu quả.

Dart tối ưu hóa quá trình biên dịch trước thời hạn, giúp đạt được hiệu suất cao và thời gian khởi động nhanh chóng trên cả thiết bị di động và web.

Dart là một ngôn ngữ lập trình mạnh mẽ, cho phép biên dịch thành mã ARM và x86, giúp các ứng dụng di động hoạt động mượt mà trên cả iOS và Android Đối với các ứng dụng web, Dart có khả năng chuyển đổi mã sang JavaScript, mở rộng khả năng phát triển và triển khai trên nhiều nền tảng khác nhau.

Dart là ngôn ngữ lập trình dễ gần, quen thuộc với nhiều nhà phát triển nhờ vào cú pháp rõ ràng và định hướng đối tượng dễ hiểu Nếu bạn đã có kinh nghiệm với C++, việc tiếp cận Dart sẽ trở nên dễ dàng hơn.

C # hoặc Java, bạn có thể làm việc hiệu quả với Dart chỉ sau vài ngày

Dart là ngôn ngữ lập trình lý tưởng cho lập trình Reactive, nhờ vào khả năng quản lý hiệu quả các đối tượng tạm thời như widget UI thông qua phân bổ đối tượng nhanh và thu gom rác (GC) Bên cạnh đó, Dart cũng hỗ trợ lập trình không đồng bộ với các tính năng ngôn ngữ và API, sử dụng các đối tượng Future và Stream để xử lý dữ liệu một cách linh hoạt.

Giới thiệu về Flutter

Flutter là framework UI di động do Google phát triển, cho phép tạo ra giao diện chất lượng cao trên cả iOS và Android một cách nhanh chóng Framework này hỗ trợ các lập trình viên và tổ chức sử dụng mã nguồn có sẵn để tối ưu hóa quy trình phát triển ứng dụng.

- Flutter hoàn toàn miễn phí và cũng là mã nguồn mở

Flutter được viết chia làm hai tầng:

Tầng trên của ứng dụng Flutter sử dụng ngôn ngữ Dart, cung cấp các đoạn mã cho phép lập trình viên xây dựng và tùy chỉnh ứng dụng theo mong muốn Những đoạn mã này có thể được thay đổi và chỉnh sửa, giúp ứng dụng linh hoạt hơn Tầng Framework này cho phép lập trình viên điều chỉnh mã nguồn ứng dụng ngay tại thời điểm biên dịch.

- 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++ là tầng Shell chứa các công cụ hỗ trợ ứng dụng Flutter trong quá trình thực thi Tầng này cũng bao gồm máy ảo Dart VM, một ứng dụng chạy song song với mã nguồn chính của ứng dụng Máy ảo Dart VM có ba nhiệm vụ chính.

+ 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 ngoà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

Thực thi mã đã được thông dịch hoặc biên dịch và cung cấp hệ thống runtime, bao gồm garbage collector cùng với các thư viện cần thiết 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

Tính năng Hot Reload cho phép phát triển nhanh chóng với thời gian phản hồi chỉ trong vài mili giây, giúp hiển thị giao diện ngay lập tức Bạn có thể sử dụng bộ widget tùy chỉnh để xây dựng giao diện chỉ trong vài phút Ngoài ra, Hot Reload còn hỗ trợ việc thêm tính năng và sửa lỗi một cách tiết kiệm thời gian mà không cần phải sử dụng máy ảo hay thiết bị Android hoặc iOS.

Flutter offers a highly expressive and flexible user interface, featuring a wide array of components that enable the creation of visually stunning designs in both Material Design and Cupertino styles It supports various motion APIs and smooth scrolling, enhancing the overall user experience.

Flutter widgets leverage platform-specific differences in scrolling, navigation, icons, and fonts to deliver optimal performance on both iOS and Android.

React Native, một đối thủ cạnh tranh của Flutter, là framework được phát triển bởi Facebook Giống như Flutter, React Native cho phép lập trình viên sử dụng JavaScript để xây dựng ứng dụng di động đa nền tảng cho cả Android và iOS.

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

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 Developer có thể thực hiện mọi thứ trên cùng một màn hình, trong đó đặc biệt không cần phải chuyển từ code sang

Sử dụng React Native yêu cầu thêm JSX hoặc XML để xây dựng giao diện, cũng như các công cụ đặc biệt để tạo layout, điều này có thể làm tăng thời gian phát triển Ngược lại, Flutter mang lại trải nghiệm tiết kiệm thời gian hơn trong việc thiết kế giao diện.

Cài đặt môi trường phát triển

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 quá 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 hỗ trợ

Có nhiều các third-party packages đang được sử dụng và đang ngày càng được phát triển, và chúng thực sự rất hữu dụng

Kể từ khi React Native trở nên phổ biến, nhiều gói thư viện bên thứ ba đã được phát triển và áp dụng rộng rãi trong các ứng dụng Sự phổ biến này đã dẫn đến một số lượng lớn người dùng sử dụng các gói này.

Flutter đang ngày càng gia tăng Đặc biệt nhờ sự hậu thuẫn tích cực từ phía Google

React Native có lượng developer sử dụng đang nhiều hơn bởi vì lượng developer sử dụng JavaScript rất dễ dàng để sử dụng với các thư viện của React

Cách viết tài liệu của Google đơn giản, dễ hiểu nên việc tài liệu hóa cho Flutter cơ bản là hiệu quả

Việc tìm kiếm tài liệu có thể gặp khó khăn do phụ thuộc vào các công cụ phát triển bên ngoài, yêu cầu người dùng phải tìm kiếm tài liệu cho từng bộ riêng lẻ Mặc dù Facebook đã nỗ lực xây dựng một kho tài liệu trực quan, nhưng người dùng vẫn cần cải thiện khả năng tìm kiếm của mình.

Bảng 2.3.1 So sánh giữa Flutter và React Native

Firebase Authentication

Firebase Authentication cung cấp chức năng xác thực người dùng qua Password, số điện thoại, hoặc tài khoản của các dịch vụ như Google, Facebook và Twitter Ngoài ra, nó còn hỗ trợ xác thực nặc danh cho các ứng dụng, giúp bảo vệ thông tin cá nhân của người dùng.

Xác thực người dùng đóng vai trò quan trọng trong phát triển ứng dụng, nhưng việc hỗ trợ nhiều phương pháp xác thực khác nhau có thể tiêu tốn thời gian và công sức đáng kể.

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

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 and Cloud Firestore enable fast data synchronization between client applications in real-time while also supporting offline data storage for your app.

Cloud Firestore là một cơ sở dữ liệu NoSQL được lưu trữ trên đám mây, cho phép các ứng dụng phía client truy cập trực tiếp thông qua SDK gốc Dữ liệu được tổ chức theo mô hình NoSQL, với thông tin được lưu trong các tài liệu chứa các trường ánh xạ vào giá trị Những tài liệu này được nhóm lại trong các tập hợp, giúp tổ chức và truy vấn dữ liệu hiệu quả Cloud Firestore hỗ trợ nhiều kiểu dữ liệu khác nhau, từ những kiểu đơn giản như String và Integer đến các kiểu phức tạp hơn.

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 hoàn toàn tự động giúp bạn yên tâm mà không cần lo lắng về việc dữ liệu của mình được lưu trữ theo nhiều phiên bản khác nhau.

Bảo mật là yếu tố quan trọng với SDK di động, web và server, cung cấp giải pháp bảo mật đơn giản nhưng mạnh mẽ SDK trên thiết bị di động và web áp dụng các quy tắc bảo mật của Cloud Firestore để đảm bảo an toàn cho dữ liệu.

XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ CHI TIÊU CÁ NHÂN

Các chức năng chính

- 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

Phân tích thiết kế

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

STT Actor Tên Use-case Ý nghĩa/Ghi chú

Người dùng Đă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.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

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

4.2 Thêm/Sửa/Xóa 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.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 Người dùng thay đổi thông tin cá nhân mình muốn

6.2 Đổi mật khẩu 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

2.3.1 Người dùng đăng nhập vào hệ thống

Tên Use-case Đăng nhập

Người dùng cần có tài khoản hợp lệ để đăng nhập vào phần mềm Sau khi đáp ứng điều kiện tiên quyết, người dùng sẽ thực hiện đăng nhập thành công để sử dụng các tính năng của phần mềm.

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ý

Người dùng cần đăng ký tài khoản mới để truy cập vào hệ thống mà không có điều kiện tiên quyết nào Để thực hiện việc này, người dùng chỉ cần nhấn vào nút “Sign Up” và đảm bảo rằng họ có tài khoản hợp lệ để đăng nhập sau đó.

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

Khi người dùng quên mật khẩu, họ có thể yêu cầu hệ thống cung cấp mật khẩu mới để đăng nhập, với điều kiện là họ phải có một tài khoản hợp lệ.

Người dùng cần sử dụng Email hoặc SĐT đã đăng ký trước đó để nhận mã kích hoạt khi quên mật khẩu Sau khi nhận mã, người dùng có thể thay đổi mật khẩu mới thành công Để bắt đầu quá trình, người dùng chỉ cần chọn “Quên Mật Khẩu”.

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

Khi người dùng nhận thấy mật khẩu cũ không còn an toàn, họ có thể thay đổi sang mật khẩu mới để nâng cao bảo mật tài khoản Điều kiện tiên quyết là người dùng phải có tài khoản hợp lệ.

Người dùng cần nhớ mật khẩu hiện tại để thực hiện việc thay đổi mật khẩu Sau khi người dùng chọn “Change Password”, nếu quá trình diễn ra thành công, mật khẩu mới sẽ được cập nhật.

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

Sau khi đăng nhập vào hệ thống, người dùng có thể dễ dàng thay đổi thông tin cá nhân của mình Điều kiện tiên quyết là người dùng phải đăng nhập thành công vào hệ thống Sau khi thực hiện, người dùng sẽ nhận được thông báo xác nhận rằng việc thay đổi thông tin cá nhân đã được thực hiện 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

Tại giao diện "Home", người dùng có thể dễ dàng xem danh sách 5 chi tiêu gần đây nhất của mình, với điều kiện tiên quyết là đã đăng nhập thành công vào hệ thống.

Dòng sự kiện chính 1 Người dùng nhấn nút “Home” ở phần Bottom

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

Người dùng có thể thêm chi tiêu mới, bao gồm tiền thu vào hoặc tiền đã chi, nhằm quản lý chi tiêu hiệu quả và xác định liệu họ cần hạn chế chi tiêu hay có thể tiếp tục bình thường Điều kiện tiên quyết là người dùng đã đăng nhập vào hệ thống, và sau khi thực hiện, họ sẽ thành công trong việc thêm chi tiêu mới.

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 yêu cầu: số tiền, loại , mô tả, ví

5 Người dùng bấm nút “Add” để hoàn tất

Nếu người dùng nhấn nút "Quay lại" trong quá trình thêm chi tiêu, hệ thống sẽ hủy bỏ tất cả thông tin đã nhập và đưa người dùng trở về trang trước đó.

Tên Use-case Sửa chi tiêu

Người dùng có thể sửa đổi thông tin chi tiêu như số tiền hoặc loại thu chi, nhưng trước tiên cần đảm bảo đã đăng nhập vào hệ thống Sau khi đăng nhập, người dùng sẽ có khả năng chỉnh sửa thông tin chi tiêu cũ Để thực hiện điều này, họ chỉ cần chọn mục “Transaction” ở phần dưới của giao diện.

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

Khi người dùng thực hiện việc sửa chi tiêu và nhấn nút “Quay lại”, hệ thống sẽ hủy bỏ tất cả thông tin đã nhập và trở về trang trước Ngoài ra, người dùng cũng có thể xóa chi tiêu nếu cần thiết.

Tên Use-case Xóa chi tiêu

Người dùng có thể xóa một khoản thu chi nếu cảm thấy nó không chính xác hoặc không còn cần thiết Để thực hiện việc này, người dùng cần đảm bảo đã đăng nhập vào hệ thống Sau khi đăng nhập, họ sẽ có khả năng xóa các khoản chi tiêu một cách dễ dàng.

Dòng sự kiện chính 1 Người dùng chọn “Transaction” ở phần Bottom

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” để hoàn tất

Nếu người dùng chọn nút “No” trong quá trình xóa chi tiêu, hệ thống sẽ hủy bỏ thao tác và trở về trang trước đó.

2.3.10 Người dùng lọc chi tiêu

Tên Use-case Lọc chi tiêu

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)

Giao diện ứng dụng

Mô tả cách sử dụng và xử lý trên màn hình:

Phần giới thiệu của ứng dụng sẽ bao gồm ba màn hình, giúp người dùng dễ dàng hình dung về các tính năng có trong ứng dụng Mỗi màn hình sẽ được chia thành ba phần để cung cấp thông tin chi tiết và hấp dẫn về các chức năng của ứng dụng.

- Phần trên cùng là các hình ảnh minh họa về quản lý chi tiêu, tạo ấn tượng với người dùng

- Phần thứ 2 là text nội dung giới thiệu các tính năng

- Phần thứ 3 các icon và button hỗ trợ người dùng:

❖ Dot Icon: giúp người dùng biết có bao nhiêu trang giới thiệu và hiện tại mình đang ở trang nào

❖ Sign Up: người dùng bỏ qua phần giới thiệu và chuyển đến trang đăng ký

❖ Login: người dùng bỏ qua phần giới thiệu và chuyển đến trang đăng nhập

3.2 Màn hình đăng nhập (Sign In)

Màn hình Đăng nhập của App sẽ gồm các phần:

- Phần Textbox “Email” để người dùng nhập email đã đăng ký trên hệ thống

- Phần Textbox “Password” để người dùng nhập mật khẩu đã đăng ký trên hệ thống

- Phần Button “Sign in” để thực hiện đăng nhập

- Phần Button “Sign in with Google” để thực hiện đăng nhập bằng Google

- Phần Text Link “Forgot Password” để chuyển sang trang hỗ trợ lấy mật khẩu

- Phần Text Link “Sign up” để chuyển sang trang đăng ký tài khoản trong trường hợp người dùng chưa có tài khoản

3.3 Màn hình đăng ký (Sign Up)

Màn hình Đăng ký của App sẽ gồm các phần:

- Phần Textbox “Email” để người dùng nhập email muốn đăng ký trên hệ thống

- Phần Textbox “Password” để người dùng nhập mật khẩu muốn đăng ký trên hệ thống

- Phần Textbox “Confirm Password” để người dùng nhập lại mật khẩu

- Phần Button “Sign up” để thực hiện đăng ký

- Phần Text Link “Sign in” để chuyển sang trang đăng nhập trong trường hợp người dùng đã có tài khoản

3.4 Màn hình Trang chủ (Home)

Màn hình Trang chủ bao gồm 3 thành phần chính:

- Phần 1 giới thiệu số dư còn lại trong tài khoản của khách hàng (Account Balance)

- Phần 2 là phần hiển thị thống kê chi tiêu của khách hàng trong tháng dưới dạng biểu đồ(Spend Frequency)

- Phần 3 là phần hiển thị danh sách chi tiêu gần đây của người dùng (hiển thị tối đa 5 chi tiêu)

- Phần 4 là Bottom Navigation gồm 5 Tab: Home, Transaction, Add

3.5 Màn hình Danh sách chi tiêu (Transaction)

Màn hình Danh sách chi tiêu bao gồm 3 thành phần chính:

- Phần 1: lọc danh sách: theo tháng năm/ mới nhất / cũ nhất /

- Phần 2: xem báo cáo chi tiêu trong tháng/năm

- Phần 3: danh sách chi tiêu

- Phần 4: Bottom Navigation gồm 5 Tab: Home, Transaction, Add Transaction, Budget và Profile

3.6 Màn hình Ngân sách (Budget)

Màn hình Ngân sách bao gồm 3 thành phần chính:

- Phần 1: lọc danh sách theo tháng

- Phần 2: danh sách ngân sách

- Phần 3: Bottom Navigation gồm 5 Tab: Home, Transaction, Add Transaction, Budget và Profile

3.7 Màn hình Quản lý tài khoản (Profile)

Màn hình Quản lý tài khoản bao gồm 3 thành phần chính:

- Phần 1: Thông tin người dùng

- Phần 2: Các chức năng phụ: Account/Settings/Export Data/Logout

- Phần 3: Bottom Navigation gồm 5 Tab: Home, Transaction, Add Transaction, Budget và Profile

3.8 Màn hình Quản lý ví tiền (Wallet)

Màn hình Quản lý tài khoản bao gồm 3 thành phần chính:

- Phần 1: Số dư tài khoản (Account Balance)

- Phần 2: Danh sách các ví tiền

- Phần 3: Button thêm ví tiền mới “Add new wallet”.

TỔNG KẾT

Đánh giá

Trên thị trường hiện nay có nhiều ứng dụng quản lý chi tiêu, điều này cung cấp cho nhóm nhiều ý tưởng quý giá để thiết kế giao diện và dữ liệu hiệu quả hơn.

Các tài liệu chi tiết về công cụ thực hiện đồ án có sẵn trên mạng, giúp người dùng dễ dàng tiếp cận thông tin Cộng đồng lớn hỗ trợ nhanh chóng trong việc giải quyết các vấn đề thường gặp khi sử dụng công nghệ liên quan đến đồ án.

- Mất nhiều thời gian để làm quen với ngôn ngữ, công cụ mới

- Sắp xếp thời gian làm việc của mỗi thành viên để tổ chức họp Trong quá trình làm có những sự bất đồng quan điểm.

Kết luận

Sau thời gian thực hiện đề tài, nhóm đã đạt được một số kết quả sau:

- Xây dựng thành công ứng dụng quản lý chi tiêu có các chức năng:

❖ Đăng nhập, đăng ký tài khoản

❖ Quản lý danh sách các chi tiêu

❖ Quản lý các ngân sách

❖ Quản lý các ví tiền

❖ Xem chi tiêu gần đây

- Sinh viên thực hiện đã nắm được cách thức làm một ứng dụng di động

Nhóm đã nghiên cứu và áp dụng các công nghệ mới như Flutter, Firebase và Figma thông qua đồ án, nhằm nâng cao kỹ năng phục vụ cho công việc tương lai Đồng thời, nhóm cũng củng cố vững chắc kiến thức về các sơ đồ use case, sơ đồ lớp, sơ đồ tuần tự và sơ đồ hoạt động.

- Nâng cao kỹ năng lập trình, làm việc nhóm và giải quyết vấn đề

- Giao diện đơn giản, tươi sáng, người dùng dễ dàng theo tác trên ứng dụng

- Tốc độ phản hồi các thao tác nhanh, tối ưu hóa năng suất của người dùng

- Có thể thống kê chi tiêu theo tháng/năm

- Cơ sở dữ liệu bị giới hạn dung lượng và số lần truy vấn do miễn phí → người dùng bị giới hạn dữ liệu

- Chưa xây dựng hệ thống hỗ trợ cho phía admin

- Chưa thể liên kết các ứng dụng thanh toán cho người dùng: tài khoản ngân hàng, ví momo,

- Chưa xuất được file excel gửi đến email người dùng.

Hướng phát triển

- Phát triển các tính năng như thống kê, lọc có thêm ngày/tuần

- Phát triển chức năng xuất file excel gửi đến email người dùng

- Liên kết các ứng dụng thanh toán để tiện lợi cho người dùng

- Hoàn thiện UI/UX các chức năng đã có: phát triển UI thêm animation,

- Tối ưu hóa code để dễ cập nhật và mở rộng tính năng

- Tổ chức dữ liệu hợp lý hơn để tăng tốc độ truy xuất.

Ngày đăng: 08/03/2022, 21:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w