A comprehensive personal finance management application built on the Frappe Framework. eBudget simplifies budgeting, tracking expenses, managing income sources, and monitoring investments.
- Create reusable budget templates
- Save current budget configurations for future use
- Quickly apply templates to new monthly budgets
- Include/exclude items by default
- 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
- Hierarchical budget categories
- Income, Expense, and Investment category separation
- Active/inactive category management
- Category filtering in quick add forms
- 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
- Fetch fields for automatic data synchronization
- Linked document relationships
- Read-only calculated fields
- Validation rules
- Frappe Framework (version 13 or higher)
- ERPNext (optional but recommended)
- Get the app:
bench get-app https://github.com/yourusername/ebudget.git- Install on your site:
bench --site your-site install-app ebudget- Run migrations:
bench --site your-site migrate- Build assets:
bench build- Restart the server:
bench restart- Navigate to eBudget > Monthly Budget
- Create a new budget by clicking New
- Fill in:
- Budget Date
- Budget Month
- Optional: Apply a template
- Click Add Row in the Income Sources table
- Select an income source from the dropdown
- Category and amount will be automatically fetched
- Click Add Row in the Expenses table
- Select an expense item
- Track payment status with:
- Amount (total)
- Paid Amount
- Remaining Balance (calculated automatically)
- Click Add Row in the Investments table
- Select an investment asset
- Monitor investment amounts and categories
- Create a budget with your desired configuration
- Click the Save as Template button
- Enter template name and description
- Create a new monthly budget
- Select a template from the "Use Template" field
- Click apply to populate the budget with template data
- Monthly Budget: Central budget management document
- Income Sources: Standalone income source definition
- Expense Items: Standalone expense item definition
- Investment: Investment asset definition
- Income Table: Links to Income Sources
- Expenses Table: Links to Expense Items
- Investment Table: Links to Investment
- Budget Category: Hierarchical category management
- Budget Template: Stores budget configurations
- Budget Template Income/Expense/Investment: Template components
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
- Template System: Uses API endpoints to create and retrieve template data
- Fetch Fields: Automatic data synchronization between linked documents
- Client-side Calculations: Real-time updates using JavaScript
- Category Filtering: Smart filters for quick entry forms
get_template_data(): Retrieves template configurationcreate_budget_template(): Creates new budget templatesget_active_templates(): Lists active templatesclone_budget(): Duplicates existing budgets
- Create new DocTypes as needed
- Update client scripts for calculations
- Create server-side API functions if required
- Update this README with new features
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
For support, please create an issue in the GitHub repository or contact the maintainers.
MIT License
Built with ❤️ using the Frappe Framework