Git Product home page Git Product logo

richkmls / cashtrack Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 83 KB

CashTrack is a powerful tool that helps you split bills without splitting them. It's easy to use and helps you keep track of your expenses with a friend or family member.

License: GNU General Public License v3.0

Shell 100.00%
bash money-management sqlite3 automation bill-splitting budgeting command-line finance linux peer-to-peer

cashtrack's Introduction


cashTrack:sparkles:

Split the bill without splitting the bill



cash track example



CashTrack is a powerful tool that helps you split bills without splitting them. It's easy to use and helps you keep track of your expenses with a friend or family member.

CashTrack is a bash script that allows two people to pay for each other for various bills such as groceries, rent, gas, etc. It leverages signal-cli to track who has been spending more and allows the other person to make up the difference by spending money on the next bill. The goal is to keep the difference spent between both individuals around 0 dollars. All transactions are stored in an SQL database and each user can use the Signal messenger application to virtually send and request money. This tool is intended to be used with a dedicated signal account.

Installation

  1. In a virtual machine, install signal-cli: https://github.com/AsamK/signal-cli
  2. Create a new Signal account. (The phone number for this account will be the $USERNAME)
  3. Install sqlite3: apt install sqlite3
  4. Clone this repository: git clone https://github.com/originates/cashTrack.git

Setup

  1. Navigate to the cloned repository: cd cashTrack
  2. Modify the signal names and phone numbers in cashTrack to match the 2 users who will be using cashTrack
  • perA="EXAMPLE USER A"
  • perB="EXAMPLE USER B"
  • Aphone=15555555555
  • Bphone=15555555555
  1. start the signal-cli daemon using signal-cli -u "$USERNAME" daemon &> "/dev/null" &
  2. Run ./cashTrack to start the program.

Usage

To use the program, users can use the following commands:

  • r for request
  • s for send
  • xx to remove the last entry

CashTrack Example Usage:
1.) Erica and Sam go to a coffee shop. Erica buys a coffee as well as a coffee and a donut for Sam.
2.) Erica then sends the message r 6.04 coffee and donut to signal-bot since she wants to request that money from Sam.

This will add 6.04 to Erica's balance and subtract 6.04 from Sam's balance.
Both users will be notified instantly that the transaction succeeded and will tell them their new balance.
The message will also include the note 'coffee and donut.'

Reporting Bugs or Issues

If you find any bugs or issues with this project, please open an issue on GitHub.

License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

cashtrack's People

Contributors

richkmls avatar

Stargazers

 avatar

Watchers

 avatar

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.