Skip to content

vin-im/DumbBudget

 
 

Repository files navigation

DumbBudget

A simple, secure personal budgeting app with PIN protection. Track your income and expenses with a clean, modern interface.

image

Features

  • 🔒 PIN-protected access
  • 💰 Track income and expenses
  • 📊 Real-time balance calculations
  • 🏷️ Categorize transactions
  • 📅 Date range filtering
  • 🔄 Sort by date or amount
  • 📱 Responsive design
  • 🌓 Light/Dark theme
  • 📤 Export to CSV
  • 🔍 Filter transactions by type
  • 💱 Multi-currency support

Supported Currencies

DumbBudget supports the following currencies:

  • USD (US Dollar) 🇺🇸
  • EUR (Euro) 🇪🇺
  • GBP (British Pound) 🇬🇧
  • JPY (Japanese Yen) 🇯🇵
  • AUD (Australian Dollar) 🇦🇺
  • CAD (Canadian Dollar) 🇨🇦
  • CHF (Swiss Franc) 🇨🇭
  • CNY (Chinese Yuan) 🇨🇳
  • HKD (Hong Kong Dollar) 🇭🇰
  • NZD (New Zealand Dollar) 🇳🇿
  • MXN (Mexican Peso) 🇲🇽
  • RUB (Russian Ruble) 🇷🇺
  • SGD (Singapore Dollar) 🇸🇬
  • KRW (South Korean Won) 🇰🇷
  • INR (Indian Rupee) 🇮🇳
  • BRL (Brazilian Real) 🇧🇷
  • ZAR (South African Rand) 🇿🇦
  • TRY (Turkish Lira) 🇹🇷
  • PLN (Polish Złoty) 🇵🇱
  • SEK (Swedish Krona) 🇸🇪
  • NOK (Norwegian Krone) 🇳🇴
  • DKK (Danish Krone) 🇩🇰
  • IDR (Indonesia Rupiah) 🇮🇩

Set your preferred currency using the CURRENCY environment variable (defaults to USD if not set).

Using Docker

docker run -d \
  -p 3000:3000 \
  -v /path/to/your/data:/app/data \
  -e DUMBBUDGET_PIN=12345 \
  -e CURRENCY=USD \
  -e BASE_URL=http://localhost:3000 \
  -e INSTANCE_NAME='My Account' \
  dumbwareio/dumbbudget:latest

Note: Replace /path/to/your/data with the actual path where you want to store your transaction data on the host machine.

Environment Variables

Variable Description Required Default Example
DUMBBUDGET_PIN PIN code for accessing the application Yes - 12345
PORT Port number for the server No 3000 8080
CURRENCY Currency code for transactions No USD EUR
BASE_URL Base URL for the application No http://localhost:PORT https://budget.example.com
INSTANCE_NAME Allows you to name each instance should you have multiple. No - My Account

Development Setup

  1. Clone the repository:
git clone https://github.com/DumbWareio/DumbBudget.git
cd DumbBudget
  1. Install dependencies:
npm install
  1. Create a .env file:
DUMBBUDGET_PIN=12345
PORT=3000
NODE_ENV=development
BASE_URL=http://localhost:3000
CURRENCY=USD
INSTANCE_NAME='My Account'
  1. Start the development server:
npm run dev
  1. Open http://localhost:3000 in your browser

Building from Source

# Build the Docker image
docker build -t dumbwareio/dumbbudget:latest .

# Create a directory for persistent data
mkdir -p ~/dumbbudget-data

# Run the container
docker run -d \
  -p 3000:3000 \
  -v ~/dumbbudget-data:/app/data \
  -e DUMBBUDGET_PIN=12345 \
  -e BASE_URL=http://localhost:3000 \
  -e INSTANCE_NAME='My Account' \
  dumbwareio/dumbbudget:latest

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Security

DumbBudget includes several security features:

  • PIN protection for access
  • Rate limiting on PIN attempts
  • Temporary lockout after failed attempts
  • No sensitive data stored in browser storage
  • Secure session handling

Support

Support the Project

Buy Me A Coffee

Made with ❤️ by DumbWare.io

About

A stupid simple budget app!

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 65.9%
  • CSS 21.9%
  • HTML 11.9%
  • Dockerfile 0.3%