# 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 ```bash 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 ```bash PYTHONPATH=. pytest ``` ## Docker ```bash cp .env.example .env docker compose up --build ``` ## CLI ```bash 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 ```