• Stars
    star
    111
  • Rank 314,510 (Top 7 %)
  • Language
    C++
  • License
    MIT License
  • Created over 11 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Personal finance manager, command-line interface, in C++

budgetwarrior 1.1.0

Linux Build Mac OS Build MIT License

Simple command line utility to helps keeping track of your expenses and the state of your budget.

https://github.com/wichtounet/budgetwarrior/blob/master/screenshots/budget_report.png?raw=true

Personal accounting method

Not everyone manages its money the same way. budgetwarrior is based on my way of managing my money. It may not be adapted to everyone. I'm separating all my expenses in several "accounts" and I give each of them a certain amount of money each month.

Accounts are recipients for your expenses and earnings. They are not bank accounts, they only are logical recipients. Think of them as categories. The sum of the accounts should be equivalent to your salary.

For instance, if you have 1000$ per month, you could have three accounts:

  • Food (200$)
  • Car (300$)
  • House (500$)

That means you allow yourself to spend 200$ on food each month. Of course, some month you'll be lower or higher. And the tool will indicate you how well your accounts are doing, month by month and by year.

Features

budgetwarrior has several features:

  • Manages a set of account with a monthly limit
  • Keeps track of your expenses and earnings in each of your accounts
  • Gives you the state of your budget by month and by year
  • Keeps track of your debts
  • Manages recurring expenses that are automatically created monthly
  • Keeps track of your wishes
  • Keeps track of your current fortune

On the other hand, budgetwarrior:

  • Has no notion of bank, cash, credit card
  • Will not communicate with your ebanking tool to extract information

Starting guide

The wiki contains a guide for starting using budgetwarrior: Start-Tutorial

Installation

A Gentoo ebuild is available on this overlay: https://github.com/wichtounet/wichtounet-overlay

Arch Linux packages are also available on AUR: https://github.com/StreakyCobra/aur

For other systems, you'll have to install from sources.

Build from source

A modern compiler is necessary. I am working with GCC 13 and clang 16. You need to set the $CXX variable before executing make.

Linux

The tool is developed for Linux. You need libcurl and libuuid installed on your computer to build this project.

You just have to use make to build it:

$ git clone --recursive git://github.com/wichtounet/budgetwarrior.git
$ cd budgetwarrior
$ make
$ sudo make install

If you want to install the man pages and the shell completion files, you can do so with:

$ sudo make install_extra

MacOS

MacOS support is experimental. Using CMake and Homebrew, you can build from sources.

  1. First, install Xcode compiler toolchain via xcode-select --install if needed.

  2. Use Homebrew to install required dependencies. Download and install brew from https://docs.brew.sh if you don't already have it:

    $ brew install cmake
    $ brew install git
    $ brew install openssl
    

Now build using the provided script after cloning repository:

$ git clone --recursive git://github.com/wichtounet/budgetwarrior.git
$ cd budgetwarrior
$ ./build_macos.sh

To install the resulting, compiled program:

$ cd ./build && make install

Windows

If there is some interest on using it on Windows, it should not take too much work to port it to Windows. Just let me know (or make a Pull Request with the changes ;) ). .

Usage

Man pages and ZSH/Bash completions are also available.

The executable is named 'budget' and allows to perform all the commands.

Use:

$ budget help

Or:

$ man budget

if you have installed the man pages.

to see all the available commands.

If you want to use the web interface, you will need to use another project: https://github.com/wichtounet/budgetwarrior_web

Contributors

Read AUTHORS

Release Notes

Read ChangeLog

Contribute

The project is open for any kind of contribution : ideas, new features, bug fixes, tests, ...

If you want to contribute to this project, you can contact me by email or via my website. You can also directly fork the project and make a pull request.

Troubleshooting

Please consider using Github issues tracker to submit bug reports or feature requests. You can also contact me via my website.

License

This project is distributed under the MIT License. Read LICENSE for details.

More Repositories

1

thor-os

Simple operating system in C++, written from scratch
C++
1,637
star
2

dll

Fast Deep Learning Library (DLL) for C++ (ANNs, CNNs, RBMs, DBNs...)
C++
670
star
3

etl

Blazing-fast Expression Templates Library (ETL) with GPU support, in C++
C++
216
star
4

articles

Source code for my articles
C++
145
star
5

mnist

Simple C++ reader for MNIST dataset
C++
82
star
6

btrees

C++ implementation of concurrent Binary Search Trees
C++
72
star
7

swr-calculator

Safe Withdrawal Rate (SWR) Calculator
C++
52
star
8

sudoku_dataset

Dataset of Sudoku images for Machine Learning
C++
41
star
9

cpm

Continuous Perfomance Monitor (CPM) for C++ code
C++
40
star
10

cpp_utils

Collection of header-only utilities for C++
C++
35
star
11

eddic

Compiler of the EDDI programming language
C++
33
star
12

systemd-unit-files

Some unit files for systemd
32
star
13

