Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FinanceFlow Android

FinanceFlow Kotlin Android License

A comprehensive personal finance management application for Android

Features β€’ Screenshots β€’ Installation β€’ Usage β€’ Architecture β€’ Contributing β€’ License

πŸ“± About

FinanceFlow Android is a feature-rich personal finance management application that helps you track your income, expenses, budgets, and financial goals. This is the Android version of the FinanceFlow iOS application, built with modern Android development practices.

✨ Features

Core Functionality

  • Transaction Management: Add, edit, and delete income and expense transactions
  • Categories & Subcategories: Organize transactions with customizable categories
  • Multiple Accounts: Manage multiple financial accounts
  • Tags System: Tag transactions for better organization and filtering
  • Recurring Transactions: Set up recurring income and expense patterns
  • Transaction Templates: Create templates for frequently used transactions

Financial Planning

  • Budgets: Create and track budgets with different periods (daily, weekly, monthly, yearly)
  • Financial Goals: Set and monitor progress towards financial goals
  • Statistics & Analytics: View detailed statistics and insights about your finances
  • Heatmap Visualization: Visual calendar heatmap showing spending patterns
  • Forecast: Predict future financial trends based on historical data

User Experience

  • Modern UI: Built with Jetpack Compose and Material Design 3
  • Dark Mode Support: Automatic theme switching based on system settings
  • Search: Powerful search functionality to find transactions quickly
  • Calendar View: Browse transactions by date with calendar interface
  • Insights: Get personalized financial insights and recommendations

Data Management

  • Export Data: Export your financial data to CSV or PDF formats
  • Import Data: Import transactions from CSV files
  • Local Storage: All data stored securely on your device using Room database
  • Backup & Restore: Full backup and restore capabilities

Security

  • PIN Protection: Secure your app with a PIN code
  • Biometric Authentication: Use fingerprint or face recognition for quick access
  • Local-Only Storage: Your financial data never leaves your device

πŸ“Έ Screenshots

FinanceFlow Android Screenshots

πŸ—οΈ Architecture

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

  • Model: Room database entities and repositories
  • View: Jetpack Compose UI components
  • ViewModel: ViewModels that manage UI-related data

Technology Stack

  • Language: Kotlin
  • UI Framework: Jetpack Compose
  • Architecture Components:
    • ViewModel
    • LiveData / StateFlow
    • Room Database
    • Navigation Component
  • Dependency Injection: Manual DI with ViewModelFactory
  • Coroutines & Flow: For asynchronous operations
  • Charts: Vico library for data visualization
  • Material Design: Material Design 3 components

πŸ“‹ Requirements

  • Minimum SDK: Android 7.0 (API 24)
  • Target SDK: Android 14 (API 36)
  • Kotlin: 1.9.0+
  • Gradle: 8.0+
  • Android Studio: Hedgehog | 2023.1.1 or later

πŸš€ Installation

Prerequisites

  1. Install Android Studio
  2. Install JDK 11 or later
  3. Clone this repository:
    git clone https://github.com/rafaelmukhametov/FinanceFlowAndroid.git
    cd FinanceFlowAndroid

Build Instructions

  1. Open the project in Android Studio
  2. Wait for Gradle sync to complete
  3. Build the project:
    ./gradlew build
  4. Run on an emulator or physical device:
    ./gradlew installDebug

Running the App

  1. Connect an Android device or start an emulator
  2. Click "Run" in Android Studio or use:
    ./gradlew installDebug

πŸ“– Usage

Getting Started

  1. First Launch: The app will initialize with default categories and accounts
  2. Add Transactions: Tap the "+" button to add income or expenses
  3. Set Up Budgets: Navigate to Budgets screen to create spending limits
  4. Track Goals: Set financial goals in the Goals screen
  5. View Statistics: Check the Statistics screen for detailed insights

Key Features Guide

  • Today Screen: Main dashboard showing recent transactions and quick actions
  • Statistics: View charts and graphs of your financial data
  • Insights: Get AI-powered financial insights and recommendations
  • Budgets: Manage and track your spending budgets
  • Settings: Configure app preferences, security, and data management

πŸ—‚οΈ Project Structure

app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/com/rafaelmukhametov/financeflow/
β”‚   β”‚   β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ dao/          # Room DAOs
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ database/     # Room database setup
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ entity/       # Room entities
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ model/        # Data models
β”‚   β”‚   β”‚   β”‚   └── repository/   # Data repositories
β”‚   β”‚   β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ components/   # Reusable UI components
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ navigation/   # Navigation setup
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ screens/      # App screens
β”‚   β”‚   β”‚   β”‚   └── theme/        # App theming
β”‚   β”‚   β”‚   β”œβ”€β”€ util/            # Utility classes
β”‚   β”‚   β”‚   β”œβ”€β”€ viewmodel/        # ViewModels
β”‚   β”‚   β”‚   └── security/        # Security services
β”‚   β”‚   β”œβ”€β”€ res/                  # Resources (layouts, drawables, etc.)
β”‚   β”‚   └── AndroidManifest.xml
β”‚   └── test/                     # Unit tests
└── build.gradle.kts

πŸ§ͺ Testing

Run unit tests:

./gradlew test

Run instrumented tests:

./gradlew connectedAndroidTest

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your 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

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Write unit tests for new features

πŸ“ License

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

πŸ™ Acknowledgments

  • Material Design 3 for the design system
  • Jetpack Compose team for the amazing UI framework
  • Room database for local data persistence
  • Vico library for chart visualizations

πŸ“§ Contact

Rafael Mukhametov - GitHub

Project Link: https://github.com/rafaelmukhametov/FinanceFlowAndroid


Made with ❀️ using Kotlin and Jetpack Compose

About

πŸ“± Personal Finance Management App for Android - Track income, expenses, budgets, and goals with a modern Material Design 3 UI built with Jetpack Compose

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages