Báo cáo Đồ án 1: Xây dựng ứng dụng quản lý chi tiêu cá nhân trên di động

Tài liệu đồ án xây dựng app quản lý chi tiêu cá nhân bằng Flutter & Dart. Gồm báo cáo, phân tích yêu cầu, thiết kế hệ thống và CSDL SQLite.

2024

98
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tổng quan về Đồ án Xây dựng App Quản lý Chi tiêu Cá nhân bằng Flutter

Đồ án xây dựng ứng dụng quản lý chi tiêu cá nhân bằng Flutter là một dự án học thuật nhằm phát triển một giải pháp công nghệ cho nhu cầu quản lý tài chính của người dùng hiện đại. Flutter là framework phát triển ứng dụng di động được phát triển bởi Google, cho phép xây dựng các ứng dụng chất lượng cao trên nhiều nền tảng như iOS và Android từ một codebase duy nhất. Dự án này được thực hiện tại Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. HCM, dưới sự hướng dẫn của TS. Đỗ Thị Thanh Tuyền. Ứng dụng được thiết kế để cung cấp các tính năng quản lý giao dịch tài chính, theo dõi chi tiêu, lập ngân sách và phân tích báo cáo thu chi một cách trực quan và dễ sử dụng.

1.1. Lý do chọn đề tài và nhu cầu thực tiễn

Nhu cầu quản lý chi tiêu cá nhân ngày càng trở nên quan trọng trong xã hội hiện đại. Các ứng dụng di động cung cấp giải pháp tiện lợi cho người dùng trong việc theo dõi và kiểm soát chi tiêu hàng ngày. Xu hướng áp dụng công nghệ vào quản lý tài chính cá nhân đang phát triển mạnh mẽ trên toàn thế giới, giúp người dùng hiểu rõ hơn về thói quen chi tiêu và tối ưu hóa ngân sách của mình.

1.2. Công nghệ và công cụ phát triển

Dự án sử dụng ngôn ngữ Dart kết hợp với framework Flutter để xây dựng giao diện người dùng. SQLite được chọn làm cơ sở dữ liệu cục bộ để lưu trữ các thông tin giao dịch. BLoC Pattern (Business Logic Component) được áp dụng để quản lý trạng thái ứng dụng một cách hiệu quả và dễ bảo trì.

II. Phân tích và Thiết kế Hệ thống Quản lý Chi tiêu

Giai đoạn phân tích và thiết kế hệ thống là nền tảng quan trọng cho sự thành công của dự án. Dự án xác định các yêu cầu chính bao gồm yêu cầu nghiệp vụ, yêu cầu hệ thống và yêu cầu chất lượng. Sơ đồ Use-Case tổng quát được xây dựng để mô tả các tương tác chính giữa người dùng và hệ thống. Danh sách các Use-Case chi tiết bao gồm: thêm, sửa, xóa giao dịch; quản lý ví; quản lý loại giao dịch; tạo khoản tiết kiệm; lập ngân sách; xem báo cáo thu chi. Thiết kế cơ sở dữ liệu được thực hiện để tối ưu hóa hiệu suất và dễ dàng quản lý dữ liệu giao dịch.

2.1. Yêu cầu chức năng chính

Hệ thống cần hỗ trợ quản lý giao dịch (thêm, sửa, xóa), quản lý ví (tạo nhiều ví khác nhau), phân loại giao dịch (chi tiêu, thu nhập), tạo ngân sáchlập báo cáo thu chi. Ngoài ra, ứng dụng cần cung cấp tính năng lời nhắc cho người dùng, quản lý tiền tệ khác nhau và tính năng tiết kiệm để giúp người dùng đạt mục tiêu tài chính.

2.2. Sơ đồ Activity và Thiết kế Cơ sở Dữ liệu

Sơ đồ Activity được sử dụng để mô tả luồng hoạt động của các chức năng chính như thêm giao dịch, sửa giao dịch, xóa giao dịch và xem báo cáo. Thiết kế cơ sở dữ liệu SQLite bao gồm các bảng đối tượng chính: Giao dịch, Ví, Loại Giao dịch, Ngân sách, Khoản Tiết kiệm, Lời nhắc và Tiền tệ, mỗi bảng được thiết kế với các trường dữ liệu phù hợp.

