๐ Personal finance management web app with integrated AI
๐ฑ Demo โข ๐ Features โข ๐ ๏ธ Installation โข ๐ Technical Docs โข ๐ค Contribute
| Feature | Description |
|---|---|
| ๐ฏ Smart | Automatic amount detection (US/EU format) |
| ๐ Visual | Interactive charts with Plotly |
| ๐ค AI | Financial assistant with HuggingFace + local fallback |
| ๐พ Persistent | Local SQLite, no setup required |
| ๐ฑ PWA | Installable as mobile app |
| ๐ Secure | Optional authentication via Supabase |
| ๐งช Tested | 17 unit tests passing |
**๐ Live App**
| Desktop - Dashboard | Desktop - New Transaction | Desktop - History |
|---|---|---|
![]() |
![]() |
![]() |
| Desktop - Charts | Desktop - Budgets | Mobile |
|---|---|---|
![]() |
![]() |
![]() |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฐ PyStreamFlow [Dashboard] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ INGRESOS โ โ GASTOS โ โ BALANCE โ โ
โ โ $ 150,000 โ โ $ 45,000 โ โ $ 105,000 โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ
โ ๐ Evoluciรณn de Gastos | ๐ฐ Por Categorรญa โ
โ โโโโโโโโโโโโโโโโโโโโ | โโโโโโโโโโโโโโโโโโโโ โ
โ โ โโโโโโโโโโโโ โ โ โ โโโโโโโโโโ โ โ
โ โ โโโโโโโโโโโโ โ โ โ โโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโ | โโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ ๐ Transacciones Recientes โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ ๐ข Salario $ 80,000 15/03/2024 โโ
โ โ ๐ด Supermercado $ 15,000 14/03/2024 โโ
โ โ ๐ด Transporte $ 5,000 14/03/2024 โโ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- โ Transaction recording with smart amount detection
- โ Dashboard with real-time metrics
- โ Currency: Argentine Pesos (ARS)
- โ Date filters with validation
- โ Interactive Plotly charts with tooltips
- โ Pagination in history (1000+ transactions)
- โ Monthly budgets per category with visual alerts
- โ Savings goals with visual progress
- โ In-app alerts when budget exceeded
- โ Complete history with search, filters, editing
- โ Local SQLite persistence
- โ Backup/Import JSON
- โ PDF report export
- โ Supabase authentication (optional)
- โ Offline mode without account
- โ Predefined: Food, Housing, Transport, etc.
- โ Custom: Create your own categories
- โ Floating chat with personalized responses
- โ HuggingFace Zephyr for intelligent analysis
- โ Local fallback without internet
- โ Responsive design (mobile + desktop)
- โ Animations micro-interactions
- โ Onboarding tutorial
- โ Skeleton loaders
- โ PWA installable as app
| Shortcut | Action |
|---|---|
Ctrl + N |
New transaction |
Ctrl + H |
Go to History |
Ctrl + D |
Go to Dashboard |
- Python 3.10+
- pip
# 1. Clone repository
git clone https://github.com/your-user/pystreamflow.git
cd pystreamflow
# 2. Create virtual environment
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
# 3. Install dependencies
pip install -r requirements.txt
# 4. Configure environment variables (optional)
cp .env.example .env
# 5. Run
streamlit run pystreamflow.py# 1. Push to GitHub
# 2. Go to https://streamlit.io/cloud
# 3. Connect GitHub โ Select repo
# 4. Main file: pystreamflow.py
# 5. Enjoy! ๐pystreamflow/
โโโ pystreamflow.py # โญ Main app (3134 lines)
โโโ database.py # ๐ฆ SQLite data layer (479 lines)
โโโ auth.py # ๐ Supabase auth (181 lines)
โโโ style.css # ๐จ Styles (1540 lines)
โโโ test_app.py # ๐งช Unit tests (213 lines)
โโโ requirements.txt # ๐ Dependencies
โโโ pyproject.toml # โ๏ธ Python config
โโโ .env.example # ๐ง Config template
โโโ LICENSE # ๐ MIT License
โโโ README.md # ๐ This file
โโโ run.bat / run.sh # โก Run scripts
โโโ static/
โ โโโ manifest.json # ๐ฑ PWA manifest
โ โโโ service-worker.js # ๐ PWA service worker
โโโ venv/ # ๐ Virtual environment (not versioned)
| Layer | Technology | Version |
|---|---|---|
| Framework | Streamlit | โฅ1.30.0 |
| Data | Pandas | โฅ2.0.0 |
| Visualization | Plotly | โฅ5.18.0 |
| ReportLab | โฅ4.0.0 | |
| Database | SQLite | built-in |
| AI Cloud | HuggingFace Hub | โฅ0.20.0 |
| Auth Cloud | Supabase | โฅ2.0.0 |
| Testing | Pytest | โฅ8.0.0 |
-- Transactions
CREATE TABLE transacciones (
id TEXT PRIMARY KEY,
tipo TEXT NOT NULL,
monto REAL NOT NULL,
categoria TEXT NOT NULL,
descripcion TEXT,
fecha TEXT NOT NULL,
moneda TEXT DEFAULT 'ARS',
user_id TEXT,
created_at TEXT
);
-- Budgets
CREATE TABLE presupuestos (
id INTEGER PRIMARY KEY,
user_id TEXT,
categoria TEXT NOT NULL,
limite REAL NOT NULL
);
-- Savings Goals
CREATE TABLE metas_ahorro (
id TEXT PRIMARY KEY,
user_id TEXT,
nombre TEXT NOT NULL,
objetivo REAL NOT NULL,
ahorrado REAL DEFAULT 0,
fecha_limite TEXT,
categoria TEXT
);
-- Custom Categories
CREATE TABLE categorias_custom (
id INTEGER PRIMARY KEY,
user_id TEXT,
tipo TEXT NOT NULL,
nombre TEXT NOT NULL
);The app automatically detects formats:
"15000" โ 15000 # Simple
"15000 ARS" โ 15000 # With text
"1.500,50" โ 1500.50 # European
"1500.50" โ 1500.50 # American# Query HuggingFace
response = consultar_ia("How much did I spend on food?", context)
# Local fallback (no internet)
response = consultar_ia_local(question, context)# Run all tests
pytest test_app.py -v
# Specific tests
pytest test_app.py::test_detectar_moneda_simple -vResults: 17 tests passing โ
| Test | Status |
|---|---|
test_detectar_moneda_simple |
โ |
test_detectar_moneda_con_texto |
โ |
test_detectar_moneda_con_comas |
โ |
test_detectar_moneda_decimal |
โ |
test_detectar_moneda_invalida |
โ |
test_formatear_monto_ars |
โ |
test_calcular_metricas_* |
โ |
test_crear_transaccion |
โ |
test_generar_id_formato |
โ |
test_ciclo_completo_transaccion |
โ |
| Variable | Description | Required |
|---|---|---|
HF_TOKEN |
HuggingFace token (cloud AI) | โ |
SUPABASE_URL |
Supabase project URL | โ |
SUPABASE_KEY |
Supabase API key | โ |
| Mode | Description | Requires |
|---|---|---|
| Local | SQLite + local data | โ Nothing |
| Cloud | Supabase sync | โ Credentials |
| AI Cloud | HuggingFace | โ HF Token |
| AI Local | Basic responses | โ Nothing |
- Multi-currency (USD, EUR)
- Excel export
- Push notifications
- Native mobile app (React Native)
- Bank integration (Open Banking)
- Investment tracking
# 1. Fork
# 2. Create branch
git checkout -b feature/new-feature
# 3. Commit
git commit -am 'Add new feature'
# 4. Push
git push origin feature/new-feature
# 5. Pull RequestMIT License - See LICENSE
- Streamlit - Web Framework
- Plotly - Visualization
- HuggingFace - AI Models
- Supabase - Backend as a Service
- ReportLab - PDFs
โญ If you like the project, give it a star!
Made with โค๏ธ by PyStreamFlow Team





