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.
- 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
- 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
- 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
- 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
- Local Storage: Secure local database with Room persistence
- Backup & Restore: Built-in data backup and restore functionality
- Offline First: Full functionality without internet connection
BalanZ follows modern Android development best practices with a clean, maintainable architecture:
- MVVM (Model-View-ViewModel): Separation of concerns with reactive UI
- Repository Pattern: Clean data access layer
- LiveData & Data Binding: Reactive UI updates
| 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 |
- Build System: Gradle with Kotlin DSL
- Min SDK: 24 (Android 7.0)
- Target SDK: 35 (Android 15)
- Compile SDK: 35
The app consists of four main sections accessible via bottom navigation:
- π Home: Dashboard with balance overview and budget progress
- π³ Transactions: List and manage all financial transactions
- π Statistics: Visual analytics and spending insights
- βοΈ Settings: App configuration, themes, and security settings
- Android Studio Arctic Fox or newer
- JDK 11 or higher
- Android SDK with API level 24+
-
Clone the repository
git clone https://github.com/Man0dya/BalanZ.git cd BalanZ -
Open in Android Studio
- Open Android Studio
- Select "Open an existing project"
- Navigate to the cloned directory
-
Build and Run
- Let Gradle sync the project
- Connect an Android device or start an emulator
- Click "Run" or press
Ctrl+R
- The app will prompt you to set up a 6-digit PIN for security
- Once set, you'll be taken to the main dashboard
- Start adding your first transactions using the "+" button
The app uses Room database with automatic migrations. Schema files are stored in app/schemas/ for version control.
- PIN hashes are stored using Android's EncryptedSharedPreferences
- AES-256 encryption ensures maximum security
- Session management requires PIN re-entry after app backgrounding
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
Contributions are welcome! Here's how you can help:
- 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
- Follow Kotlin coding conventions
- Maintain MVVM architecture patterns
- Add unit tests for new features
- Update documentation as needed
- No cloud sync functionality
- Limited currency support
- No multi-account management
- Cloud backup and sync
- Multiple currency support
- Recurring transactions
- Advanced budgeting features
- Spending goals and challenges
- Export to multiple formats (CSV, Excel)
Screenshots coming soon - the app features a clean, modern interface with intuitive navigation and beautiful data visualizations.
This project is licensed under the MIT License - see the LICENSE file for details.
Man0dya - GitHub Profile
- 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.
