{"id":25875241,"url":"https://github.com/masudur-rahman/expense-tracker-bot","last_synced_at":"2025-03-02T09:32:15.983Z","repository":{"id":189584884,"uuid":"646166789","full_name":"masudur-rahman/expense-tracker-bot","owner":"masudur-rahman","description":"Telegram Bot for Tracking daily transactions","archived":false,"fork":false,"pushed_at":"2025-02-24T18:55:39.000Z","size":42263,"stargazers_count":10,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-24T19:37:58.414Z","etag":null,"topics":["back4app","go","golang","telegram","telegram-bot","telegram-bots","telegrambot","telegrambots"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masudur-rahman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-05-27T13:56:36.000Z","updated_at":"2025-01-07T12:34:07.000Z","dependencies_parsed_at":"2023-08-20T21:36:34.799Z","dependency_job_id":"4f102def-9fc0-45f9-9803-ff77a8df9334","html_url":"https://github.com/masudur-rahman/expense-tracker-bot","commit_stats":null,"previous_names":["masudur-rahman/expense-tracker-bot"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masudur-rahman%2Fexpense-tracker-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masudur-rahman%2Fexpense-tracker-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masudur-rahman%2Fexpense-tracker-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masudur-rahman%2Fexpense-tracker-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masudur-rahman","download_url":"https://codeload.github.com/masudur-rahman/expense-tracker-bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241486794,"owners_count":19970762,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["back4app","go","golang","telegram","telegram-bot","telegram-bots","telegrambot","telegrambots"],"created_at":"2025-03-02T09:32:14.360Z","updated_at":"2025-03-02T09:32:15.945Z","avatar_url":"https://github.com/masudur-rahman.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Expense Tracker\n\nA Telegram Bot to track your expenses.  \n`Expense Tracker Bot` is a Telegram Bot to track your daily transactions.\n\n## Features\n\n- **Expense Tracking**: Keep track of your daily expenses, income, and balance transfers between accounts.\n- **Flexible Input**: Add transactions interactively by selecting options or simply send a text describing your transaction.\n- **Lending and Borrowing**: Track lendings and borrowings with other individuals.\n- **Transaction Summary**: Retrieve transaction summaries based on type, category, or subcategory for your preferred duration.\n- **Transaction Reports**: Generate transaction reports in PDF format for your chosen duration.\n\n## Usage\nThe `Expense Tracker Bot` is now available for public use.  \nTo use this bot, go to Telegram and search for [@XpenseTrackerBot](https://t.me/XpenseTrackerBot)\n\nOnce you are inside the bot inbox,  press `Start` button to start using the Tracker Bot.\n\nBefore you start tracking your expenses\n- Add accounts like `cash`, `brac`, `ebl` etc\n  - Command `/new` =\u003e Account =\u003e Type (Cash or Bank)\n  - Reply with account details (`cash \"Cash in Hand\"`, `ebl EBL` etc)\n- Add some debtors/creditors with whom you are financially involved\n  - Command `/new` =\u003e DebtorsCreditors\n  - Reply with the person details (`john \"John Doe\" john@doe.com`)\n\n### Track your Transactions\n\n#### Interactively\nTo track your transactions interactively, send `/newtxn` command and follow the on-display suggestions.\n\n#### Regular Text Message\nYou also can add new transaction by sending a regular text message.  \nYou just need to mention\n- what you did\n- how much did it cost\n- when you did it\n- affected accounts\n- affected persons in case of loan/borrow\n- remarks\n\nand the bot will take care of the rest\n\n##### Obviously you need to follow some rules while adding transactions via text messages.\n\nMessage needs to be in key/value pairs, like:\n- {action} {amount}\n- for {txn subcategory} // the subcategory must match the allowed subcategory\n- {from/to} {account} // default cash\n- {from/to} {debtor/creditor} // in case of lending/borrowing\n- on {date} // \"DD-MM-YYY\", \"YYYY-MM-DD\", \"MMM DD, YYYY\", today, tomorrow, yesterday [default today]\n- at {time} // midnight, morning, noon, afternoon, evening, night and also different time formats [default now] \n- note {remarks}\n\nThese key/value pairs can appear in any order\n\n\nSome example text for adding a new transaction:\n```\n- transferred 2000 from brac to dbbl on 2020-01-01 note \"Bill payment\"\n- spent 1000 for food-rest on \"Jan 13, 2013\" from dbbl note \"Lunch\"\n- earn 5000 to brac on 20-01-2023 note \"Salary\"\n- borrow 1000 from user to brac on 2020-01-01\n- return 1000 to user from brac on 2020-01-01\n- lend 1000 to user from brac on 2020-01-01\n- recover 1000 from user to brac on 2020-01-01\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eExpand to see the Allowed Transaction Subcategory list\u003c/summary\u003e\n\n```\nFood (food):\n- Restaurants (food-rest)\n- Groceries (food-groc)\n- Takeout (food-take)\n- Snacks (food-snack)\n- Fruits (food-fruit)\n- Beverages (food-bev)\n\nHousing (house):\n- Rent (house-rent)\n- Utilities (house-util)\n- Furniture (house-furn)\n- Electronics (house-elec)\n- Real State (house-real)\n\nEntertainment (ent):\n- Movies (ent-movie)\n- Subscription (ent-sub)\n- Recreation (ent-rec)\n- Books (ent-books)\n\nPersonal Care (pc):\n- Salon (pc-salon)\n- Toiletries (pc-toilet)\n- Gym (pc-gym)\n- Clothing (pc-cloth)\n- Health (pc-health)\n- Medicine (pc-med)\n\nTravel (trv):\n- Accommodation (trv-accom)\n- Dining (trv-dine)\n- Sightseeing (trv-sight)\n- Transportation (trv-trans)\n- Gifts (trv-gift)\n\nFinancial (fin):\n- Salary (fin-sal)\n- Deposit (fin-deposit)\n- Withdraw (fin-with)\n- DPS (fin-dps)\n- Credit Card Payment (fin-ccpay)\n- Bank Transfer (fin-bank)\n- Loan (fin-loan)\n- Loan Recovery (fin-recover)\n- Borrow (fin-borrow)\n- Borrow Return (fin-return)\n- Tax (fin-tax)\n- Charges (fin-charge)\n- Mobile Recharge (fin-flexi)\n\nMiscellaneous (misc):\n- Initial Amount (misc-init)\n- Giveaway (misc-give)\n- Miscellaneous (misc-misc)\n```\n\n\u003c/details\u003e\n\nYou always can send `/cat` command to list the subcategory\n\n### Available commands:\n- `/new` - Add new Transaction, Account or User\n  - `DebtorsCreditors` - Add new debtor or creditors\n  - `Account` - Add new account (Cash, Bank)\n    - i.e: `brac \"BRAC Bank\"`\n    - i.e: `cash \"Cash in Hand\"`\n\n[//]: # (  - `txn` - Add new transaction)\n[//]: # (    - through some flags)\n[//]: # (    - i.e: `\u003camount\u003e -t=\u003ctype\u003e -s=\u003csubcat\u003e -f=\u003csrc\u003e -d=\u003cdst\u003e -u=\u003cuser\u003e -r=\u003cremarks\u003e`)\n\n- `/newtxn` - Add new transaction\n  - Add a new transaction through a series of callback queries.\n- `/users` - List users\n  - list all the persons involved in some loan/borrow with the system user\n- `/balance` - List Account Balance\n  - list all the registered accounts and their balance\n- `/expense` - Fetch Expense of Current month\n  - list transactions of current month\n- `/summary` - Transaction summary of current month\n  - list transaction summary of current month\n- `/allsummary` - Transaction summary based on Type, Category, Subcategory\n  - list transaction summary based on Type, Category, Subcategory\n  - with a duration query parameter\n- `/report` - Transaction Report\n  - list transaction report\n  - with a duration query parameter\n- `/cat` - List Transaction categories\n  - list all the registered categories\n  - by selecting a category, list all the registered subcategories of that category\n- `/help` - Show Usage page\n\n\n## Live Demonstration\n\nhttps://github.com/masudur-rahman/expense-tracker-bot/assets/13915755/83db45c8-1e84-473e-8d58-cda6ef8cc6ef\n\n## Future Work\n\nA list of possible future work:\n- [ ] Add support for undoing a transaction\n- [ ] Add Database backup and restore support\n- [ ] Add support for multiple users\n\n## Self Hosting\n\nIf you want to host your own `Expense Tracker Bot`, refer to the [self-hosting](./docs-selfhost) doc page.\n\n## Contacts\n\nTelegram - [masudur-rahman](https://t.me/masudur_rahman).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasudur-rahman%2Fexpense-tracker-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasudur-rahman%2Fexpense-tracker-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasudur-rahman%2Fexpense-tracker-bot/lists"}