III. Xây dựng và Triển khai Ứng dụng Flutter

Quá trình xây dựng ứng dụng bao gồm việc phát triển các giao diện màn hình chính như: màn hình quản lý giao dịch, màn hình thêm giao dịch, màn hình thống kê tổng quát, màn hình thống kê giao dịch chi, màn hình ngân sách, và các màn hình chức năng khác. Mỗi màn hình được thiết kế theo nguyên tắc UX/UI tốt, dễ sử dụng và hấp dẫn. Widget Flutter được tận dụng tối ưu để tạo ra giao diện đáp ứng và mượt mà. BLoC Pattern được áp dụng để tách biệt logic nghiệp vụ khỏi giao diện, giúp mã dễ kiểm tra, bảo trì và mở rộng. Dữ liệu được lưu trữ trên SQLite cục bộ, đảm bảo an toàn và hiệu suất.

3.1. Giao diện Quản lý Giao dịch và Thống kê

Màn hình quản lý giao dịch cung cấp danh sách các giao dịch đã ghi nhận với các thông tin như ngày tháng, số tiền, loại giao dịch. Màn hình thêm giao dịch cho phép người dùng nhập dữ liệu mới một cách dễ dàng. Màn hình thống kê tổng quát hiển thị tổng thu nhập, tổng chi tiêu và số dư hiện tại. Màn hình chi tiết cho phép xem phân tích từng loại giao dịch chi tiêu cụ thể.

3.2. Các tính năng nâng cao và Quản lý Ngân sách

Màn hình ngân sách cho phép người dùng lập kế hoạch chi tiêu cho từng loại giao dịch. Quản lý ví hỗ trợ tạo nhiều ví khác nhau như ví tiền mặt, tài khoản ngân hàng. Quản lý khoản tiết kiệm giúp người dùng theo dõi mục tiêu tài chính. Quản lý loại giao dịchquản lý tiền tệ cung cấp tính linh hoạt cao.

IV. Kết quả đạt được và Hướng phát triển trong Tương lai

Dự án xây dựng ứng dụng quản lý chi tiêu bằng Flutter đã hoàn thành thành công với đầy đủ các chức năng yêu cầu. Ứng dụng cung cấp giao diện thân thiện, hiệu suất cao và tính ổn định tốt. Kết quả đạt được bao gồm: ứng dụng hoạt động ổn định trên các thiết bị iOS và Android, các chức năng quản lý giao dịch, ví, ngân sách hoạt động chính xác, giao diện đẹp mắt và dễ sử dụng. Tuy nhiên, do hạn chế về thời gian, dự án vẫn có những khía cạnh có thể cải thiện. Hướng phát triển trong tương lai bao gồm: thêm tính năng đồng bộ dữ liệu lên cloud, tích hợp thanh toán điện tử, thêm các mô hình dự báo chi tiêu bằng AI/ML, cải thiện giao diện người dùng, tối ưu hiệu suất, hỗ trợ multiple languages và dark mode.

4.1. Kết quả đạt được và Đánh giá Dự án

Ứng dụng quản lý chi tiêu đã được phát triển hoàn chỉnh với đầy đủ tính năng chính. Các chức năng cốt lõi hoạt động ổn định, dữ liệu được lưu trữ an toàn trong SQLite. Giao diện ứng dụng tuân theo nguyên tắc thiết kế Material Design, mang lại trải nghiệm người dùng tốt. BLoC Pattern được áp dụng hiệu quả, giúp mã nguồn dễ kiểm tra và bảo trì.

4.2. Hướng phát triển tương lai

Để nâng cao chất lượng ứng dụng, các hướng phát triển tiếp theo bao gồm: đồng bộ dữ liệu cloud để backup an toàn, tích hợp API ngân hàng cho nhập dữ liệu tự động, phân tích dự báo chi tiêu bằng machine learning, tối ưu hiệu suất, hỗ trợ multiple currencies nâng cao, thêm tính năng chia sẻ báo cáo, và hỗ trợ offline hoàn chỉnh.

28/12/2025

Trích đoạn nội dung tài liệu

Chương 1 giới thiệu tổng quan về đề tài, trình bày lý do lựa chọn và tầm quan trọng của việc nghiên cứu, cùng với khảo sát hiện trạng để làm rõ nhu cầu thực tế. Đồng thời, chương này cũng cung cấp thông tin tổng quát về các công nghệ, công cụ và môi trường phát triển được sử dụng trong quá trình thực hiện đồ án cũng như đường dẫn đến source code của dự án. Lý do chọn đề tài Trong bối cảnh nền kinh tế toàn cầu hóa, xu hướng tiêu dùng cá nhân trở nên đa dạng và phức tạp hơn bao giờ hết. Con người thường xuyên phải đối mặt với việc quản lý rất nhiều khoản chi tiêu, thu nhập, nợ nần, tiết kiệm và đầu tư.

Việc theo dõi chính xác, khoa học các khoản chi tiêu hằng ngày gặp nhiều khó khăn nếu không có sự hỗ trợ của công nghệ. Mặt khác, sự phổ biến của điện thoại thông minh cùng các công nghệ phát triển ứng dụng di động như Flutter, SQLite, BLoC và tích hợp OCR thông qua Mindee giúp việc xây dựng ứng dụng quản lý tài chính cá nhân trở nên khả thi, tiện lợi và hiệu quả. Đề tài “Xây dựng ứng dụng quản lý chi tiêu cá nhân trên thiết bị di động” được lựa chọn nhằm giải quyết nhu cầu cấp thiết trong việc quản lý thu chi một cách rõ ràng, minh bạch, hỗ trợ người dùng đưa ra các quyết định tài chính hợp lý hơn. Ứng dụng không chỉ giúp người dùng dễ dàng lưu trữ, theo dõi giao dịch chi tiêu mà còn phân tích dữ liệu, gợi ý xu hướng, từ đó nâng cao khả năng kiểm soát và hoạch định tài chính cá nhân.

Đồng thời, việc nghiên cứu và áp dụng những công nghệ hiện đại vào ứng dụng còn góp phần mở rộng kiến thức, nâng cao kỹ năng phát triển phần mềm, đáp ứng yêu cầu ngày càng cao của thị trường công nghệ. Khảo sát hiện trạng 1. Nhu cầu quản lý chi tiêu cá nhân trên thiết bị di động Trong bối cảnh cuộc sống hiện đại, việc quản lý chi tiêu cá nhân trở thành một nhu cầu cấp thiết. Người dùng mong muốn có thể theo dõi, ghi chép, thống kê và phân tích các khoản thu - chi một cách dễ dàng và tiện lợi.

Với sự phổ biến của điện thoại thông minh, nhu cầu quản lý chi tiêu mọi lúc, mọi nơi càng trở nên rõ ràng. Tuy nhiên, các phương pháp truyền thống như ghi chép trên giấy hoặc nhập liệu vào bảng tính gặp nhiều hạn chế trong việc tổng hợp, phân tích dữ liệu cũng như cung cấp các góc nhìn trực quan, rõ ràng. Xu hướng áp dụng công nghệ vào quản lý tài chính cá nhân Đáp ứng nhu cầu trên, xu hướng sử dụng ứng dụng di động để quản lý chi tiêu ngày càng phổ biến. Người dùng không chỉ dừng lại ở việc lưu trữ thông tin, mà còn mong muốn có thêm khả năng phân tích, gợi ý, cũng như dự đoán xu hướng chi tiêu.

Các công nghệ mới như Flutter giúp phát triển ứng dụng đa nền tảng, SQLite hỗ trợ lưu trữ dữ liệu cục bộ (phục vụ offline), và BLoC quản lý trạng thái ứng dụng ổn định, hiệu quả. Nhờ đó, các giải pháp quản lý chi tiêu ngày nay có thể linh hoạt, thông minh và dễ sử dụng hơn, mang lại trải nghiệm tối ưu cho người dùng. Công nghệ sử dụng Dự án sử dụng các công nghệ và ngôn ngữ lập trình hiện đại nhằm tối ưu hiệu năng, tính ổn định và khả năng mở rộng. Dart Dart là ngôn ngữ lập trình do Google phát triển, được sử dụng chủ yếu trong các dự án Flutter.

