Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Financy — Calm Money Log 🌿

Financy Logo

A minimalist, private, and offline-first personal expense tracker built with Jetpack Compose.

Platform Kotlin Compose Room License


Overview

Financy is crafted to bring tranquility and clarity to daily financial tracking. Rather than overwhelming you with endless forms and aggressive notifications, Financy delivers a calming, intuitive interface that makes logging expenses and income effortless.

Everything stays on your device — 100% offline, zero trackers, and no account required.


Key Features

  • ⚡ Effortless Transaction Logging

    • Switch smoothly between Money Out (expenses) and Money In (income).
    • Quick amount keypad entry with currency formatting (INR ₹).
    • Pre-curated, visually distinct expense and income categories with icons.
    • Optional memo notes for context.
  • 🌙 4:00 AM Financial Day Rule

    • Financy understands real human habits: late-night expenses logged after midnight (before 4:00 AM) are intuitively counted as part of the previous night's financial day.
  • 📊 Monthly Overview & Analytics

    • Expenditure Donut Chart: Interactive category-wise spending breakdown with percentage share.
    • Daily Money Spend: Live summary of today's total outflow and inflow.
    • Money In vs. Money Out: Capacity bar comparing monthly earnings against expenditures, displaying your healthy buffer percentage.
    • Month Navigation: Easily step through past or future months to inspect historical records.
  • 📝 Recent Activity & Management

    • Chronological transaction feed for the selected month.
    • Tap any record to view details, edit amount/date/category/note, or delete entries.
  • 🔒 100% Offline & Private

    • Backed by Android's Room SQLite database.
    • Your financial data never leaves your device.

Tech Stack & Architecture

  • UI Framework: Modern declarative UI using Jetpack Compose & Material 3.
  • Architecture: MVVM (Model-View-ViewModel) with Unidirectional Data Flow (UDF).
  • Asynchronous & Reactive: Kotlin Coroutines & StateFlow.
  • Persistence: Room Database (SQLite) with Type Converters.
  • Language: 100% Kotlin.
  • Design Language: Custom calm aesthetic tokens (emerald/mint green palette, glassmorphic surfaces, rounded squircles).

Project Structure

Financy/
├── app/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/financy/
│   │   │   │   ├── data/
│   │   │   │   │   ├── local/database/       # Room Database & Type Converters
│   │   │   │   │   └── repository/           # RecordRepository
│   │   │   │   ├── domain/
│   │   │   │   │   ├── model/                # Record & TransactionType models
│   │   │   │   │   └── util/                 # DateUtils & CurrencyFormatter
│   │   │   │   ├── ui/
│   │   │   │   │   ├── addrecord/            # Add Record / Expense Screen & ViewModel
│   │   │   │   │   ├── components/           # Top bar, Charts, Keypad, Nav bar
│   │   │   │   │   ├── theme/                # Compose Theme, Color palette, Typography
│   │   │   │   │   └── visualization/        # Monthly Overview Screen & ViewModel
│   │   │   │   └── MainActivity.kt           # App Entry Point & Tab Controller
│   │   │   └── res/
│   │   │       ├── drawable/                 # Logo & Vector Assets
│   │   │       ├── mipmap-*/                 # Adaptive Launcher Icons
│   │   │       └── values/                   # Strings, Colors, Themes
│   │   └── test/                             # Unit Tests
│   └── build.gradle.kts
├── gradle/
└── README.md

Getting Started

Prerequisites

  • Android Studio: Hedgehog | 2023.1.1 or newer (Ladybug / Iguana recommended)
  • JDK: Java 17 or Java 21
  • Android SDK: Minimum SDK 26 (Android 8.0), Target SDK 34/35

Building from Source

  1. Clone the repository:

    git clone https://github.com/artistic-programmer/Financy.git
    cd Financy
  2. Open the project in Android Studio.

  3. Let Gradle sync and download dependencies.

  4. Run on an emulator or physical device:

    ./gradlew assembleDebug

    Or click Run 'app' in Android Studio.


Running Unit Tests

Execute the unit test suite with:

./gradlew testDebugUnitTest

License

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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages