Code Monkey home page Code Monkey logo

mydollarbot-botgo's Introduction

๐Ÿ’ฐ TrackMyDollar V4.0 - Budget On The Go(BOTGo) ๐Ÿ’ฐ

https://www.youtube.com/watch?v=9fJScubX-cI

This video shows only the new features and enhancement of some older features. All the other features from phase 3 are working as it is.


Expense tracking made easy!


MIT license Platform GitHub GitHub contributors DOI Test and Formatting

GitHub issues GitHub closed issues Fork


About TrackMyDollar

TrackMyDollar 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
  • Add a recurring expense
  • User can add a new category and delete an existing category
  • User can see the budget value for the total expense
  • Added pie charts, bar graphs with and without budget lines
  • Deployment on GCP

What's new? (From Phase 3 to Phase 4)

  • Email Transaction History: Users can request their complete transaction history via email for easy access and record-keeping.
  • CSV Transaction History Extraction: Users can download their transaction history in CSV format, providing a versatile data export option for analysis.
  • Receipt Management: Users can upload and retrieve receipts for specific transactions by date, simplifying expense tracking and documentation.
  • Transaction Limit Notifications: Users can set transaction limits and receive alerts when expenses exceed the specified limits, helping them stay within budget.
  • Github Actions Automation: Automated testing, code formatting, and syntax checks have been implemented through Github Actions. A minimum 80% code coverage is required for successful builds, ensuring code quality and testing standards are maintained.

What more can be done?

Please refer to the issue list available here to see what more can be done to make MyDollarBot better. Please refer to the MyDollarBot project present here to have a look at the tasks done or in progress

Demo

Project.2.mp4

Installation guide

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:

  1. Clone this repository to your local system.

  2. 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
  1. 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".

  1. 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.

  2. Copy the token provided by the bot and add/replace it in the user.properties file (in the format api_token=<your_token>).

  3. 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: You may require to run chmod +x run.sh on mac/linux)

A successful run will generate a message on your terminal that says "TeleBot: Started polling."

  1. 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!

Testing

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

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

Please note: A coverage below 80% will cause the build to fail.

Notes:

You can download and install the Telegram desktop application for your system from the following site: https://desktop.telegram.org/


Title:'Track My Dollar'

Version: '4.2'

Description: 'An easy to use Telegram Bot to track everyday expenses'

Authors(Iteration 4):'Anuj, Bhavesh, Jash, Vaibhavi'

Authors(Iteration 3):'Vraj, Alex, Leo, Prithvish, Seeya'

Authors(Iteration 2):'Athithya, Subramanian, Ashok, Zunaid, Rithik'

Authors(Iteration 1):'Dev, Prakruthi, Radhika, Rohan, Sunidhi'

mydollarbot-botgo's People

Contributors

radhikaraman20 avatar sak1997 avatar sak007 avatar sunidhihegde avatar prakruthisomashekar avatar deekay2310 avatar wizard-31 avatar zedunaid avatar bhaveshittadwar avatar vaibhavisangawar avatar itsjash avatar vrajchokshi31 avatar anuj672 avatar rjain09 avatar alex308248 avatar rohansinha96 avatar prithvish-doshi-17 avatar seeyapm avatar gggho0806 avatar

Stargazers

 avatar

mydollarbot-botgo's Issues

Improve two test cases

The display.md files has two test cases
To display the budget for a current date and display the same category wise. These tests have been commented and fail.
they can be found here https://github.com/anuj672/MyDollarBot-BOTGo/blob/development/test/test_display.py#L113

THE REASON IS
The data for testing is pulled from https://github.com/anuj672/MyDollarBot-BOTGo/blob/main/test/dummy_expense_record.json

The function that these test check require the date in real time.

The task is to find a way to populate the json files in real time or look for an alternative testing mechnaism

Convert the storage to a database

The BOT runs in a fashion where any data which the user provides is stored locally in a expense_record.json.
The functionality shouuld be able to communicate with a database and make real time changes instead of maintaining a json file

Add a multicurrency featture

The bot does not have a feature to track multiple currencies ie A user should be able to record an expense in multiple currencies.
An example would be adding an expense for food - 10 USD and then adding another expense for food RUPEES 10, the entire base should be able to adjust and give graphs/spends/budget according to users prefered currency

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.