Expense Counter is a small terminal application for tracking personal income and expenses. It stores data in a local SQLite database file and can show recent transactions, balance, and category totals.
- Add income and expense transactions.
- Store category, amount, note, and date.
- List recent transactions.
- Delete transactions by id.
- Show total income, total expenses, and balance.
- Show income and expenses grouped by category.
- Create the SQLite schema automatically on first run.
SQLite is vendored in thirdparty/sqlite3, so no separate SQLite package is required.
Install a C++ compiler and CMake:
sudo apt update
sudo apt install build-essential cmakeOptional, for Ninja builds:
sudo apt install ninja-buildcmake -S . -B build
cmake --build build./build/ExpenseCounterThe app creates expenses.db in the current working directory. Database files are ignored by git because they contain local personal data.
ctest --test-dir build --output-on-failurecore/ Business logic and validation
storage/ SQLite persistence layer
terminal_ui/ Interactive terminal interface
thirdparty/ Vendored SQLite source
tests/ Basic storage/core regression tests