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.
- In a virtual machine, install signal-cli: https://github.com/AsamK/signal-cli
- Create a new Signal account. (The phone number for this account will be the $USERNAME)
- Install sqlite3: apt install sqlite3
- Clone this repository:
git clone https://github.com/originates/cashTrack.git
- Navigate to the cloned repository:
cd cashTrack
- 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
- start the signal-cli daemon using
signal-cli -u "$USERNAME" daemon &> "/dev/null" &
- Run
./cashTrack
to start the program.
To use the program, users can use the following commands:
r
for requests
for sendxx
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.'
If you find any bugs or issues with this project, please open an issue on GitHub.
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/>.