[Mã code 64136]

Ứng dụng quản lý chi tiêu cá nhân trên nền tảng Flutter + Firebase

  (1 Đánh giá)
  0       17    

Hỗ trợ theo dõi chi tiêu, quản lý ngân sách theo danh mục, thống kê báo cáo trực quan, chuyển số dư tháng trước, thông báo thông minh, upload ảnh hóa đơn.

Danh mục
Thể loại
Ngày đăng
02-11-2025
Loại file
Full code
File download
 expense_management.zip [ MB]
CAM KẾT TỪ NGƯỜI BÁN
Chức năng đầy đủ, hỗ trợ clone run app nếu cần

(Hạng vàng)
Xem trang

Source code
1

Đánh giá (2)
5/5

Ngày tham gia
23/11/2023

1. Authentication (Xác thực người dùng)
Đăng ký/Đăng nhập với Email & Password
Quên mật khẩu (Email reset)
Quản lý profile cá nhân
Multi-user support (mỗi user dữ liệu riêng biệt)
2. Quản lý Chi tiêu
Thêm/Sửa/Xóa chi tiêu với validation đầy đủ
Phân loại theo danh mục tùy chỉnh
Upload nhiều ảnh hóa đơn (Cloudinary)
Tìm kiếm và lọc chi tiêu theo nhiều tiêu chí
 Lịch sử chi tiêu real-time với Firestore stream
Quick add menu với categories phổ biến
 
3. Quản lý Ngân sách
Tạo ngân sách theo danh mục và theo tháng
Theo dõi chi tiêu vs ngân sách real-time
Cảnh báo khi sắp hết hoặc vượt ngân sách
Chuyển số dư tháng trước tự động sang tháng mới
Thu nhập bổ sung
Tích hợp số dư tháng trước vào tổng ngân sách hiển thị
 
4. Dashboard & Thống kê
Dashboard tổng quan với Quick Actions
Biểu đồ chi tiêu theo tháng/năm (fl_chart)
Thống kê chi tiêu theo danh mục
So sánh chi tiêu các tháng
Smart Insights tự động
Báo cáo xuất dữ liệu
 
5. Thông báo Thông minh
Chào buổi sáng hàng ngày lúc 7:00 AM
Nhắc nhở ghi chi tiêu tối 8:00 PM
Cảnh báo ngân sách khi chi tiêu vượt ngưỡng
Tóm tắt tuần tự động Chủ nhật
Background tasks với WorkManager
Cá nhân hóa thông báo dựa trên hành vi người dùng
 
 

 


XEM THÊM ==> Hướng dẫn cài đặt chi tiết

HÌNH ẢNH DEMO


quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân

quản lý chi tiêu cá nhân,Ứng dụng quản lý chi tiêu,ứng dụng quản lý chi tiết cá nhân


HƯỚNG DẪN CÀI ĐẶT

Clone source về chạy flutter pub get
thay đổi cấu hình firebase và cloudinary (nếu cần cá nhân hoá)
Firebase thay đổi google-services.json đặt vào android/app, GoogleService-Info.plist đăt vào ios/Runner

Cấu hinh rule của Firestore

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
    match /expenses/{expenseId} {
      allow read, write: if request.auth != null && 
        resource.data.userId == request.auth.uid;
      allow create: if request.auth != null && 
        request.auth.uid == request.resource.data.userId;
    }
    match /budgets/{budgetId} {
      allow read, write: if request.auth != null && 
        resource.data.userId == request.auth.uid;
      allow create: if request.auth != null && 
        request.auth.uid == request.resource.data.userId;
    }
    match /categories/{categoryId} {
      allow read, write: if request.auth != null && 
        resource.data.userId == request.auth.uid;
      allow create: if request.auth != null && 
        request.auth.uid == request.resource.data.userId;
    }
    match /notification_settings/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}
Cloudinary (nơi lưu trữ ảnh) thay đổi các thông tin trong lib/core/services/cloudinary_service.dart
static const String _cloudName = 'YOUR_CLOUD_NAME';  // ← Thay bằng Cloud Name của bạn
  static const String _uploadPreset = 'YOUR_PRESET_NAME';  // ← Thay bằng Preset name của bạn

 




Nguồn: Topcode.vn

BÌNH LUẬN (0)


ĐÁNH GIÁ (1)

ĐIỂM TRUNG BÌNH

5
1 Đánh giá
Code rất tốt (1)
Code tốt (0)
Code rất hay (0)
Code hay (0)
Bình thường (0)
Thành viên
Nội dung đánh giá
15:55 - 2/11/2025
Code rất tốt
Code rất tốt và phù hợp để phát triển
HỖ TRỢ TRỰC TUYẾN