58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
# 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
|
|
```
|