Files
expense_monitor/README.md
Mateusz Gruszczyński 986ffb200a first commit
2026-03-13 15:17:32 +01:00

1.8 KiB

Expense Monitor

Expanded Flask expense tracker with multilingual UI, admin panel, categories with PL/EN translations, budgets, long-term statistics, CSV/PDF export, audit log, email report command, OCR fallback, document preview generation, and production deployment files.

Features

  • Flask + SQLAlchemy + Flask-Migrate
  • Bootstrap + Font Awesome
  • Polish and English UI translations
  • SQLite for development, PostgreSQL for Docker/production
  • login, logout, registration toggle, password reset, admin panel
  • expense create, edit, soft delete, monthly list, dashboard analytics
  • budgets and budget alerts
  • long-term statistics with charts
  • CSV and PDF exports
  • audit log and admin system/database info
  • HEIC/JPG/PNG/PDF upload, WEBP preview generation
  • multiple attachments per expense
  • webhook endpoint for external integrations
  • PWA manifest + service worker foundation
  • optional in-app report scheduler
  • rate limiting, honeypot, CSRF, secure headers, 40x/50x pages
  • CLI for account management, category seeding, report sending
  • Dockerfile, docker-compose, Caddyfile

Quick start

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python run.py

Default admin:

  • email: admin@example.com
  • password: Admin123!

Tests

PYTHONPATH=. pytest

Docker

cp .env.example .env
docker compose up --build

CLI

flask --app wsgi:app create-user --email user@example.com --name "Example User" --password "StrongPass123!"
flask --app wsgi:app make-admin --email user@example.com
flask --app wsgi:app reset-password --email user@example.com --password "NewStrongPass123!"
flask --app wsgi:app deactivate-user --email user@example.com
flask --app wsgi:app send-reports
flask --app wsgi:app seed-categories