Skip to content

alaalsalam/e-budget

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# eBudget

A comprehensive personal finance management application built on the Frappe Framework. eBudget simplifies budgeting, tracking expenses, managing income sources, and monitoring investments.

Features

1. Budget Templates

  • Create reusable budget templates
  • Save current budget configurations for future use
  • Quickly apply templates to new monthly budgets
  • Include/exclude items by default

2. Financial Management

  • Income Tracking: Manage multiple income sources with categories
  • Expense Management: Track expenses with payment status
  • Investment Monitoring: Keep track of your investment portfolio
  • Cash Flow Analysis: Automatic cash-in-hand calculation

3. Categorization System

  • Hierarchical budget categories
  • Income, Expense, and Investment category separation
  • Active/inactive category management
  • Category filtering in quick add forms

4. Advanced Calculations

  • Automatic total calculations for income, expenses, and investments
  • Remaining balance tracking for expenses
  • Cash in hand calculation: Total Income - (Total Expenses + Total Investments)
  • Real-time updates on form changes

5. Data Integrity

  • Fetch fields for automatic data synchronization
  • Linked document relationships
  • Read-only calculated fields
  • Validation rules

Installation

Prerequisites

  • Frappe Framework (version 13 or higher)
  • ERPNext (optional but recommended)

Setup Instructions

  1. Get the app:
bench get-app https://github.com/yourusername/ebudget.git
  1. Install on your site:
bench --site your-site install-app ebudget
  1. Run migrations:
bench --site your-site migrate
  1. Build assets:
bench build
  1. Restart the server:
bench restart

Usage Guide

Creating a Monthly Budget

  1. Navigate to eBudget > Monthly Budget
  2. Create a new budget by clicking New
  3. Fill in:
    • Budget Date
    • Budget Month
    • Optional: Apply a template

Adding Income Sources

  1. Click Add Row in the Income Sources table
  2. Select an income source from the dropdown
  3. Category and amount will be automatically fetched

Managing Expenses

  1. Click Add Row in the Expenses table
  2. Select an expense item
  3. Track payment status with:
    • Amount (total)
    • Paid Amount
    • Remaining Balance (calculated automatically)

Tracking Investments

  1. Click Add Row in the Investments table
  2. Select an investment asset
  3. Monitor investment amounts and categories

Using Budget Templates

Creating a Template:

  1. Create a budget with your desired configuration
  2. Click the Save as Template button
  3. Enter template name and description

Applying a Template:

  1. Create a new monthly budget
  2. Select a template from the "Use Template" field
  3. Click apply to populate the budget with template data

DocTypes Overview

Main DocTypes

  • Monthly Budget: Central budget management document
  • Income Sources: Standalone income source definition
  • Expense Items: Standalone expense item definition
  • Investment: Investment asset definition

Child Table DocTypes

  • Income Table: Links to Income Sources
  • Expenses Table: Links to Expense Items
  • Investment Table: Links to Investment

Supporting DocTypes

  • Budget Category: Hierarchical category management
  • Budget Template: Stores budget configurations
  • Budget Template Income/Expense/Investment: Template components

File Structure

ebudget/
├── ebudget/
│   ├── api.py                    # Server-side API functions
│   ├── doctype/
│   │   ├── monthly_budget/
│   │   │   ├── monthly_budget.js # Client-side scripts
│   │   │   └── ...
│   │   ├── income_sources/
│   │   │   ├── income_sources.js
│   │   │   └── ...
│   │   ├── investment/
│   │   │   ├── investment.js
│   │   │   └── ...
│   │   └── expense_items/
│   │       ├── expense_items.js
│   │       └── ...
│   └── ...
├── hooks.py                      # Application hooks
└── README.md                     # This file

Technical Implementation

Key Features

  1. Template System: Uses API endpoints to create and retrieve template data
  2. Fetch Fields: Automatic data synchronization between linked documents
  3. Client-side Calculations: Real-time updates using JavaScript
  4. Category Filtering: Smart filters for quick entry forms

API Endpoints

  • get_template_data(): Retrieves template configuration
  • create_budget_template(): Creates new budget templates
  • get_active_templates(): Lists active templates
  • clone_budget(): Duplicates existing budgets

Development

Adding New Features

  1. Create new DocTypes as needed
  2. Update client scripts for calculations
  3. Create server-side API functions if required
  4. Update this README with new features

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Support

For support, please create an issue in the GitHub repository or contact the maintainers.

License

MIT License

Acknowledgments

Built with ❤️ using the Frappe Framework

About

# eBudget A comprehensive personal finance management application built on the Frappe Framework. eBudget simplifies budgeting, tracking expenses, managing income sources, and monitoring investments.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors