money_manager

Crates.iomoney_manager
lib.rsmoney_manager
version0.1.3
created_at2026-01-04 16:13:06.467364+00
updated_at2026-01-04 21:51:46.568153+00
descriptionA terminal-based money management application with expense and income tracking
homepagehttps://gitlab.com/ragusseven/money-manager
repositoryhttps://gitlab.com/ragusseven/money-manager
max_upload_size
id2022140
size298,294
(Akergez)

documentation

README

Money Manager

A terminal-based money management application built with Rust, featuring expense tracking, income (top-ups) tracking, and visual analytics.

Features

  • 📊 Expense Tracking: Track your expenses with customizable categories
  • 💰 Income Management: Record income/top-ups with categories
  • 📈 Visual Analytics: View your spending with pie charts, bar charts, and line charts
  • 🖥️ Terminal UI: Beautiful TUI built with Ratatui
  • 🖱️ Mouse Support: Click on tabs to switch between views
  • 📱 Responsive Design: Adapts to mobile-like narrow terminal resolutions
  • 💾 SQLite Database: Persistent storage with SQLite

Installation

From crates.io

cargo install money_manager

From Source

git clone https://gitlab.com/your-username/money_manager.git
cd money_manager
cargo build --release

Pre-built Binaries

Download pre-built binaries from the Releases page.

Available platforms:

  • Linux (AMD64/x86_64)
  • Linux (ARM64/aarch64)
  • Windows (AMD64/x86_64)

Usage

money_manager

Command Line Options

Option Description
-d, --database <PATH> Path to the SQLite database file (default: money_manager.db in current directory)
-h, --help Print help information
-V, --version Print version information

Examples:

# Use default database in current directory
money_manager

# Use a specific database file
money_manager --database ~/finances/my_budget.db

# Short form
money_manager -d /path/to/custom.db

Keyboard Shortcuts

Key Action
1-9 Switch between tabs
Tab Switch to next tab
n Create new entry
↑/↓ Navigate list
←/→ Sort columns / Navigate months / Scroll charts
r Refresh data
q Quit

Mouse Support

Action Effect
Click on tab Switch to that tab
Scroll wheel Scroll through lists
Click on table header Sort by that column
Click category (Line Chart) Toggle category selection

Tabs

  1. Expense Categories: Manage expense categories
  2. Expenses: View and add expenses
  3. Top-Up Categories: Manage income categories
  4. Top-Ups: View and add income
  5. Expense Pie Chart: Expense breakdown by category
  6. Top-Up Pie Chart: Income breakdown by category
  7. Expense Bar Chart: Monthly expense overview
  8. Top-Up Bar Chart: Monthly income overview
  9. Line Chart: Expense trends over time

Responsive Design

The application automatically adapts to different terminal sizes:

Width Mode Description
< 60 cols Mobile Compact tabs, abbreviated labels, essential columns only
60-80 cols Medium Moderate abbreviations, balanced layout
> 80 cols Wide Full labels and all columns displayed

This makes the app usable on narrow terminals, mobile terminal emulators, or split-screen setups.

Requirements

  • SQLite 3.x

Database

The application uses SQLite for data persistence. By default, it looks for money_manager.db in the current working directory. If the database file doesn't exist, it will be created automatically with all necessary tables.

You can specify a custom database location using the --database option.

Development

Prerequisites

  • Rust 1.70 or later
  • SQLite development libraries

Building

cargo build

Running Tests

cargo test

License

See LICENSE for details.

Commit count: 0

cargo fmt