{"id":30698496,"url":"https://github.com/abhiramdodda/expense-and-diary-tracker","last_synced_at":"2026-02-12T18:02:14.604Z","repository":{"id":312712099,"uuid":"1048462422","full_name":"AbhiramDodda/expense-and-diary-tracker","owner":"AbhiramDodda","description":"A web app created using flask and vue to track expenses. All the diary entries are encrypted to ensure privacy","archived":false,"fork":false,"pushed_at":"2026-02-06T17:55:42.000Z","size":51,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-07T01:55:12.176Z","etag":null,"topics":["axios","chartjs","expense-tracker","flask","sqlite3","tailwindcss","vuejs"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/AbhiramDodda.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":"2025-09-01T13:33:07.000Z","updated_at":"2026-02-06T17:57:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"bfb367f6-7588-413e-8310-9a8f8adcaac9","html_url":"https://github.com/AbhiramDodda/expense-and-diary-tracker","commit_stats":null,"previous_names":["abhiramdodda/expense-and-diary-tracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AbhiramDodda/expense-and-diary-tracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiramDodda%2Fexpense-and-diary-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiramDodda%2Fexpense-and-diary-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiramDodda%2Fexpense-and-diary-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiramDodda%2Fexpense-and-diary-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbhiramDodda","download_url":"https://codeload.github.com/AbhiramDodda/expense-and-diary-tracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbhiramDodda%2Fexpense-and-diary-tracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29375601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: 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":["axios","chartjs","expense-tracker","flask","sqlite3","tailwindcss","vuejs"],"created_at":"2025-09-02T10:48:32.752Z","updated_at":"2026-02-12T18:02:14.598Z","avatar_url":"https://github.com/AbhiramDodda.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Expense \u0026 Diary Tracker (Flask + Vue CDN)\n\nFeatures\n- REST API with Flask\n- Vue (CDN) frontend, Tailwind UI\n- Chart.js pie (monthly by category) and line (yearly totals)\n- Encrypted diary entries at rest using Fernet\n- Calendar view with daily expense totals and diary count\n- SQLite for easy local dev\n\n## Quickstart\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate  # Windows: .venv\\Scripts\\activate\npip install -r requirements.txt\n# (optional) cp .env.example .env \u0026\u0026 set FERNET_KEY=\u003cyour 32-byte base64 urlsafe key\u003e\npython app.py\n```\n\nOpen http://localhost:5000 in your browser.\n\n## Notes on Encryption\n- Diary entries are encrypted before storing in the DB using a Fernet key.\n- Set a persistent `FERNET_KEY` environment variable in production, otherwise a volatile key is generated each run (you will not be able to decrypt past entries).\n- To generate a key:\n  ```python\n  import base64, os\n  print(base64.urlsafe_b64encode(os.urandom(32)).decode())\n  ```\n\n## API (selected)\n- `POST /api/expenses` JSON `{date, category, amount, note?}`\n- `GET /api/expenses?year=YYYY\u0026month=MM`\n- `GET /api/expenses/summary/monthly?year=YYYY\u0026month=MM`\n- `GET /api/expenses/summary/yearly?year=YYYY`\n- `POST /api/diary` JSON `{date, content}`\n- `GET /api/diary?date=YYYY-MM-DD` (or `year`, `month`)\n- `GET /api/calendar/daily_totals?year=YYYY\u0026month=MM`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhiramdodda%2Fexpense-and-diary-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhiramdodda%2Fexpense-and-diary-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhiramdodda%2Fexpense-and-diary-tracker/lists"}