How davidmtp58/finlytics works
Finlytics is a personal-finance statement analyzer. Its main workflow takes a user-uploaded CSV, PDF, or image through transaction extraction and categorization, then lets the user filter and correct transactions before viewing financial summaries and spending categories. The terminal report is a separate CSV-based workflow. The README documents image support; the sampled PDF-named extraction function also selects an image MIME type. The graph reflects documented capabilities, while omitting uncertain details beyond the sampled source.
Main entry points: finlytics.py Hybrid classification · app.py Streamlit app · relatorio_financeiro.py Terminal report · categorias.py Local category rules
Components 15
User interfaces
- Streamlit app
app.py - Consent and privacy
app.py - Filter and edit
app.py - Metrics and chart
app.py - Terminal report
relatorio_financeiro.py
Statement processing
- CSV loading
finlytics.py - PDF/image extraction
finlytics.py - Transaction DataFrame
finlytics.py
Categorization and analysis
- Local category rules
categorias.py - Hybrid classification
finlytics.py - Valid categories
categorias.py - Income and balance
finlytics.py - Spending ranking
finlytics.py
External AI
- Gemini API
Other components
- User
Connections 25
- User → Consent and privacy: confirms consent
- Consent and privacy → Streamlit app: permits use
- User → Streamlit app: uploads statement
- Streamlit app → CSV loading: loads CSV
- Streamlit app → PDF/image extraction: sends PDF/image
- CSV loading → Transaction DataFrame: reads into
- PDF/image extraction → Gemini API: sends document
- Gemini API → PDF/image extraction: returns JSON
- PDF/image extraction → Transaction DataFrame: builds DataFrame
- CSV loading → Hybrid classification: classifies rows
- PDF/image extraction → Hybrid classification: classifies rows
- Hybrid classification → Local category rules: checks keywords
- Local category rules → Hybrid classification: returns category
- Hybrid classification → Gemini API: classifies fallback
- Gemini API → Hybrid classification: returns category
- Hybrid classification → Valid categories: uses category set
- Streamlit app → Filter and edit: filters and edits
- Transaction DataFrame → Filter and edit: provides transactions
- User → Filter and edit: selects month, edits
- Filter and edit → Metrics and chart: passes edited data
- Metrics and chart → Income and balance: calculates totals
- Metrics and chart → Spending ranking: ranks expenses
- User → Terminal report: runs report
- Terminal report → Local category rules: categorizes CSV rows
- Terminal report → Transaction DataFrame: reads example CSV