Dart có cú pháp hiện đại, hỗ trợ lập trình hướng đối tượng, mạnh mẽ trong việc phát triển ứng dụng đa nền tảng, đáp ứng tốt về hiệu năng và khả năng bảo trì. Flutter Flutter là bộ công cụ UI do Google phát triển, cho phép xây dựng ứng dụng đa nền tảng (Android, iOS) từ một codebase duy nhất. Flutter sử dụng widget để tạo ra giao diện linh hoạt, hiệu năng cao, giảm thời gian và công sức trong quá trình phát triển. SQLite SQLite là hệ quản trị cơ sở dữ liệu quan hệ dạng nhúng, nhẹ, không cần máy chủ, phù hợp cho ứng dụng di động.

Việc sử dụng SQLite giúp ứng dụng lưu trữ và truy xuất dữ liệu cục bộ, hoạt động ổn định ngay cả khi không có kết nối Internet. BLoC (Business Logic Component) BLoC là một mẫu kiến trúc (architecture pattern) tách biệt logic xử lý dữ liệu khỏi giao diện, giúp code dễ bảo trì, kiểm thử và tái sử dụng. Nhờ BLoC, ứng dụng quản lý chi tiêu có thể quản lý trạng thái một cách rõ ràng, dễ dàng mở rộng chức năng trong tương lai. Môi trường phát triển Môi trường phát triển chủ yếu sử dụng Android Studio để viết, biên dịch và gỡ lỗi mã nguồn.

Android Studio cung cấp công cụ giả lập, quản lý gói, tích hợp sẵn Dart và Flutter SDK, giúp quá trình phát triển ứng dụng trở nên thuận tiện và hiệu quả. Công cụ hỗ trợ Dự án sử dụng GitHub để quản lý mã nguồn, lưu trữ phiên bản và hỗ trợ cộng tác nhóm. Nhờ GitHub, việc theo dõi lịch sử, phân nhánh, gộp mã và giải quyết xung đột trở nên dễ dàng, đảm bảo tính minh bạch và khả năng mở rộng của dự án trong tương lai 1. Đường dẫn đến mã nguồn Đường dẫn mã nguồn tham khảo: github 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Chương 2 tập trung vào việc cung cấp nền tảng lý thuyết, bao gồm các khái niệm và nguyên tắc liên quan đến các công nghệ được sử dụng trong đồ án.

Nội dung sẽ đi sâu vào đặc điểm cũng như cơ chế hoạt động. Ngôn ngữ Dart Hình 2. Giới thiệu tổng quan về Dart Dart là ngôn ngữ lập trình do Google phát triển, thường được sử dụng trong môi trường Flutter để xây dựng ứng dụng đa nền tảng. Dart hỗ trợ cú pháp hiện đại, linh hoạt, hướng đối tượng, giúp việc phát triển ứng dụng trở nên nhanh chóng và dễ dàng hơn.

Nhờ khả năng tương thích tốt với nhiều nền tảng, Dart giảm thiểu thời gian và công sức của lập trình viên trong việc triển khai ứng dụng lên các hệ điều hành khác nhau. Cấu trúc và đặc điểm của ngôn ngữ Dart Dart hỗ trợ kiểu tường minh và suy luận kiểu, giúp mã nguồn ngắn gọn và dễ đọc. Ngôn ngữ này còn cung cấp các tính năng như lập trình hàm, lập trình hướng đối tượng, xử lý bất đồng bộ (async/await), cùng với hệ thống quản lý gói linh hoạt. Tất cả những đặc điểm này giúp tối ưu hóa quy trình phát triển, tăng khả năng tái sử dụng mã và duy trì chất lượng, hiệu suất của ứng dụng.

Cấu trúc và nguyên lý hoạt động của Flutter Flutter là bộ công cụ UI (User Interface) do Google phát triển, cho phép tạo ra ứng dụng cho Android và iOS từ một codebase duy nhất. Thay vì sử dụng các thành phần giao diện gốc, Flutter vẽ toàn bộ giao diện lên một “canvas” riêng, giúp kiểm soát chặt chẽ quá trình hiển thị và mang lại hiệu năng cao. Kiến trúc Flutter gồm ba thành phần chính: ● Framework: Cung cấp các widget, thư viện chuẩn, công cụ để xây dựng và tùy biến giao diện. ● Engine: Viết bằng C++, xử lý đồ họa, văn bản, hình ảnh, cùng các luồng dữ liệu.

