Skip to content

Man0dya/BalanZ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ“± BalanZ - Personal Finance Tracker

BalanZ Logo

Android Kotlin API Target SDK Version

BalanZ is a modern, secure personal finance management Android application that helps users track their income, expenses, and spending patterns with intuitive visualizations and robust security features.

🌟 Key Features

πŸ” Security First

  • PIN Authentication: 6-digit PIN protection with AES-256 encryption
  • Secure Storage: Uses Android's EncryptedSharedPreferences for sensitive data
  • Session Management: Automatic PIN verification on app resume for enhanced security

οΏ½ Financial Management

  • Transaction Tracking: Add, edit, and delete income/expense transactions
  • Category Management: Organize transactions by customizable categories
  • Budget Monitoring: Set monthly budgets with progress tracking and notifications
  • Real-time Balance: Live updates of your financial status

πŸ“Š Data Visualization

  • Expense Analytics: Interactive pie charts showing spending by category
  • Income Analysis: Visual breakdown of income sources
  • Trend Charts: Daily income/expense trends over the last 30 days
  • Progress Indicators: Budget utilization with visual progress bars

🎨 User Experience

  • Modern UI: Clean, Material Design-compliant interface
  • Dark Mode: System-responsive dark/light theme support
  • Intuitive Navigation: Bottom navigation with smooth fragment transitions
  • Data Export: Export transaction history as PDF reports

πŸ“± Data Management

  • Local Storage: Secure local database with Room persistence
  • Backup & Restore: Built-in data backup and restore functionality
  • Offline First: Full functionality without internet connection

πŸ—οΈ Architecture & Tech Stack

BalanZ follows modern Android development best practices with a clean, maintainable architecture:

Architecture Pattern

  • MVVM (Model-View-ViewModel): Separation of concerns with reactive UI
  • Repository Pattern: Clean data access layer
  • LiveData & Data Binding: Reactive UI updates

Core Technologies

Component Technology
Language Kotlin 2.0.20
UI Framework Android Views with ViewBinding & DataBinding
Database Room 2.6.1 (SQLite)
Architecture MVVM + Repository Pattern
Async Kotlin Coroutines + LiveData
Security Android Security Crypto
Charts MPAndroidChart 3.1.0
Navigation Navigation Component 2.8.3
PDF Export iText7 Core 7.2.5

Development Tools

  • Build System: Gradle with Kotlin DSL
  • Min SDK: 24 (Android 7.0)
  • Target SDK: 35 (Android 15)
  • Compile SDK: 35

πŸ“± App Structure

The app consists of four main sections accessible via bottom navigation:

  1. 🏠 Home: Dashboard with balance overview and budget progress
  2. πŸ’³ Transactions: List and manage all financial transactions
  3. πŸ“Š Statistics: Visual analytics and spending insights
  4. βš™οΈ Settings: App configuration, themes, and security settings

οΏ½ Getting Started

Prerequisites

  • Android Studio Arctic Fox or newer
  • JDK 11 or higher
  • Android SDK with API level 24+

Installation

  1. Clone the repository

    git clone https://github.com/Man0dya/BalanZ.git
    cd BalanZ
  2. Open in Android Studio

    • Open Android Studio
    • Select "Open an existing project"
    • Navigate to the cloned directory
  3. Build and Run

    • Let Gradle sync the project
    • Connect an Android device or start an emulator
    • Click "Run" or press Ctrl+R

First Launch

  1. The app will prompt you to set up a 6-digit PIN for security
  2. Once set, you'll be taken to the main dashboard
  3. Start adding your first transactions using the "+" button

πŸ”§ Configuration

Database Schema

The app uses Room database with automatic migrations. Schema files are stored in app/schemas/ for version control.

Security Configuration

  • PIN hashes are stored using Android's EncryptedSharedPreferences
  • AES-256 encryption ensures maximum security
  • Session management requires PIN re-entry after app backgrounding

οΏ½ Project Structure

app/
β”œβ”€β”€ src/main/
β”‚   β”œβ”€β”€ java/com/example/balanz/
β”‚   β”‚   β”œβ”€β”€ data/              # Database entities, DAOs, and database
β”‚   β”‚   β”œβ”€β”€ model/             # Data models and categories
β”‚   β”‚   β”œβ”€β”€ repository/        # Data repositories
β”‚   β”‚   β”œβ”€β”€ ui/                # UI components (fragments, adapters)
β”‚   β”‚   β”‚   β”œβ”€β”€ home/          # Home dashboard
β”‚   β”‚   β”‚   β”œβ”€β”€ statistics/    # Charts and analytics
β”‚   β”‚   β”‚   β”œβ”€β”€ transaction/   # Transaction management
β”‚   β”‚   β”‚   └── settings/      # App settings
β”‚   β”‚   β”œβ”€β”€ util/              # Utility classes
β”‚   β”‚   β”œβ”€β”€ viewmodel/         # ViewModels for MVVM
β”‚   β”‚   β”œβ”€β”€ MainActivity.kt    # Main app container
β”‚   β”‚   └── PinActivity.kt     # PIN authentication
β”‚   └── res/                   # Resources (layouts, strings, themes)
└── build.gradle.kts           # App-level build configuration

🀝 Contributing

Contributions are welcome! Here's how you can help:

  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

Development Guidelines

  • Follow Kotlin coding conventions
  • Maintain MVVM architecture patterns
  • Add unit tests for new features
  • Update documentation as needed

πŸ› Known Issues & Roadmap

Current Limitations

  • No cloud sync functionality
  • Limited currency support
  • No multi-account management

Future Enhancements

  • Cloud backup and sync
  • Multiple currency support
  • Recurring transactions
  • Advanced budgeting features
  • Spending goals and challenges
  • Export to multiple formats (CSV, Excel)

πŸ“± Screenshots

Screenshots coming soon - the app features a clean, modern interface with intuitive navigation and beautiful data visualizations.

πŸ“„ License

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

πŸ‘¨β€πŸ’» Author

Man0dya - GitHub Profile

πŸ™ Acknowledgments

  • Material Design Guidelines for UI inspiration
  • MPAndroidChart library for beautiful charts
  • Android Jetpack libraries for modern Android development
  • The Android developer community for continuous learning

⭐ If you found this project helpful, please consider giving it a star!

πŸ“§ For questions or suggestions, feel free to open an issue or reach out.

About

A secure Android personal finance tracker with PIN authentication, transaction management, budget monitoring, and data visualization. Built with Kotlin, MVVM architecture, and Room database.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages