Skip to content

EstakiDev/Monify

Repository files navigation

Monify - Automatic Expense Tracker

Built with Kotlin Jetpack Compose Architecture: Clean + MVI Modules: Multi-Module License: MIT

** Preview of this Application: PLEASE WAIT...

Monify is an Android application designed to help you automatically track your income and expenses by analyzing your bank SMS messages. It provides a simple and intuitive way to manage your finances without the hassle of manual entry.

Monify is a modern personal finance tracker app built with Kotlin and Jetpack Compose.
It provides users with an intuitive interface to manage their transactions while embracing clean architecture and modular design.


✨ Features

  • Add, edit, and delete income/expenses
  • Categorize transactions with custom icons
  • View detailed financial statistics
  • Local notifications for financial reminders
  • Dark & Light theme
  • Clean architecture with scalable codebase

⚙️ Tech Stack & Architecture

Core Technologies

  • Kotlin – Main language
  • Jetpack Compose – UI toolkit
  • Room – Local database
  • Coroutines + Flow – Asynchronous & reactive programming
  • Hilt – Dependency Injection
  • ViewModel – Lifecycle-aware logic
  • WorkManager – Background tasks
  • BroadcastReceiver – System event listener
  • Notification Manager – System notifications

Architecture

  • Clean Architecture – Separation of data, domain, and presentation
  • MVI Pattern – Predictable unidirectional UI flow
  • Multi-Module – For modular, testable, and scalable development

🧱 Project Modules Overview

Monify/
├── app/              # Presentation layer, DI setup, UI Screens (Jetpack Compose)
├── data/             # Data sources, Room DAOs, repository implementations
├── domain/           # Business logic, UseCases, models, repository contracts
├── ui_utils/         # Shared UI components and utilities
└── pure_kt/          # General-purpose Kotlin utilities, extensions, and tools

Module Responsibilities:

app/

Compose Screens

ViewModels

Navigation

Hilt DI Setup


data/

Room entities & DAOs

Repository implementations

Data mappers


domain/

Use Cases

Data Models

Repository Interfaces


ui_utils/

Reusable Compose components (buttons, text fields, etc.)

Theme helpers


pure_kt/

Date/time formatters

Validation logic

Extension functions




---

📱 Screenshots


---

🚀 Getting Started

1. Clone the project:



git clone https://github.com/EstakiDev/Monify.git
cd Monify

2. Open in Android Studio (Arctic Fox or newer)


3. Sync Gradle and run on emulator or device.




---

🤝 Contributing

Feel free to open issues, suggest features, or submit pull requests.
This project follows clean coding principles and aims to be beginner-friendly for new contributors.


---

📄 License

Monify is licensed under the MIT License.


---

⭐️ Support

If you find this project helpful, please star it and share it with your friends and community!

---

About

Monify is an Android application designed to help you automatically track your income and expenses by analyzing your bank SMS messages. It provides a simple and intuitive way to manage your finances without the hassle of manual entry.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages