Skip to content

🗄️ An application that organizes your PDF inbox using machine learning

Notifications You must be signed in to change notification settings

fardage/OrdnerMeister

Repository files navigation


Logo

OrdnerMeister

A macOS app that helps you sort PDF files into your existing folder structure using machine learning.

Overview

OrdnerMeister uses a Naive Bayes classifier to automatically organize PDF files based on your existing folder structure. The app learns from how you've already organized your files and uses this knowledge to intelligently classify new documents.

Key Features

  • Automatic PDF Classification: Uses machine learning to predict the best folder for each PDF
  • OCR Integration: Automatically extracts text from scanned PDFs using Apple's Vision framework
  • Smart Learning: Trains on your existing folder structure to understand your organization system
  • Preview & Verify: Review classification results before moving files
  • Native macOS App: Built with SwiftUI for a modern, native experience

OrdnerMeister Demo

How It Works

  1. Training: OrdnerMeister scans your output folder structure and existing PDFs to build a classification model
  2. Text Extraction: For each new PDF, it extracts text content (performing OCR if needed)
  3. Classification: The Naive Bayes classifier analyzes the text and predicts the most appropriate folder
  4. Review: You can review the suggestions and confirm or adjust the destination before moving files

Requirements

  • macOS 14.0 (Sonoma) or later
  • Xcode 16.0+ (for development)
  • Swift 6.2+

Installation

For Users

Download the latest release from the Releases page.

For Developers

# Clone the repository
git clone https://github.com/fardage/OrdnerMeister.git
cd OrdnerMeister

# Open in Xcode
open OrdnerMeister.xcworkspace

# Build and run (⌘R)

Usage

  1. Launch the OrdnerMeister app
  2. Open Settings (⌘,):
    • Select the input folder containing PDF files you want to sort
    • Select the output folder with your existing organized folder structure
  3. Click the Run button to start the classification process
  4. Review the classification results and confirm the suggested destinations
  5. Files will be moved to their predicted folders

Architecture

OrdnerMeister follows a clean architecture pattern with clear separation of concerns:

  • OrdnerMeisterPresentation: SwiftUI views and view models
  • OrdnerMeisterDomain: Business logic and domain models
  • OrdnerMeisterData: Data layer with file system operations and ML classifier

Key Technologies

  • SwiftUI: Modern declarative UI framework
  • Naive Bayes Classifier: Machine learning for document classification
  • Vision Framework: Apple's OCR for extracting text from scanned documents
  • Swift Concurrency: Modern async/await patterns for file operations

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests (⌘U in Xcode)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Please ensure:

  • Code follows Swift style guidelines
  • Tests are included for new features
  • The project builds without warnings
  • UI changes are tested on macOS 14+

License

This project currently does not have a specified license. Please contact the maintainer for usage rights.

Acknowledgments

  • Bayes - Naive Bayes classifier implementation for Swift
  • Apple's Vision framework for OCR capabilities

About

🗄️ An application that organizes your PDF inbox using machine learning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages