Skip to content

chrisokoriedev/finance_app_repo

Repository files navigation

Nora - Personal Finance Management App

Based on my comprehensive exploration of your Flutter finance app, here's what I've learned about Nora:

🏗️ App Architecture & Technology Stack

Nora is a modern Flutter expense tracking app built with:

  • State Management: Riverpod with Hooks
  • Backend: Firebase (Firestore, Auth, Analytics, Remote Config)
  • Navigation: GoRouter
  • UI Framework: Material Design with custom theming
  • Charts: Syncfusion Flutter Charts
  • Authentication: Google Sign-In + Biometric authentication
  • Architecture: Clean architecture with domain/data separation

🎯 Core Features

1. Authentication System

  • Google Sign-In: Primary authentication method
  • Biometric Authentication: Optional biometric security
  • User Profile: Displays user name, email, and avatar
  • Account Management: Logout and account deletion capabilities

2. Expense Management

  • Three Transaction Types:
    • 💰 Income (Green)
    • 💸 Expenses (Red)
    • 📊 Debt (Blue)
  • Custom Categories: Users can create custom expense subcategories
  • Transaction Details: Title, amount, description, date, and category
  • CRUD Operations: Create, read, update, and delete transactions

3. Dashboard & Analytics

  • Financial Overview:
    • Total Balance calculation (Income - Expenses - Debt)
    • Individual totals for each transaction type
  • Recent History: Shows last 6 transactions
  • Visual Charts:
    • Circular charts for expense distribution
    • Time-based analytics with filtering
  • Statistics Page: Detailed breakdowns by time periods and transaction types

4. User Interface

  • 4-Tab Navigation:
    1. Home: Dashboard with financial overview
    2. Statistics: Charts and analytics
    3. Transactions: Complete transaction history
    4. Profile: User settings and account management
  • Floating Action Button: Quick access to create new transactions
  • Responsive Design: Adapts to different screen sizes
  • Dark/Light Theme: User preference support

📊 Data Model

The app uses a simple but effective data structure:

CreateExpenseModel {
  String name;           // Transaction title
  double amount;         // Transaction amount
  String expenseType;    // Income/Expense/Debt
  String explain;        // Description
  DateTime dateTime;     // Transaction date
  String expenseSubList; // Category/subcategory
}

🔧 Key Technical Components

State Management

  • Riverpod Providers: For data fetching and state management
  • Freezed: For immutable state classes
  • Real-time Updates: Automatic UI updates when data changes

Firebase Integration

  • Firestore: Cloud database for expense storage
  • Firebase Auth: User authentication
  • Remote Config: Dynamic app configuration
  • Analytics: User behavior tracking

UI Components

  • Custom Widgets: Reusable components like BuildExpenseDashBoardComponent
  • Responsive Design: Uses responsive_sizer for adaptive layouts
  • Loading States: Proper loading indicators and error handling
  • Form Validation: Input validation for expense creation

🎨 Design Features

  • Modern UI: Clean, minimalist design with card-based layouts
  • Color Coding:
    • Green for income
    • Red for expenses
    • Blue for debt
  • Visual Feedback: Haptic feedback, loading states, and success/error messages
  • Accessibility: Proper contrast and readable fonts

📱 User Experience

  1. Onboarding: Google Sign-In with optional biometric setup
  2. Main Flow: Dashboard → Create Expense → View Statistics → Manage Profile
  3. Quick Actions: Floating button for instant expense creation
  4. Data Persistence: All data synced to Firebase cloud
  5. Offline Support: Firestore caching for offline access

🔒 Security & Privacy

  • Firebase Security: User data isolated by authentication
  • Biometric Protection: Optional device-level security
  • Data Encryption: Firebase handles encryption at rest and in transit

🚀 App Strengths

  • Clean Architecture: Well-organized code structure
  • Modern Tech Stack: Uses latest Flutter best practices
  • Real-time Sync: Instant data updates across devices
  • User-Friendly: Intuitive interface with clear visual hierarchy
  • Extensible: Easy to add new features and transaction types

Ran tool Nora is a well-architected personal finance app that provides users with a comprehensive tool for tracking income, expenses, and debt. The app combines modern Flutter development practices with Firebase backend services to deliver a smooth, real-time expense management experience. The clean UI, robust state management, and thoughtful feature set make it a solid foundation for personal finance tracking.

Is there any specific aspect of the app you'd like me to explore further or any particular feature you'd like to understand in more detail?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published