Skip to content

PennyPilot – Your lightweight personal finance tracker. Track income and expenses, organize by categories, and maintain clear financial oversight. Fast, efficient, and open-source. Build with speed and reliability while keeping your budget in check.

License

Notifications You must be signed in to change notification settings

joelwizard404/PennyPilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

PennyPilot

Your lightweight personal finance tracker in C++

PennyPilot is a fast, efficient budget tracker for managing your personal finances. Track income and expenses, organize them by categories, and maintain a clear overview of your financial health. Built with modern C++ for speed and reliability.

Features

  • Track income and expenses with intuitive UI
  • Categorize transactions with custom colors and icons
  • Visual charts and reports (monthly/yearly summaries)
  • Persistent data storage with automatic backups
  • Fast performance with modern C++
  • Clean, user-friendly graphical interface
  • Export to CSV for further analysis
  • Light and dark theme support

Quick Start

Prerequisites

  • C++17 or higher
  • CMake 3.15+
  • Modern C++ compiler (GCC, Clang, MSVC)
  • UI Framework (choose one):
    • Qt6 (recommended) - sudo apt install qt6-base-dev qt6-charts-dev (Linux)
    • ImGui + GLFW - Lightweight alternative
    • wxWidgets - Native look & feel

Installation

git clone https://github.com/yourusername/pennypilot.git
cd pennypilot
mkdir build && cd build
cmake ..
make

Run

./pennypilot

📖 Usage

Graphical Interface

Simply launch the application and use the intuitive GUI:

./pennypilot

Programmatic API

// Create a transaction
Transaction expense("Groceries", -42.50, "Food");
expense.setDate(std::chrono::system_clock::now());

// Add to ledger
Ledger ledger;
ledger.addTransaction(expense);

// Get balance
double balance = ledger.getBalance();

// Filter by category
auto foodExpenses = ledger.filterByCategory("Food");

// Generate monthly report
auto report = ledger.generateMonthlyReport(2026, 1);

Project Structure

pennypilot/
├── src/              # Source code
│   ├── core/        # Business logic
│   ├── ui/          # GUI components
│   └── storage/     # Data persistence
├── include/          # Header files
│   └── pennypilot/
│       ├── core/    # Core headers
│       └── ui/      # UI headers
├── resources/        # UI resources (icons, styles)
├── tests/            # Unit tests
├── data/             # User data storage
├── docs/             # Documentation
└── CMakeLists.txt    # Build configuration

Development

Build Options

# Debug build
cmake -DCMAKE_BUILD_TYPE=Debug ..

# Release build
cmake -DCMAKE_BUILD_TYPE=Release ..

Run Tests

make test
# or
ctest

Roadmap

  • Interactive charts and graphs
  • CSV/PDF import/export
  • Budget planning and alerts
  • Receipt attachments (image upload)
  • Multi-currency support
  • Dark mode theme
  • Recurring transactions
  • Cloud backup integration
  • Mobile companion app

Contributing

Contributions are welcome! Feel free to open a Pull Request or create an Issue.

License

MIT License - see LICENSE for details.

Author

joelwizard404

PennyPilot - Navigate your finances with ease ✈️

About

PennyPilot – Your lightweight personal finance tracker. Track income and expenses, organize by categories, and maintain clear financial oversight. Fast, efficient, and open-source. Build with speed and reliability while keeping your budget in check.

Topics

Resources

License

Stars

Watchers

Forks

Languages