A sophisticated iOS expense tracking application with AI-powered financial consulting, multi-currency support, and intelligent budget management.
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.
- 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
- 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+
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
- Xcode 15.0 or later
- iOS 17.0 or later
- CocoaPods (for Firebase dependencies)
- Google Gemini API Key
- Firebase Configuration
-
Clone the repository
git clone https://github.com/Moanesbbr/ExpenseFlow.git cd ExpenseFlow -
Install dependencies
cd ExpenseFlow pod install -
Configure Firebase
- Download your
GoogleService-Info.plistfrom Firebase Console - Add it to the Resources folder in Xcode
- Ensure it's added to the target
- Download your
-
Set up API Keys
- Add your Google Gemini API key to the constants file
- Update Firebase configuration if needed
-
Open the project
open ExpenseFlow.xcworkspace
-
Build and Run
- Select your target device
- Press Cmd + R to run
- Navigate to the Expenses tab
- Tap the "+" button to add a new expense
- Enter the amount, select a category, and add a description
- Choose your preferred currency
- Save the expense
- Go to the Budget section
- Tap "Set Budget" for each category
- Define your spending limit
- Monitor your progress in the Budget Overview
- Navigate to the AI Consultant tab
- View your expense summary
- Get personalized financial advice powered by Gemini AI
- Receive recommendations for better financial management
- Check the Analytics tab
- See visual representations of your spending patterns
- Analyze spending by category and time period
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)
The app uses Firebase Authentication to provide secure user management with support for:
- Email/Password authentication
- User account creation and sign-in
- Session persistence
- Real-time exchange rate updates via ExchangeRateService
- Track expenses in multiple currencies
- Automatic currency conversion for analytics
- User's preferred currency preference management
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
To run tests:
xcodebuild test -workspace ExpenseFlow.xcworkspace -scheme ExpenseFlow[Add screenshots of your app here]
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Please ensure your code follows Swift style guidelines and includes appropriate comments.
This project is licensed under the MIT License - see the LICENSE file for details.
ExpenseFlow Development Team
For support, issues, or feature requests:
- Open an issue on GitHub
- Contact: [your-email@example.com]
- Documentation: [link to docs if available]
- Built with SwiftUI
- Powered by Firebase
- AI consulting powered by Google Gemini
- Beautiful animations with Lottie