Skip to content

About

Local-first C++/Qt desktop app for OCR-assisted bank-statement extraction, review, and Excel export.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

FOSSredder

FOSSredder

Stable pipeline Stable coverage Nightly pipeline Nightly coverage

FOSSredder is a deliberately overengineered Windows desktop application built for a concrete, real-world use case: extracting structured data from PDF bank statements issued by Commerzbank, a major German banking institution, in order to automate the annual allocation of recoverable costs to tenants.

The application replaces a manual, Excel-based workflow with a semi-automated pipeline. It extracts transaction data from PDF statements using OCR and heuristic parsing, followed by a custom matching engine that pre-fills entries by linking them to specific actors, properties, and contracts. A dedicated review interface allows for human-in-the-loop validation, streamlining the process of identifying recoverable costs before the final export back into a structured Excel format.

While the core problem could be addressed with simpler scripts, this project also serves as an engineering exercise in modular system design, extensibility, automation, and AI-assisted development workflows.

Technology Stack

  • Application: C++20, Qt 6, QML / Qt Quick
  • Architecture: Modular CMake targets for core, persistence, ui, infra, and app
  • Data & Persistence: SQLite, nlohmann-json
  • Document Processing: Poppler, OpenCV, Tesseract
  • Testing & Quality: GoogleTest, clang-tidy, LLVM coverage, Codecov
  • Build & Packaging: CMake, vcpkg, Inno Setup, GitHub Actions
  • Documentation: Doxygen, GitHub Pages
  • Localization: Qt Linguist catalogs, bundled Tesseract OCR models
  • Platform: Windows 10+

Quick Start

Prerequisites:

  • CMake 4.0.1 or newer
  • vcpkg in manifest mode
  • A Windows C++ toolchain supported by the configured CMake presets
  • Inno Setup 6 when building the Windows installer

Minimal setup:

git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
C:\vcpkg\bootstrap-vcpkg.bat
[Environment]::SetEnvironmentVariable('VCPKG_ROOT', 'C:\vcpkg', 'User')

Build the app:

cmake --preset app
cmake --build --preset release-app

Fast Ninja app build:

cmake --preset app-ninja-fast
cmake --build --preset release-app-ninja-fast

Run tests:

cmake --preset tests
cmake --build --preset release-tests
ctest --preset release-tests --output-on-failure

Build the Windows installer:

cmake --build --preset release-installer

Installer output:

.build/app/dist/FOSSredder-Setup-<version>-win-x64.exe

Project Links

About

Local-first C++/Qt desktop app for OCR-assisted bank-statement extraction, review, and Excel export.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages