An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          



DollarDollar Bill Y'all logo


DollarDollar Bill Y'all



license
GitHub Workflow Status

> **🚧 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.




Demo
|
Discord
|
License


## 🌟 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


Dashboard
Expense Splitting
Settling Splits
Budgets
Categories
Portfolios

## 🤝 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!