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.
- 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+
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-appFast Ninja app build:
cmake --preset app-ninja-fast
cmake --build --preset release-app-ninja-fastRun tests:
cmake --preset tests
cmake --build --preset release-tests
ctest --preset release-tests --output-on-failureBuild the Windows installer:
cmake --build --preset release-installerInstaller output:
.build/app/dist/FOSSredder-Setup-<version>-win-x64.exe
- Design: Design documentation
- Code Reference: Doxygen documentation
- Coverage: Coverage report
- Releases: GitHub releases
- License: MIT License