frameworks

Lua
19
star
14

CMakeLatex

Simple CMake configuration for Latex
Awk
18
star
15

cifar-10

Simple C++ reader for CIFAR-10 dataset
C++
18
star
16

zabbix-lld

Script and template export for Zabbix LLD
Shell
16
star
17

dotfiles

My dot files
Lua
14
star
18

java-benchmarks

Performance benchmarks on the Java Platform
9
star
19

etl-gpu-blas

Mini BLAS-like library for GPU (complementary to CUBLAS)
C++
7
star
20

pm

Simple project manager in Python
Python
5
star
21

sudoku_recognizer

Program to detect and recognize Sudoku in images
C++
5
star
22

make-utils

Simple utility to easily write makefile for C++ projects
Makefile
5
star
23

eddivm

Eddi Virtual Machine
C++
4
star
24

word_spotting

C++
4
star
25

HazardManager

Utility class to use Hazard Pointers in C++ Concurrency Code
C++
4
star
26

gooda-to-afdo-converter

Converter from Gooda Spreadsheets to AFDO
C++
4
star
27

GraphMyData

Java
3
star
28

taskwarrior-php

A very simple PHP Front End Viewer for Task Warrior
PHP
3
star
29

jtheque-core

Framework to create modular applications in Java
Java
3
star
30

mafiaspacelife

Java
3
star
31

benchmark-utils

A little benchmark utility to bench Java Code and generate Graphs
Java
3
star
32

cpp_utils_test

Unit tests for cpp_utils
C++
3
star
33

inlining-analyzer

Analyze a callgraph to find the most interesting functions to inline in a C++ applications
C++
3
star
34

cppbench

Benchmark framework for C++ function
C++
2
star
35

analysis-examples

C++
2
star
36

spirit_x3_tests

C++
2
star
37

asgard-server

C++
2
star
38

tetris-ai

Tetris Clone for AI experiments
Java
2
star
39

ICM

International Contract Management
JavaScript
2
star
40

gcc-loop-fusion

GCC Loop Fusion
C++
2
star
41

aggregator-plugin

Sonar plugin to display metrics aggregated over all projects
HTML
2
star
42

dotfiles-vim

Dotfiles for vim
Vim Script
1
star
43

dll-autoencoders

C++
1
star
44

jtheque-films-module

A module of JTheque to manage a collection of films
Java
1
star
45

latex-makefile

A simple makefile for Latex
1
star
46

svm_mnist

C++
1
star
47

jtheque-books-module

A module of JTheque to manage a collection of books
Java
1
star
48

jtheque-tools-module

A module of JTheque providing several tools for other modules
Java
1
star
49

dbn_experiments

Experiments with DBN and RBM
C++
1
star
50

nice_svm

Wrapper around libsvm to make it easier to use and make the code nicer
C++
1
star
51

eddi-commons

Eddi Commons
C++
1
star
52

etl_vs_blaze

C++
1
star
53

VaadinBoard

Java
1
star
54

jtheque-demo-module-2

jtheque-demo-module-2
Java
1
star
55

dotfiles-pentadactyl

Dotfiles for pentadactyl
JavaScript
1
star
56

asgard-lib

Library for asgard system
C++
1
star
57

dotfiles-git

Dotfiles for git
1
star
58

pkg-config

Some of my pkg-config files
1
star
59

jtheque-xml-utils

Utility to write and read XML files
Java
1
star
60

jtheque-primary-utils

An utility module for JTheque
Java
1
star
61

jtheque-utils

Java Library providing general utilities (File, String, Swing, ...)
Java
1
star
62

jtheque-movies-module

A JTheque module to manage a collection of movies
Java
1
star
63

jtheque-unit-utils

A simple utility library to write unit test for file operations and for databases operations
Java
1
star
64

thesis-perfs

C++
1
star
65

jtheque-metrics-module

A module of JTheque to generate metrics about a Java project
Java
1
star
66

MarathonMillions

Le marathon des millions
C#
1
star
67

shell-tools

Reminder for common shell commands
1
star
68

jtheque-stats-module

A module of JTheque to display stats about films
Java
1
star
69

jtheque-demo-module-1

jtheque-demo-module-1
Java
1
star
70

jtheque-films-to-buy-module

A module of JTheque to manage a list of films to buy
Java
1
star
71

test-cppsqlite3

C++
1
star
72

dotfiles-zsh

Dotfiles for zsh
Shell
1
star
73

asgard-system-driver

C++
1
star
74

wichtounet.github.io

The sources of my blog (Generated with Nikola)
HTML
1
star
75

budgetwarrior_web

C++
1
star
76

jtheque-osgi-wrap

Maven wrapper to create OSGI bundle of non-bundle libraries
1
star
77

jtheque-web-search-module

A module of JTheque to search informations about films on internet
Java
1
star
78

jtheque-memory-module

A JTheque module to display the used memory
Java
1
star