Skip to content

otherworld-dev/Budget

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

416 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ko-fi

Nextcloud Budget

⚠️ Beta: This app is under active development. While stable, please backup your data regularly and report any issues you encounter.

A comprehensive financial management app for Nextcloud. Track spending habits, manage multiple accounts, and forecast future balances through intelligent analysis of your financial history.

Dashboard Screenshot

What's New in v2.10.0

  • Full i18n Support - All user-facing strings are now translatable, enabling multilingual translations via Weblate
  • Multi-Currency Bills - Bills display amounts in their native currency with base-currency equivalents, split templates support multi-currency accounts (#126, #121)
  • Tag Filter Fix - Stale event listeners no longer break tag filters in reports (#128)
  • Tag Display Fix - Long tag names are no longer cut off in the transaction list

See the full changelog for details.

Features

Dashboard & Visualization

  • Customizable Dashboard - Drag-and-drop tile reordering, lock/unlock dashboard editing
  • 28 Dashboard Tiles - Hero metrics, spending insights, forecasting, budget tracking, and more
  • Interactive Charts - Cash flow forecasts, year-over-year comparisons, net worth history with Chart.js
  • Auto-Updating Tiles - Dashboard refreshes automatically when transactions or budgets change

Account & Transaction Management

  • Multi-Account Management - Track bank accounts, credit cards, cash, and cryptocurrency across 45+ currencies
  • Transaction Tracking - Add, edit, categorize, and search transactions with advanced filtering
  • Bulk Operations - Delete, reconcile, or edit multiple transactions at once
  • Configurable Table Columns - Show/hide columns to customize your transaction view
  • Split Transactions - Allocate single transactions across multiple categories
  • Transaction Matching - Automatic transfer detection and linking between accounts
  • Transfer Creation - Create linked transfer transactions directly from transaction form
  • Pending Transactions - Future-dated transactions shown with visual indicators and filterable status (All / Cleared / Pending)

Import & Automation

  • Smart Import - Import bank statements from CSV, OFX, and QIF formats
    • Auto-detection of CSV delimiters (comma, semicolon, tab)
    • Dual-column amount mapping for separate income/expense columns
    • European number format support (1.234,56)
    • Automatic vendor matching and duplicate detection
  • Advanced Rules Engine - Powerful auto-categorization with visual query builder
    • Complex boolean expressions with AND/OR/NOT operators
    • Nested criteria groups with unlimited depth
    • Multiple actions: category, vendor, notes, tags, account, type, reference
    • Preview matches before saving, run rules on existing transactions anytime
    • Priority-based execution with behavior settings (always, if_empty, append, merge)
  • Hierarchical Categories - Organize spending with nested categories and drag-and-drop reordering
  • Tag Sets - Multi-dimensional transaction categorization with custom tag sets per category

Budgeting & Planning

  • Budget Tracking - Set spending limits by category with alerts when approaching or exceeding budgets
    • Dynamic period switching (weekly, monthly, quarterly, yearly)
    • Automatic pro-rating when changing budget periods
    • Real-time progress tracking with visual indicators
  • Balance Forecasting - Predict future balances using trend analysis and scenario modeling
  • Recurring Bills - Detect and track recurring payments
    • Auto-pay option to automatically mark bills as paid on due date
    • Create future transactions for cash flow planning
    • Bill reminders via Nextcloud notifications
    • Custom frequency patterns (select specific months for irregular bills)
  • Bills Calendar - Annual overview showing which months bills are due
    • Interactive heatmap visualization
    • Monthly totals with bar chart
    • Filter by status and include/exclude transfers
  • Recurring Income - Track expected income sources (salary, dividends, etc.) with receipt tracking
  • Recurring Transfers - Track and automate transfers between accounts
    • Monthly equivalent calculations for different frequencies
    • Integration with bills system for unified tracking

Assets & Goals

  • Asset Tracking - Track non-liquid assets (real estate, vehicles, jewelry, collectibles)
    • Value history with snapshots over time
    • Appreciation/depreciation projections with interactive charts
    • Integrated into net worth calculations
  • Debt Payoff Planner - Plan debt repayment using avalanche or snowball strategies
  • Savings Goals - Set financial targets with progress tracking and achievement forecasting
    • Link goals to tags for automatic amount calculation from tagged transactions
  • Pension Tracker - Track retirement accounts with growth projections and combined forecasts

Sharing & Collaboration

  • Shared Expenses - Share expenses with roommates, partners, or friends and track who owes whom
    • Settlement tracking with payment history
    • Contact integration with Nextcloud

Reporting & Analysis

  • Net Worth History - Track assets, liabilities, and non-liquid assets over time with interactive charts
    • Daily automatic snapshots with manual recording option
    • Multi-currency conversion to default currency via ECB and CoinGecko rates
    • Status indicators showing last snapshot timing
  • Bills Calendar - Visualize when bills are due throughout the year
  • Year-over-Year Reports - Compare spending across multiple years side-by-side
  • Reports & Charts - Visualize spending patterns, income, and cash flow over time

Security & Data Management

  • Password Protection - Optional secondary password layer for enhanced app security
    • Session management with configurable timeout (15/30/60 minutes)
    • Auto-lock on inactivity with manual lock option
    • Failed attempt protection (5 attempts = 5-minute lockout)
  • Data Export/Import - Full data migration support for moving between Nextcloud instances
  • Factory Reset - Restore app to empty state with one-click data deletion (preserves audit logs)
  • Audit Logging - Complete trail of all financial actions

Requirements

  • Nextcloud 30 - 35
  • PHP 8.1+
  • MySQL/MariaDB, PostgreSQL, or SQLite

Installation

From App Store (Recommended)

  1. Log in to your Nextcloud instance as admin
  2. Go to Apps > Office & text
  3. Search for "Budget"
  4. Click Download and enable

Manual Installation

cd /path/to/nextcloud/apps
git clone https://github.com/otherworld-dev/Budget.git budget
cd budget/budget

# Install dependencies
composer install --no-dev --optimize-autoloader
npm install

# Build frontend
npm run build

Enable the app:

php occ app:enable budget

Development

Setup Development Environment

cd /path/to/nextcloud/apps
git clone https://github.com/otherworld-dev/Budget.git budget
cd budget/budget

# Install all dependencies
composer install
npm install

# Build for development
npm run dev

# Watch for changes
npm run watch

Build Commands

Command Description
npm run build Production build
npm run dev Development build with source maps
npm run watch Auto-rebuild on file changes
npm run lint Run ESLint
npm run lint:fix Auto-fix linting issues

Project Structure

budget/
├── appinfo/           # App metadata and routing
├── lib/
│   ├── Controller/    # API endpoints
│   ├── Service/       # Business logic
│   ├── Db/            # Database models and mappers
│   ├── Enum/          # Type definitions
│   └── Migration/     # Database schema versions
├── src/               # Frontend source (ES6+)
│   ├── modules/       # Feature-based modules (17 modules)
│   ├── core/          # Router and infrastructure
│   ├── utils/         # Shared utilities
│   └── config/        # Dashboard widgets configuration
├── js/                # Compiled JavaScript
├── css/               # Compiled styles
├── templates/         # PHP templates
└── tests/             # PHPUnit test suites

Usage

Getting Started

  1. Add Accounts - Navigate to the Accounts section and add your bank accounts
  2. Import Transactions - Use the Import feature to upload your bank statements
  3. Set Up Categories - Create categories that match your spending patterns
  4. Configure Import Rules - Set up rules to automatically categorize future imports
  5. Track Bills - Add recurring bills to monitor upcoming payments
  6. Set Goals - Create savings goals to track progress toward financial targets

Importing Bank Statements

The app supports the following formats:

  • CSV - Most banks provide CSV exports (supports European formats)
  • OFX - Open Financial Exchange format
  • QIF - Quicken Interchange Format

CSV Import Tips

  1. The first row should contain column headers
  2. Common columns: Date, Description, Amount, Balance
  3. Use the column mapping feature to match your bank's format
  4. For European banks with separate income/expense columns, use dual-column amount mapping
  5. The app auto-detects delimiters (comma, semicolon, tab)

Setting Up Import Rules

The advanced rules engine uses a visual query builder for complex patterns:

  1. Go to Rules in the navigation menu
  2. Click Add Rule
  3. Build criteria using the visual query builder:
    • Add conditions (field, match type, pattern)
    • Group conditions with AND/OR operators
    • Use NOT operator for negation
    • Create nested groups for complex logic
  4. Configure actions (category, vendor, notes, etc.)
  5. Set priority and behavior (always, if_empty, append, merge)
  6. Preview to test matches before saving
  7. Run Now to apply to existing transactions

Bills and Transfers

Bills:

  • Add recurring bills with custom frequency patterns
  • Enable auto-pay to automatically mark bills as paid on due date
  • Create future transactions for cash flow planning
  • View annual bills calendar to see when bills are due throughout the year

Transfers:

  • Track recurring transfers between accounts (e.g., monthly savings transfers)
  • Enable auto-pay for automatic execution
  • Set transaction description patterns for import matching

Forecasting

The forecast feature analyzes historical spending to predict future balances:

  1. Select the account(s) to forecast
  2. Choose the historical period to analyze (3, 6, or 12 months)
  3. Select the forecast horizon
  4. Generate the forecast

The forecast considers:

  • Regular income patterns
  • Recurring expenses
  • Seasonal variations
  • Average spending by category

Data Migration

To move your data between Nextcloud instances:

  1. Export - Go to Settings > Data Migration > Export to download all your data
  2. Import - On the new instance, go to Settings > Data Migration > Import and upload the export file

API

The app provides a REST API for all functionality:

Endpoint Description
/api/accounts Account management
/api/transactions Transaction CRUD and search
/api/categories Category hierarchy
/api/tag-sets Tag set management
/api/import Bank statement import
/api/import-rules Advanced auto-categorization rules
/api/forecast Balance predictions
/api/bills Recurring bill tracking with auto-pay
/api/transfers Recurring transfers between accounts
/api/goals Savings goal management
/api/assets Non-liquid asset tracking
/api/pensions Pension account tracking
/api/reports Financial reports
/api/migration Data export/import
/api/auth Password protection

Troubleshooting

Import fails with "Invalid format"

  • Ensure your CSV has headers in the first row
  • Check that date format matches your locale settings
  • Verify the file encoding is UTF-8
  • For European formats, the app will auto-detect delimiters and number formats

Transactions not categorizing automatically

  • Check that import rules are active
  • Use the Preview feature to test rule matching before saving
  • Verify rule patterns match transaction descriptions
  • Review rule priority order (higher priority rules execute first)

Forecast seems inaccurate

  • Ensure you have at least 3 months of transaction history
  • Check for unusual one-time transactions that might skew averages
  • Verify all regular transactions are properly categorized

Categories page is blank

  • Verify categories were imported successfully via Settings > Data Migration
  • Check browser console for JavaScript errors
  • Try refreshing browser cache (Ctrl+F5 / Cmd+Shift+R)

Translating

The app is fully prepared for translation with 2,177 translatable strings. Help translate Nextcloud Budget into your language!

Translate via Weblate (Recommended)

Visit our Weblate project to translate directly in your browser — no development setup needed.

Translation status

Translate via Pull Request

  1. Copy budget/translationfiles/templates/budget.pot to budget/translationfiles/<lang>/budget.po
  2. Translate the strings using Poedit or any .po editor
  3. Submit a pull request

See the translation guide for detailed instructions.

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes
  4. Run tests (make test) and linting (make lint)
  5. Submit a pull request

License

This project is licensed under the AGPL-3.0-or-later license.

Support

About

Budget application for Nextcloud cloud.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors