https://github.com/masudur-rahman/expense-tracker-bot
Telegram Bot for Tracking daily transactions
https://github.com/masudur-rahman/expense-tracker-bot
back4app go golang telegram telegram-bot telegram-bots telegrambot telegrambots
Last synced: 8 months ago
JSON representation
Telegram Bot for Tracking daily transactions
- Host: GitHub
- URL: https://github.com/masudur-rahman/expense-tracker-bot
- Owner: masudur-rahman
- License: apache-2.0
- Created: 2023-05-27T13:56:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-24T18:55:39.000Z (8 months ago)
- Last Synced: 2025-02-24T19:37:58.414Z (8 months ago)
- Topics: back4app, go, golang, telegram, telegram-bot, telegram-bots, telegrambot, telegrambots
- Language: Go
- Homepage:
- Size: 40.3 MB
- Stars: 10
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Expense Tracker
A Telegram Bot to track your expenses.
`Expense Tracker Bot` is a Telegram Bot to track your daily transactions.## Features
- **Expense Tracking**: Keep track of your daily expenses, income, and balance transfers between accounts.
- **Flexible Input**: Add transactions interactively by selecting options or simply send a text describing your transaction.
- **Lending and Borrowing**: Track lendings and borrowings with other individuals.
- **Transaction Summary**: Retrieve transaction summaries based on type, category, or subcategory for your preferred duration.
- **Transaction Reports**: Generate transaction reports in PDF format for your chosen duration.## Usage
The `Expense Tracker Bot` is now available for public use.
To use this bot, go to Telegram and search for [@XpenseTrackerBot](https://t.me/XpenseTrackerBot)Once you are inside the bot inbox, press `Start` button to start using the Tracker Bot.
Before you start tracking your expenses
- Add accounts like `cash`, `brac`, `ebl` etc
- Command `/new` => Account => Type (Cash or Bank)
- Reply with account details (`cash "Cash in Hand"`, `ebl EBL` etc)
- Add some debtors/creditors with whom you are financially involved
- Command `/new` => DebtorsCreditors
- Reply with the person details (`john "John Doe" john@doe.com`)### Track your Transactions
#### Interactively
To track your transactions interactively, send `/newtxn` command and follow the on-display suggestions.#### Regular Text Message
You also can add new transaction by sending a regular text message.
You just need to mention
- what you did
- how much did it cost
- when you did it
- affected accounts
- affected persons in case of loan/borrow
- remarksand the bot will take care of the rest
##### Obviously you need to follow some rules while adding transactions via text messages.
Message needs to be in key/value pairs, like:
- {action} {amount}
- for {txn subcategory} // the subcategory must match the allowed subcategory
- {from/to} {account} // default cash
- {from/to} {debtor/creditor} // in case of lending/borrowing
- on {date} // "DD-MM-YYY", "YYYY-MM-DD", "MMM DD, YYYY", today, tomorrow, yesterday [default today]
- at {time} // midnight, morning, noon, afternoon, evening, night and also different time formats [default now]
- note {remarks}These key/value pairs can appear in any order
Some example text for adding a new transaction:
```
- transferred 2000 from brac to dbbl on 2020-01-01 note "Bill payment"
- spent 1000 for food-rest on "Jan 13, 2013" from dbbl note "Lunch"
- earn 5000 to brac on 20-01-2023 note "Salary"
- borrow 1000 from user to brac on 2020-01-01
- return 1000 to user from brac on 2020-01-01
- lend 1000 to user from brac on 2020-01-01
- recover 1000 from user to brac on 2020-01-01
```Expand to see the Allowed Transaction Subcategory list
```
Food (food):
- Restaurants (food-rest)
- Groceries (food-groc)
- Takeout (food-take)
- Snacks (food-snack)
- Fruits (food-fruit)
- Beverages (food-bev)Housing (house):
- Rent (house-rent)
- Utilities (house-util)
- Furniture (house-furn)
- Electronics (house-elec)
- Real State (house-real)Entertainment (ent):
- Movies (ent-movie)
- Subscription (ent-sub)
- Recreation (ent-rec)
- Books (ent-books)Personal Care (pc):
- Salon (pc-salon)
- Toiletries (pc-toilet)
- Gym (pc-gym)
- Clothing (pc-cloth)
- Health (pc-health)
- Medicine (pc-med)Travel (trv):
- Accommodation (trv-accom)
- Dining (trv-dine)
- Sightseeing (trv-sight)
- Transportation (trv-trans)
- Gifts (trv-gift)Financial (fin):
- Salary (fin-sal)
- Deposit (fin-deposit)
- Withdraw (fin-with)
- DPS (fin-dps)
- Credit Card Payment (fin-ccpay)
- Bank Transfer (fin-bank)
- Loan (fin-loan)
- Loan Recovery (fin-recover)
- Borrow (fin-borrow)
- Borrow Return (fin-return)
- Tax (fin-tax)
- Charges (fin-charge)
- Mobile Recharge (fin-flexi)Miscellaneous (misc):
- Initial Amount (misc-init)
- Giveaway (misc-give)
- Miscellaneous (misc-misc)
```You always can send `/cat` command to list the subcategory
### Available commands:
- `/new` - Add new Transaction, Account or User
- `DebtorsCreditors` - Add new debtor or creditors
- `Account` - Add new account (Cash, Bank)
- i.e: `brac "BRAC Bank"`
- i.e: `cash "Cash in Hand"`[//]: # ( - `txn` - Add new transaction)
[//]: # ( - through some flags)
[//]: # ( - i.e: ` -t= -s= -f= -d= -u= -r=`)- `/newtxn` - Add new transaction
- Add a new transaction through a series of callback queries.
- `/users` - List users
- list all the persons involved in some loan/borrow with the system user
- `/balance` - List Account Balance
- list all the registered accounts and their balance
- `/expense` - Fetch Expense of Current month
- list transactions of current month
- `/summary` - Transaction summary of current month
- list transaction summary of current month
- `/allsummary` - Transaction summary based on Type, Category, Subcategory
- list transaction summary based on Type, Category, Subcategory
- with a duration query parameter
- `/report` - Transaction Report
- list transaction report
- with a duration query parameter
- `/cat` - List Transaction categories
- list all the registered categories
- by selecting a category, list all the registered subcategories of that category
- `/help` - Show Usage page## Live Demonstration
https://github.com/masudur-rahman/expense-tracker-bot/assets/13915755/83db45c8-1e84-473e-8d58-cda6ef8cc6ef
## Future Work
A list of possible future work:
- [ ] Add support for undoing a transaction
- [ ] Add Database backup and restore support
- [ ] Add support for multiple users## Self Hosting
If you want to host your own `Expense Tracker Bot`, refer to the [self-hosting](./docs-selfhost) doc page.
## Contacts
Telegram - [masudur-rahman](https://t.me/masudur_rahman).