first commit
This commit is contained in:
57
README.md
Normal file
57
README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user