{"id":49224602,"url":"https://github.com/versacecrispies/financier","last_synced_at":"2026-04-24T06:08:30.922Z","repository":{"id":347547037,"uuid":"1187006517","full_name":"versacecrispies/financier","owner":"versacecrispies","description":"⚡ A cyberpunk-themed personal finance OS: track salaries, bank statements, PF growth, and spending with AI. Local-first, no cloud.","archived":false,"fork":false,"pushed_at":"2026-03-20T09:10:01.000Z","size":49,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-28T14:52:22.433Z","etag":null,"topics":["ai","finance","finance-tracker","india","indian-banking","self-hosted"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/versacecrispies.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-20T08:29:45.000Z","updated_at":"2026-03-21T07:21:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/versacecrispies/financier","commit_stats":null,"previous_names":["versacecrispies/financier"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/versacecrispies/financier","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/versacecrispies%2Ffinancier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/versacecrispies%2Ffinancier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/versacecrispies%2Ffinancier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/versacecrispies%2Ffinancier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/versacecrispies","download_url":"https://codeload.github.com/versacecrispies/financier/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/versacecrispies%2Ffinancier/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32211408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T03:15:14.334Z","status":"ssl_error","status_checked_at":"2026-04-24T03:15:11.608Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","finance","finance-tracker","india","indian-banking","self-hosted"],"created_at":"2026-04-24T06:08:03.407Z","updated_at":"2026-04-24T06:08:30.898Z","avatar_url":"https://github.com/versacecrispies.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Financier — Personal Finance OS\n\nA local-first personal finance dashboard built for Indian users. Track your salary history, bank transactions, and PF growth — all stored locally in a SQLite database. No cloud, no subscriptions, no data leaves your machine.\n\n---\n\n## Tech Stack\n\n- **Backend** — Node.js + Express + SQLite (`node:sqlite`)\n- **Frontend** — Vanilla JS, Chart.js, PDF.js\n- **AI** — Anthropic Claude Haiku (optional, for smart parsing and categorization)\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 22+\n- An Anthropic API key (optional — needed for AI features)\n\n### Installation\n\n```bash\ngit clone https://github.com/versacecrispies/financier.git\ncd financier\nnpm install\n```\n\n### Configuration\n\nCopy the example config and fill in your values:\n\n```bash\ncp config.example.js config.js\n```\n\nEdit `config.js`:\n\n```js\nconst CONFIG = {\n  // Passwords for password-protected payslip PDFs\n  // Common format: date of birth as DD-MM-YYYY\n  payslipPasswords: ['DD-MM-YYYY'],\n\n  // Passwords for password-protected bank statement PDFs\n  // Check your bank's statement email for the password format\n  bankStatementPasswords: ['XXXX00000000'],\n};\n```\n\n\u003e `config.js` is gitignored and will never be committed.\n\n### Running\n\n```bash\nnpm start\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser. Press `Ctrl+C` to stop.\n\n---\n\n## Features\n\n### Payslips\n\n- Upload payslip PDFs (drag and drop, multiple files at once)\n- **Claude AI parsing** — extracts fields from any payslip format regardless of layout or field names (staffing agencies, standard corporate formats, and others)\n- **Regex fallback** — works without an API key using pattern matching\n- Automatically unlocks password-protected PDFs using passwords defined in `config.js`\n- Confirmation modal to review and correct parsed fields before saving\n- Duplicate detection by filename and by company + month\n- **Salary over time** chart (gross vs net)\n- **PF growth** projection with monthly compounding at 8.25% annual rate (configurable employee/employer contribution rates)\n\n### Spends\n\n- Upload bank statement PDFs or CSVs\n- **PDF support** — reconstructs multi-line UPI transaction descriptions using PDF.js Y-position grouping\n- **CSV support** — works with standard Indian bank exports (HDFC, Axis, SBI, Kotak, and others)\n- Determines credit/debit from running balance column rather than keyword guessing\n- **AI categorization** — transactions not matched by keyword rules are sent to Claude in batches for accurate categorization\n- Categories: food, groceries, transport, utilities, EMI, entertainment, health, shopping, salary, other\n- Re-uploading a file replaces its transactions (no duplicates)\n- **Monthly stacked bar chart** — spend by category over 12 months\n- **Donut chart** — current month category breakdown\n- **Cashflow chart** — income vs spending vs net over 12 months\n- KPIs: average monthly burn, this month's spend, free cash (net salary − burn − EMI)\n- Configurable monthly EMI amount\n- Filter transactions by month and category\n- Sources panel — remove an entire file's transactions in one click\n\n### AI Chat\n\n- Ask natural language questions about your finances\n- Full context of payslips, transactions, PF projections, and spending patterns\n- Conversation history maintained within the session\n- Powered by Claude Haiku\n\n---\n\n## Claude API Key Setup\n\n1. Go to the **AI Chat** tab\n2. Click the API key button in the top right\n3. Paste your Anthropic API key (starts with `sk-ant-`)\n4. Click Save\n\nThe key is stored locally in `finance.db` and never sent anywhere except the Anthropic API (proxied through the local server).\n\n---\n\n## Viewing Your Data\n\n```bash\nsqlite3 finance.db\n```\n\n```sql\n.tables\nSELECT * FROM payslips;\nSELECT * FROM transactions LIMIT 20;\nSELECT * FROM settings;\n.quit\n```\n\nOr use the [SQLite Viewer](https://marketplace.visualstudio.com/items?itemName=qwtel.sqlite-viewer) VS Code extension — click `finance.db` in the file explorer.\n\n---\n\n## Privacy\n\n- All data is stored locally in `finance.db`\n- `finance.db` is gitignored — your financial data and API key will never be committed\n- `config.js` is gitignored — your PDF passwords will never be committed\n- The only external network calls are to the Anthropic API when AI features are used\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fversacecrispies%2Ffinancier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fversacecrispies%2Ffinancier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fversacecrispies%2Ffinancier/lists"}