Expensemanager
Enable users to store their expense & incomes and keep track of their finances.
Install / Use
/learn @nkuppan/ExpensemanagerREADME

About
Expense Manager is a fully functional Android app for personal finance tracking. It follows modern Android design and development best practices, making it both a useful daily-driver and a reference project for developers looking to learn production-grade Compose architecture.
🚧 Work in progress — actively maintained and accepting contributions.
Screenshots
| Home Screen | Analysis Screen | Transaction Screen | Category Chart Screen | |:-------------------------------------------------:|:-------------------------------------------------:|:-------------------------------------------------:|:-------------------------------------------------:| | <img src="docs/images/image1.png" width="250px"/> | <img src="docs/images/image2.png" width="250px"/> | <img src="docs/images/image3.png" width="250px"/> | <img src="docs/images/image4.png" width="250px"/> |
| Transaction Create | Account Create | Budget Create | Dark Theme | |:-------------------------------------------------:|:-------------------------------------------------:|:-------------------------------------------------:|:-------------------------------------------------:| | <img src="docs/images/image5.png" width="250px"/> | <img src="docs/images/image6.png" width="250px"/> | <img src="docs/images/image7.png" width="250px"/> | <img src="docs/images/image8.png" width="250px"/> |
Features
Core Functionality
- Multi-account management — create and organise transactions across Checking, Savings, Cash, Credit Card, and custom accounts
- Budget tracking — set monthly budgets with flexible customisation options and track spending against your targets
- Transaction management — log income, expenses, and transfers between accounts with category tagging, notes, and timestamps
- CSV export — export your transaction data for use in spreadsheets or other tools (PDF export coming soon)
- Multi-currency support — switch display currencies in the UI (full conversion support is planned)
Analytics & Insights
- Trend analysis — visualise your spending patterns across daily, weekly, and monthly timeframes
- Category breakdown — interactive pie chart showing where your money goes, grouped by category
- Income vs. Expense summaries — at-a-glance totals with colour-coded indicators
Redesigned Transaction List Screen
The transaction list has been rebuilt from the ground up with a focus on usability and polish:
- Income / Expense summary cards — gradient-backed cards at the top showing period totals with glowing accent indicators
- Account filter pills — horizontally scrollable chips for quick filtering by account
- Type filter tabs — segmented control (All / Expense / Income) with animated selection and count badges
- Collapsible search — tap-to-reveal search bar with clear button for fast transaction lookup
- Date-grouped layout — transactions grouped by date with daily net totals in each header
- Swipe-to-reveal actions — gesture-driven Edit and Delete actions on each row (spring-animated, no external library)
- Staggered entrance animations — header, cards, and groups animate in sequentially on load
- Empty state — friendly messaging when filters return no results
- Floating Action Button — quick-access button for adding new transactions
Improved Transaction Item Component
Each transaction row has been refined for better visual hierarchy and interaction:
- Rounded icon container — 44dp badge with category-tinted background and subtle border
- Colour-coded amount prefix —
+for income (green),−for expenses (red) for instant scanning - Transfer arrow indicator — clear
↓flow between From → To accounts on transfer transactions - Notes preview — single-line muted note text beneath the subtitle
- Swipe actions — integrated Edit / Delete reveal with spring physics animation
- Smooth content transitions —
animateContentSize()for expanding/collapsing notes - Backward-compatible API — all new callbacks (
onEdit,onDelete,onClick) default tonull, so existing call sites remain unchanged
Theming
- Full Material 3 design system with dynamic color support
- Complete Dark Theme implementation
Architecture & Tech Stack
Expense Manager is structured as a multi-module project following clean architecture principles.
| Layer | Libraries / Tools | |---|---| | UI | Jetpack Compose, Material 3 | | Navigation | Compose Navigation | | State management | ViewModel, Kotlin Flow, Coroutines | | Persistence | Room, DataStore | | Background work | WorkManager | | Dependency injection | Koin | | Code style | Spotless | | Language | 100% Kotlin |
Getting Started
Prerequisites
- Android Studio Hedgehog (2023.1.1) or later
- JDK 17+
- Android SDK with minimum API 21
Build & Run
# Clone the repository
git clone https://github.com/nkuppan/expensemanager.git
cd expensemanager
# Build the debug variant
./gradlew assembleDebug
# Install on a connected device
./gradlew installDebug
Project Structure
expensemanager/
├── app/ # Application module (entry point)
├── core/
│ ├── common/ # Shared utilities, colour resources, extensions
│ ├── data/ # Repository implementations, data sources
│ ├── database/ # Room database, DAOs, entities
│ ├── datastore/ # DataStore preferences
│ └── model/ # Domain models
├── feature/
│ ├── transaction/ # Transaction list, create/edit, item components
│ ├── account/ # Account management
│ ├── budget/ # Budget tracking
│ ├── analysis/ # Charts and analytics
│ └── category/ # Category management
└── docs/ # Documentation and screenshots
Contributing
Contributions are welcome and encouraged! Whether it's a bug fix, new feature, or documentation improvement — every PR helps.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please feel free to file an issue for bugs, suggestions, or feature requests.
Roadmap
- [ ] PDF export for transaction reports
- [ ] Full multi-currency conversion with live exchange rates
- [ ] Recurring transactions (auto-generated on schedule)
- [ ] Biometric app lock
- [ ] Widget for home screen balance overview
- [ ] Cloud sync/backup
License
Expense Manager is distributed under the terms of the Apache License (Version 2.0). See the LICENSE file for details.
Copyright 2023 Naveen Kumar Kuppan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Related Skills
beanquery-mcp
43Beancount MCP Server is an experimental implementation that utilizes the Model Context Protocol (MCP) to enable AI assistants to query and analyze Beancount ledger files using Beancount Query Language (BQL) and the beanquery tool.
valuecell
9.9kValueCell is a community-driven, multi-agent platform for financial applications.
REFERENCE
An intelligent middleware layer between crypto wallets and traditional payment systems.
cashu-skill
A Cashu wallet skill for AI agents
