Link to Demo of Phase 4 - https://www.youtube.com/watch?v=Q4XcCcaFqmo
MyExpenseBot shows the features added to the exisiting TrackMyDollar to improve scalability.
MyExpenseBot is an easy-to-use Telegram Bot that assists you in recording your daily expenses on a local system without any hassle With simple commands, this bot allows you to:
- Add/Record a new spending
- Show the sum of your expenditure for the current day/month
- Display your spending history
- Clear/Erase all your records
- Edit/Change any spending details if you wish to
- Recurring expense: Add a recurring expense that adds a certain amount every month to the user's spending, for any given category.
- Custom category: User can add a new category and delete an existing category as per the needs
- Budgeting: User can see the budget value for the total expense and/or for each of the existing categories in the /display function
- Better visualization: Added pie charts, bar graphs with and without budget lines for the user to have a look at the spending history in a better manner Added bar graph in the /history command to see spending across different categories User can see the daily and monthly expenses for spending history.
- Deployment on GCP (the bot is now available, and can be used on any device by searching for @testforbudgetmanagerbot on Telegram)
The new design of the Telegram Bot resolves the issues of the Phase 3
- Income Feature and Cash Flow graphs- Users can add income of the user as the telegram bot is used for storing the daily expenses. Graphs are implemented for tracking income.
- Pdf Feature- User can record his/her income and daily expenses in a pdf format.
- Add Calender Feature- Users can store the input date of their income and expenses
- Edit Calender Feature-Users can edit the input date entered in future.
- Display summary of expenses (category-wise, duration-wise) in sorted (descending) order.
- Support for other currencies- users can choose their choice of currency for conversion(edit/update in the history) for any transaction.
Please refer to the issue list available here to see what more can be done to make MyExpenseBot better. Please refer to the MyExpense project present here to have a look at the tasks to be done, tasks currently in progress and tasks already done.
https://www.youtube.com/watch?v=BCTuqfJO7S0
The below instructions can be followed in order to set-up this bot at your end in a span of few minutes! Let's get started:
-
Clone this repository to your local system.
-
Start a terminal session in the directory where the project has been cloned. Run the following command to install the required dependencies:
pip install -r requirements.txt
- In Telegram, search for "BotFather". Click on "Start", and enter the following command:
/newbot
Follow the instructions on screen and choose a name for your bot. After this, select a username for your bot that ends with "bot".
-
BotFather will now confirm the creation of your bot and provide a TOKEN to access the HTTP API - copy and save this token for future use and update this token in the user.properties file to connect this project to the telegram bot.
-
In the directory where this repo has been cloned, please run the below command to execute a bash script to run the Telegram Bot:
./run.sh
(OR)
bash run.sh
Please note that it will ask you to paste the API token you received from Telegram in step 4. A successful run will generate a message on your terminal that says "TeleBot: Started polling."
- In the Telegram app, search for your newly created bot by entering the username and open the same. Now, on Telegram, enter the "/start" or "/menu" command, and you are all set to track your expenses!
We use pytest to perform testing on all unit tests together. The command needs to be run from the home directory of the project. The command is:
python -m pytest test/
Code coverage is part of the build. Every time new code is pushed to the repository, the build is run, and along with it, code coverage is computed. This can be viewed by selecting the build, and then choosing the codecov pop-up on hover.
Locally, we use the coverage package in python for code coverage. The commands to check code coverage in python are as follows:
coverage run -m pytest test/
coverage report
You can download and install the Telegram desktop application for your system from the following site: https://desktop.telegram.org/
Title:'Track My Income and Expense'
Version: '4.1'
Description: 'An easy to use Telegram Bot to track everyday income and expenses'
Authors(Iteration 4):'Anvitha, Nainisha, Vaishnavi'
Authors(Iteration 3):'Vraj, Alex, Leo, Prithvish, Seeya'
Authors(Iteration 2):'Athithya, Subramanian, Ashok, Zunaid, Rithik'
Authors(Iteration 1):'Dev, Prakruthi, Radhika, Rohan, Sunidhi'