What is the project about?
ExpenseOwl is a simple expense tracking system designed for personal use, particularly in a home lab environment. It focuses on tracking daily expenses and visualizing monthly spending patterns through a pie chart.
What problem does it solve?
It provides a lightweight and straightforward alternative to more complex expense tracking and budgeting applications. It avoids feature bloat, focusing solely on adding, deleting, and viewing expenses, making it fast and easy to use. It solves the problem of needing a very simple expense tracker without the overhead of features found in larger applications.
What are the features of the project?
- Expense Tracking: Records expenses with optional name, date (without time), amount, and category.
- Visualization: Displays a monthly pie chart breakdown of expenses by category. Allows interactive exclusion of categories from the chart.
- Table View: Lists expenses chronologically, allowing deletion.
- Data Storage: Uses a flat JSON file (
expenses.json
) for data persistence. - REST API: Provides a REST API for adding and retrieving expenses.
- CLI: Offers a command-line interface for both server and client operations.
- PWA: The front end can be installed as a Progressive Web App.
- Customization: Allows customization of expense categories and currency symbol via environment variables.
- CSV Export: Allows exporting all expense data to CSV from the UI.
- Docker Support: Provides a multi-architecture Docker container for easy deployment.
- Single User: Designed for single-user or small, trusted group use.
What are the technologies used in the project?
- Backend: Go
- Storage: JSON file
- Frontend: Chart.js, HTML, JavaScript, CSS (vanilla web stack)
- Interface: CLI and Web UI (REST API)
What are the benefits of the project?
- Simplicity: Extremely easy to use, with a minimal feature set.
- Speed: Fast expense entry and visualization.
- Lightweight: Minimal resource usage.
- Self-Hosted: Designed for self-hosting, giving users full control over their data.
- Data Portability: JSON data format allows for easy export and manipulation.
- Customizable: Categories and currency are configurable.
- Containerized: Easy deployment with Docker.
What are the use cases of the project?
- Personal Expense Tracking: Individuals can track their spending habits.
- Home Lab Use: Ideal for self-hosting within a home lab environment.
- Simple Expense Monitoring: Quickly visualize spending patterns without complex analysis.
- Data Export for Analysis: Export data to CSV for use in other tools.
- CLI Automation: Use the CLI for scripting or automated expense entry.