● Embedder: Kết nối ứng dụng Flutter với nền tảng gốc, quản lý vòng đời ứng dụng, sự kiện và tài nguyên hệ thống. Widget và State trong Flutter Toàn bộ giao diện của Flutter được xây dựng từ các widget – đơn vị cơ bản tạo thành thành phần UI. Có hai loại widget chính: ● StatelessWidget: Giao diện cố định, không thay đổi theo thời gian. ● StatefulWidget: Giao diện có thể thay đổi dựa trên trạng thái dữ liệu bên trong.

State là đối tượng lưu trữ dữ liệu động. Khi State thay đổi, Flutter sẽ tự động "rebuild" widget để cập nhật giao diện, đảm bảo ứng dụng luôn phản ánh chính xác tình trạng hiện tại của dữ liệu. BLoC Pattern Hình 2. Giới thiệu về BLoC Pattern BLoC (Business Logic Component) là một mẫu kiến trúc dành cho Flutter, tách biệt phần xử lý nghiệp vụ ra khỏi tầng giao diện.

Thay vì để UI trực tiếp xử lý logic, BLoC cho phép đặt toàn bộ logic vào một lớp riêng, tương tác thông qua các sự kiện (Event) và trạng thái (State). Cách tiếp cận này giúp giảm phức tạp, tăng khả năng tái sử dụng và kiểm thử, đồng thời giữ cho mã nguồn sạch sẽ, dễ bảo trì. Cách thức hoạt động, ưu điểm và ví dụ sử dụng BLoC BLoC vận hành dựa trên cơ chế: ● Event: Các tác động từ người dùng (nhấn nút, cuộn trang) hoặc hệ thống (dữ liệu mới từ cơ sở dữ liệu). ● State: Trạng thái ứng dụng được tính toán sau khi BLoC xử lý event tương ứng.

Khi một Event được đưa vào BLoC, logic xử lý sẽ tính toán và sinh ra một State mới. UI chỉ việc “lắng nghe” State, mỗi khi State thay đổi, UI cập nhật tương ứng. Việc này tạo nên vòng lặp Event -> BLoC -> State -> UI khép kín, dễ kiểm soát. Ưu điểm của BLoC bao gồm: ● Tách biệt hoàn toàn giao diện và logic, dễ dàng thay đổi hoặc mở rộng chức năng mà không ảnh hưởng đến phần còn lại.

8 ● Kiểm thử độc lập logic mà không cần chạy toàn bộ ứng dụng, nhờ đó giảm thời gian và công sức trong giai đoạn kiểm thử. ● Mã nguồn rõ ràng, phân lớp tách bạch, nâng cao tính linh hoạt và khả năng bảo trì về lâu dài. Giới thiệu về SQLite SQLite là một hệ quản trị cơ sở dữ liệu quan hệ nhẹ, hoạt động cục bộ trên thiết bị mà không cần máy chủ riêng biệt. Điều này đặc biệt phù hợp cho ứng dụng di động, nơi yêu cầu truy cập dữ liệu nhanh chóng, ổn định mà không phụ thuộc vào kết nối mạng.

SQLite lưu dữ liệu trong một tệp, hỗ trợ câu lệnh SQL quen thuộc, giúp việc tương tác, truy vấn trở nên đơn giản. Cấu trúc cơ sở dữ liệu, ưu và nhược điểm Dữ liệu trong SQLite được tổ chức dưới dạng bảng, cột, dòng và khóa, tương tự như các hệ quản trị cơ sở dữ liệu quan hệ khác. Ưu điểm của SQLite là nhỏ gọn, dễ tích hợp, hiệu suất truy vấn tốt, không cần cài đặt hay cấu hình máy chủ. Tuy nhiên, SQLite không phù hợp cho các ứng dụng phân tán lớn, số lượng người dùng đồng thời cao, hay yêu cầu khả năng mở rộng mạnh mẽ.

Trong bối cảnh ứng dụng quản lý chi tiêu cá nhân, SQLite cung cấp giải pháp hợp lý, hiệu quả, đáp ứng tốt nhu cầu lưu trữ và truy xuất dữ liệu cục bộ.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