8000 GitHub - GoldBull3t/dollardollar: Just an Opensourced Locally hosted Expense splitting
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

GoldBull3t/dollardollar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💵 DollarDollar Bill Y'all

An open-source, self-hosted expense tracking and bill-splitting application designed for privacy, flexibility, and financial transparency.

If you like this project and would like to support my work, you can buy me a coffee!! Your support helps me continue creating resources like this one. No pressure at all, and thank you for being here!

NOTE:

If you are encountering issues after updating/pulling the recent docker, please run:

  • flask db migrate
  • flask db upgrade

If you wish to reset the database

  • python reset.py

🌟 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

🚀 Key Features

Transaction and Budget Tracking

  • 📊 Detailed transaction logging
  • 💱 Multi-currency support with automatic conversion
  • 💳 Multi-card support
  • 📅 Date-based expense tracking
  • 🔄 Recurring transactions
  • 🏷️ Customizable tags for expense categorization
  • 💼 Auto categorization
  • Integration with Simplefin (auto tracking accounts and transactions)
  • Budgets with notifications

Splitting Capabilities

  • 💸 Multiple split methods:
    • Equal split
    • Custom amount split
    • Percentage-based split
  • 👥 Group and personal expense tracking
  • 📧 Email invitations for group members

Financial Insights

  • 📆 Monthly financial summaries
  • 💰 Comprehensive balance tracking
  • 🔍 Detailed transaction filters
  • 📈 Expense trends visualization

Authentication & Security

  • 🔑 Local username/password authentication
  • 🔒 OpenID Connect (OIDC) integration for SSO capabilities
  • 🛡️ Enterprise-ready authentication with any OIDC provider (Auth0, Okta, Keycloak, etc.)
  • 🔐 Password reset and account recovery flows

Privacy & Control

  • 🔒 Self-hosted solution
  • 🛡️ No third-party data sharing
  • 🔐 Secure user authentication
  • 👤 User management
    • Email verification for signup
    • Password recovery
    • Account settings

🛠 Tech Stack

  • Backend: Python, Flask
  • Database: PostgreSQL
  • Authentication: Flask-Login, OpenID Connect
  • Frontend: Bootstrap, HTML5
  • Deployment: Docker

🚦 Getting Started

Prerequisites

  • Docker
  • Docker Compose
  • Git

Quick Installation

  1. Clone the repository

    git clone https://github.com/yourusername/dollardollar.git
    cd dollardollar
  2. Configure environment

    cp .env.template .env
    # Edit .env with your configuration
  3. Launch the application

    docker-compose up -d
  4. Access the app at http://localhost:5006

##You can also copy the docker-compose.yml and .env.example without cloning the repo.

💼 Usage

Recurring Transactions

Set up transactions that repeat on a regular schedule:

  • Daily, weekly, monthly, or yearly recurrence
  • Set end dates or number of occurrences
  • Edit or cancel recurring transactions

Multi-Currency Support

  • Add expenses in any currency
  • Automatic conversion based on current exchange rates
  • View totals in your preferred currency
  • Historical exchange rate tracking

Tagging System

  • Create custom tags for expense categorization
  • Filter and search expenses by tags
  • Analyze spending patterns by category
  • Tag-based reports and visualization

User Management

  • Secure signup with email verification
  • Add users to groups via email invitations
  • User role management within groups
  • Account recovery via password reset

OIDC Authentication

  • Seamless integration with existing identity providers
  • Support for major OIDC providers (Auth0, Okta, Keycloak, etc.)
  • Single Sign-On capabilities
  • Configuration options:
    • Enable/disable local logins
    • Force OIDC-only authentication
    • Customizable provider name display

Budget Management

  • Set monthly or annual budget targets
  • Create category-based budgeting
  • Track spending against budget limits
  • Get notifications when approaching budget thresholds
  • Visualize budget progress with interactive charts

Advanced Categorization

  • Create unlimited custom categories for transactions
  • Configure category hierarchies (main categories with sub-categories)
  • Auto-categorize transactions based on patterns
  • Generate category-based reports for tax purposes
  • Compare spending across categories over time

🔧 Configuration

OIDC Setup (Optional)

To enable OpenID Connect authentication:

  1. Add the following to your .env file:

    OIDC_ENABLED=True
    OIDC_CLIENT_ID=your_client_id
    OIDC_CLIENT_SECRET=your_client_secret
    OIDC_PROVIDER_NAME=Your Provider Name
    
    # Either use Discovery URL (recommended)
    OIDC_DISCOVERY_URL=https://your-provider/.well-known/openid-configuration
    
    # Or manually configure endpoints
    OIDC_ISSUER=https://your-provider/
    OIDC_AUTH_URI=https://your-provider/auth
    OIDC_TOKEN_URI=https://your-provider/token
    OIDC_USERINFO_URI=https://your-provider/userinfo
    OIDC_LOGOUT_URI=https://your-provider/logout
    
  2. Optional settings:

    # Disable password-based logins
    LOCAL_LOGIN_DISABLE=True
    
    # Disable new user registration
    DISABLE_SIGNUPS=True
    

🤝 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. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE 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.

📸 Screenshots

Here's a visual tour of DollarDollar Bill Y'all:

Dashboard Overview

Screenshot 2025-03-22 at 5 36 38 PM

Expense Splitting

Screenshot 2025-03-09 at 10 32 56 PM

Settling Splits

Screenshot 2025-03-05 at 10 36 48 PM

Group Management

Screenshot 2025-03-05 at 10 24 14 PM

Multi Currency Support

Screenshot 2025-03-05 at 10 25 09 PM

Recurring expenses

Screenshot 2025-03-05 at 10 24 59 PM

Budgets

Screenshot 2025-03-22 at 5 36 30 PM

Categories

Screenshot 2025-03-13 at 4 15 28 PM

Category Rules

Screenshot 2025-03-22 at 5 37 01 PM ### Simplefin Screenshot 2025-03-22 at 5 37 11 PM

🙏 Acknowledgements

  • Inspired by the need for transparent, flexible expense tracking
  • Special thanks to my wife, who endured countless late nights of coding, provided unwavering support, and maintained patience during endless debugging sessions. This project wouldn't exist without her understanding and encouragement.
  • Thanks to Jordan Dalby for creating and maintaining the Unraid template
  • Thanks to @elmerfds for the OIDC support!

If you like this project and would like to support my work, you can buy me a coffee!! Your support helps me continue creating resources like this one. No pressure at all, and thank you for being here!

About

Just an Opensourced Locally hosted Expense splitting

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 66.4%
  • Python 31.6%
  • JavaScript 1.8%
  • Other 0.2%
0