πΌ Finance Manager
Welcome to Personal Finance Manager an open-source, modular platform designed to help individuals and investment groups manage money more intentionally. It provides a structured, rule-based approach to budgeting, saving, borrowing, and allocating income using a dynamic account system.
π Vision
To build a transparent, accountable, and modular finance management system that empowers individuals to take control of their money with clarity and intention.
Currently, the focus is on personal finance, helping users to:
- Align income with expenses through structured allocation strategies including sinking funds for upcoming bills and goal-based saving.
- Reduce debt with disciplined repayment workflows sinking funds for upcoming bills and goal-based saving.
- Track and grow savings goals with rule-based automation
- Encourage intentional spending and budgeting habits
Support for group-based finance β including shared accounts, rotating savings (merry-go-rounds), and member management β is planned for future releases.
π Why This Project?
Traditional budgeting tools often fail to capture the complexity of real-world personal income - expediture balance or enforce discipline in individual saving behaviors. This project was built to:
- Bring automation and control to personal/group finance tracking.
- Offer flexible allocation systems (like 50/30/20 budgeting).
- Support goal-based saving, debt tracking, and scheduled obligations such as sinking funds.
- Enable modular customization through APIs, Shiny dashboards, and React apps.
- Ensure privacy and security even when integrating with partner servicesβauthentication uses JWT tokens, sharing only user UUID and roles, maintaining anonymity and avoiding de-identification.
π§© Key Components
Module | Technology | Purpose |
---|---|---|
R Package | R + R6 | Core business logic, classes for account structure, data serialization |
API | Plumber (R) | REST API for account operations, transactions, automation |
Shiny App | Shiny (R) | Admin and user interface for managing groups/accounts |
React App | React.js | Mobile-friendly UI for day-to-day use, especially for group members |
π§ Core Concepts
Main, Child, and Grandchild Accounts: Funds flow hierarchically with automatic allocation rules, mimicking real-world budgeting structures.
Dynamic Setup: Users can configure accounts based on their financial goalsβwhether itβs debt mitigation, savings, or managing irregular or low income. The system adapts to your strategy.
Fixed Obligations: Define recurring payments with due dates and frequency (e.g., rent, subscriptions).
Sinking Funds: Support for gradual saving toward future large expenses (e.g., annual insurance, school fees).
Greedy Account Logic: Once an account is fully funded, it is automatically deactivated, and excess funds are redistributed intelligently to remaining active siblings.
Account Reactivation: Inactive periodic accounts (e.g., monthly, yearly) are automatically reactivated after their due dates to resume funding.
Recursive Account Nesting: Users can attach multiple child and grandchild accounts to mirror their actual expense structure with deep nesting flexibility.
Custom Fields: Admins can define custom registration or account creation fields, supporting diverse setups.
π Use Cases
Current focus:
β Personal budgeting and savings
β Goal-oriented saving (e.g., rent, subscriptions, emergency funds)
β Debt tracking and repayment strategies
β Sinking funds and structured allocation planning
Planned for future releases:
π Group-based savings (e.g., chamas, merry-go-rounds)
πΈ Micro-loans and internal lending frameworks
π’ Custom financial apps for organizations or cooperatives
π Project Modules
To dive deeper into individual modules and their documentation:
π See Modules
Or explore full API docs:
π License
MIT. See LICENSE for details.
π Sponsors
Support my work through GitHub Sponsors!