Crates.io | minicount |
lib.rs | minicount |
version | 0.2.3 |
source | src |
created_at | 2024-04-18 10:10:25.456083 |
updated_at | 2024-05-13 12:36:45.321728 |
description | A small refund application |
homepage | https://gitlab.com/mojo42/minicount/ |
repository | |
max_upload_size | |
id | 1212367 |
size | 77,291 |
Minicount is a console-based, Libre Software clone of Tricount application.
It's goal is to minimize the number of repayments in a group of people in a Keep It Simple Stupid way: no mobile app, no database, no server.
Describe in a yaml file your expense and let minicount outputs the details.
Check example.yml
file to understand the syntax and make your own.
Tricount basically transform a yaml file like this:
$cat example.yml
# In this example, we have 3 people: Alice, Bob and Charly
---
# Alice paid a pizza for Bob (and for herself)
- who: Alice
price: 35
what: pizza
for:
- Alice
- Bob
# Alice paid a restaurant to eveybody, no need to add all names
- who: Alice
price: 100
what: sunday's restaurant
# Charly paid some books for Bob
- who: Charly
price: 53
what: books
for: [Bob]
# Bob paid ice creams to Charly and Alice
- who: Bob
price: 35
what: ice creams
for: [Alice, Charly]
and transform it into text report you can send to your friends:
$ minicount example.yml
# Bills
- Alice paid 35.00 (pizza for Alice, Bob)
- Alice paid 100.00 (sunday's restaurant for everybody)
- Charly paid 53.00 (books for Bob)
- Bob paid 35.00 (ice creams for Alice, Charly)
# Balances
- Bob: +68.83
- Charly: -2.17
- Alice: -66.67
# Refunds
- Bob pays 66.67 to Alice
- Bob pays 2.17 to Charly
A full explanation is available in sources (see src/main.rs
).
I got the same results as Tricount application for a complex example so I suppose that's the same algorithm.
$ cargo install minicount
You will need to install Rustlang and then build the project:
$ cargo build --release
You will then find the program in target/release/minicount
.
This whole project is licensed under GNU Affero General Public License v3 (AGPL-3.0).
The GNU Affero General Public License can be found at https://www.gnu.org/licenses/agpl.html.
For an overview of AGPL-3.0, check tldrlegal.