Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

ExpenseFlow - AI-Powered Expense Tracker

A sophisticated iOS expense tracking application with AI-powered financial consulting, multi-currency support, and intelligent budget management.

Swift iOS License

📱 Overview

ExpenseFlow is a modern, feature-rich iOS application that helps users manage their finances effectively. Whether you're tracking daily expenses, setting budgets, or seeking financial advice, ExpenseFlow provides an intuitive interface powered by advanced technologies including Google Gemini AI for personalized financial consulting.

✨ Features

  • Expense Tracking: Easily log and categorize your expenses with detailed descriptions and timestamps
  • Budget Management: Set and monitor budgets across different categories with real-time progress tracking
  • Multi-Currency Support: Automatically convert and track expenses in multiple currencies with live exchange rates
  • AI Financial Consultant: Get personalized financial advice and insights powered by Google Gemini AI
  • Analytics Dashboard: Visual analytics to understand your spending patterns and trends
  • Smart Categories: Organize expenses with customizable categories for better organization
  • User Profile Management: Customize your preferences, currency, and account settings
  • Firebase Backend: Secure cloud storage with real-time synchronization across devices
  • Beautiful UI: Modern, intuitive interface built with SwiftUI

🛠️ Tech Stack

  • Frontend: SwiftUI
  • Backend: Firebase (Firestore, Authentication)
  • AI: Google Gemini API
  • Package Management: Swift Package Manager, CocoaPods
  • Language: Swift 5.9+
  • Minimum iOS Version: iOS 17.0+

📋 Project Structure

ExpenseFlow/
├── App/                    # Application entry point
├── Models/                 # Data models (Expense, Budget, Category, etc.)
├── ViewModels/             # MVVM ViewModel layer
├── Views/                  # SwiftUI views
│   ├── Auth/              # Authentication screens
│   ├── Budget/            # Budget management views
│   ├── Expenses/          # Expense tracking views
│   ├── Analytics/         # Analytics dashboard
│   ├── Categories/        # Category management
│   ├── Profile/           # User profile
│   ├── Main/              # Main tab views
│   └── Components/        # Reusable UI components
├── Services/               # Business logic and API services
│   ├── FirebaseService.swift      # Firebase integration
│   ├── GeminiService.swift        # AI consulting
│   └── ExchangeRateService.swift  # Currency conversion
├── Utilities/             # Helper functions and constants
├── Resources/             # App resources (assets, configurations)
└── Assets.xcassets/       # Image and color assets

🚀 Getting Started

Prerequisites

  • Xcode 15.0 or later
  • iOS 17.0 or later
  • CocoaPods (for Firebase dependencies)
  • Google Gemini API Key
  • Firebase Configuration

Installation

  1. Clone the repository

    git clone https://github.com/Moanesbbr/ExpenseFlow.git
    cd ExpenseFlow
  2. Install dependencies

    cd ExpenseFlow
    pod install
  3. Configure Firebase

    • Download your GoogleService-Info.plist from Firebase Console
    • Add it to the Resources folder in Xcode
    • Ensure it's added to the target
  4. Set up API Keys

    • Add your Google Gemini API key to the constants file
    • Update Firebase configuration if needed
  5. Open the project

    open ExpenseFlow.xcworkspace
  6. Build and Run

    • Select your target device
    • Press Cmd + R to run

📖 Usage

Tracking Expenses

  1. Navigate to the Expenses tab
  2. Tap the "+" button to add a new expense
  3. Enter the amount, select a category, and add a description
  4. Choose your preferred currency
  5. Save the expense

Setting Budgets

  1. Go to the Budget section
  2. Tap "Set Budget" for each category
  3. Define your spending limit
  4. Monitor your progress in the Budget Overview

Using AI Consultant

  1. Navigate to the AI Consultant tab
  2. View your expense summary
  3. Get personalized financial advice powered by Gemini AI
  4. Receive recommendations for better financial management

Viewing Analytics

  1. Check the Analytics tab
  2. See visual representations of your spending patterns
  3. Analyze spending by category and time period

🏗️ Architecture

ExpenseFlow follows the MVVM (Model-View-ViewModel) architecture pattern:

  • Models: Data structures representing app entities (Expense, Budget, Category, UserProfile, etc.)
  • Views: SwiftUI views for the user interface
  • ViewModels: Logic layer handling data binding, API calls, and business logic
  • Services: External service integration (Firebase, Gemini, Exchange Rates)

🔐 Authentication

The app uses Firebase Authentication to provide secure user management with support for:

  • Email/Password authentication
  • User account creation and sign-in
  • Session persistence

💰 Multi-Currency Support

  • Real-time exchange rate updates via ExchangeRateService
  • Track expenses in multiple currencies
  • Automatic currency conversion for analytics
  • User's preferred currency preference management

🤖 AI Integration

ExpenseFlow integrates with Google Gemini API to provide:

  • Personalized financial advice based on spending patterns
  • Budget recommendations
  • Spending habit analysis
  • Tips for improved financial management

🧪 Testing

To run tests:

xcodebuild test -workspace ExpenseFlow.xcworkspace -scheme ExpenseFlow

📱 Screenshots

[Add screenshots of your app here]

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Please ensure your code follows Swift style guidelines and includes appropriate comments.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

👨‍💻 Author

ExpenseFlow Development Team

🆘 Support & Contact

For support, issues, or feature requests:

🙏 Acknowledgments

📚 Resources


About

ExpenseFlow is a modern, feature-rich iOS application that helps users manage their finances effectively. Whether you're tracking daily expenses, setting budgets, or seeking financial advice, ExpenseFlow provides an intuitive interface powered by advanced technologies including AI for personalized financial consulting

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages