https://github.com/harung1993/dollardollar
Just an Opensourced locally hosted Money Management and Expense Splitting Service
https://github.com/harung1993/dollardollar
expense-tracker flask money-management python simplefin
Last synced: 2 months ago
JSON representation
Just an Opensourced locally hosted Money Management and Expense Splitting Service
- Host: GitHub
- URL: https://github.com/harung1993/dollardollar
- Owner: harung1993
- License: agpl-3.0
- Created: 2025-02-24T22:27:39.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-05-01T19:16:28.000Z (6 months ago)
- Last Synced: 2025-05-01T20:26:05.208Z (6 months ago)
- Topics: expense-tracker, flask, money-management, python, simplefin
- Language: HTML
- Homepage:
- Size: 960 KB
- Stars: 283
- Watchers: 1
- Forks: 20
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: license.txt
Awesome Lists containing this project
- awesome-python-applications - Repo - hosted money management and expense splitting web service. `(server, flask)` (<a id="tag-internet" href="#tag-internet">Internet</a>)
README
DollarDollar Bill Y'all
> **🚧 Important Development Notice**
>
> **DollarDollar is currently undergoing a major architectural transformation!** We're migrating from a monolithic backend to a **modular microservices architecture** and transitioning the frontend from server-side rendering to a **modern React-based application**.
>
> **What this means:**
> - 🔄 **Backend**: Moving to modular, service-based architecture for better scalability and maintainability
> - ⚛️ **Frontend**: Complete migration to React for improved user experience and modern UI capabilities
> - 🛠️ **Current state**: The application remains fully functional during this transition
> - 📅 **Timeline**: Active development in progress - expect exciting updates soon!
>
> **For users**: The current version continues to work as expected. The modularization will bring enhanced performance, better maintainability, and improved development experience.
>
An open-source, self-hosted money management platform with comprehensive expense tracking, budgeting, account synchronization, and bill-splitting features - designed for privacy, flexibility, and complete financial control.
## 🌟 Why DollarDollar?
Born from a desire to move beyond restrictive financial tracking platforms, this app empowers users with:
- 🔐 **Complete control over personal financial data**
- 💡 **Flexible expense splitting mechanisms**
- 🏠 **Self-hosted privacy**
- 🤝 **Collaborative expense management**
- 🔄 **Integration with Simplefin** (auto tracking accounts and transactions)
- 💰 **Budgets with notifications**
- 🖥️ **Seamless integration with Unraid** for easy installation and management via Unraid templates
- 💼 **Track Portfolios and investments with auto update of sticker prices
## 🚀 Features
- **💰 Expense Tracking & Management**
- Multi-currency support with automatic conversion
- Recurring transactions with flexible scheduling
- Auto-categorization with customizable rules
- Transaction importing (CSV, SimpleFin)
- Transaction with multi category support
- Multi-card and multi-account support
- Date-based expense tracking
- **👥 Bill Splitting**
- Multiple split methods: equal, custom amount, percentage
- Group and personal expense tracking
- Settlement tracking and balances
- Email invitations for group members
- **📊 Budgeting & Analytics**
- Custom budgets with notifications
- Monthly financial summaries
- Expense trends visualization
- Category-based spending analysis
- Comprehensive balance tracking
- **🏷️ Organization & Categories**
- Customizable tags for expense categorization
- Category hierarchies (main categories with sub-categories)
- Auto-categorization based on transaction patterns
- Category-based reports for tax purposes
- **🔐 Security & Privacy**
- Self-hosted for complete data control
- Local auth + OpenID Connect (OIDC) integration
- Enterprise-ready authentication with any OIDC provider
- User management with password recovery
- No third-party data sharing
- **💼 Portfolio Management
- Create and manage multiple investment portfolios
- Link portfolios to accounts for automatic balance updates
- Track individual investments across different portfolios
- Visualize portfolio performance and distribution
## 🛠️ Getting Started
### Updating
If you are encountering issues after updating/pulling the recent docker, please run:
```bash
flask db migrate
flask db upgrade
```
If you wish to reset the database:
```bash
python reset.py
```
### Prerequisites
- Docker
- Docker Compose
### Quick Installation
1. Clone the repository
```bash
git clone https://github.com/harung1993/dollardollar.git
cd dollardollar
```
2. Configure environment
```bash
cp .env.template .env
# Edit .env with your configuration
```
3. Launch the application
```bash
docker-compose up -d
```
4. Access the app at `http://localhost:5006`
## ⚙️ Configuration Options
### Investment Tracking (Optional)
To enable Investment Tracking :
```
INVESTMENT_TRACKING_ENABLED=True
```
### OIDC Setup (Optional)
To enable OpenID Connect authentication:
```
OIDC_ENABLED=True
OIDC_CLIENT_ID=your_client_id
OIDC_CLIENT_SECRET=your_client_secret
OIDC_PROVIDER_NAME=Your Provider Name
OIDC_DISCOVERY_URL=https://your-provider/.well-known/openid-configuration
```
### Other Optionals
# Optional settings
```
LOCAL_LOGIN_DISABLE=True # Disable password logins
DISABLE_SIGNUPS=True # Disable registration
```
### Additional Configuration
For detailed configuration options, see the [.env.template](https://github.com/harung1993/dollardollar/blob/main/.env.example) file.
## 📸 Screenshots
## 🤝 Development Approach
This project explores AI-assisted open-source development:
- Leveraging AI tools for rapid prototyping
- Combining technological innovation with human creativity
- Iterative development with large language models
- Local LLMs (qwen2.5, DeepSeek-V3)
- Claude AI
- Human domain expertise
## 🤝 Contributing
Contributions are welcome! Please check out our contributing guidelines.
1. Fork the repository
2. Create your feature branch
3. Submit a Pull Request
## 🙏 Acknowledgements
- Special thanks to my wife, who endured countless late nights of coding, provided unwavering support, and maintained patience during endless debugging sessions
- Thanks to JordanDalby for creating and maintaining the Unraid template
- Thanks to @elmerfds for the OIDC support!
## 📜 License
This project is licensed under the GNU Affero General Public License v3.0 - see the [LICENSE](license.txt) file for details.
This license requires anyone who runs a modified version of this software, including running it on a server as a service, to make the complete source code available to users of that service.
## 🙏 Support
If you like this project and would like to support my work, you can buy me a coffee!