This is about completing a C# WPF project that I have already worked on a bit. It's a paperless office tool that supports two different modes of operation:
1) It takes images from a TWAIN scanner, allows ordering those images (sheets of paper) into "documents" (the first three pages coming from the scanner may be document 1, the next page might be document 2), and finally converts those into OCR'ed PDF/A documents. It allows entering a filename and keywords, and provides helpers for this step, specifically: suggesting keywords that have been used in the past.
2) It takes PDF documents added via Drag&Drop, and like in mode (1) allows the user to enter a filename and keywords, with two differences: It is not possible to reorder/delete/change the pages of such a PDF; and to choose a filename, a helper makes suggestions based on text found in the PDF.
In each mode, upon saving, the final PDF file is written to a predefined directory, with the chosen filename and the chosen tags as metadata.
The app does not have to be able to create PDF files per se for this; it needs to be able to write keyword metadata (it currently uses iTextSharp). The PDF/A files are created by the OCR engine. The OCR engine will be pluggable. What I am looking for here is an interface to Tesseract, as well as to Abbyy Cloud OCR.
A simple and well-designed UI is tremendeously important to me. Processing incoming documents has to be as streamlined as possible:
- Simply using the keyboard (Enter/Tab), it has to be possible to iterate over every document, specifying the filename and the tags, causing the documents to be automatically saved to the destination directory as one moves along.
- It needs to be possible to undo a save, if further changes to it's pages are required after all. For this to work, the original images from the scanner need to be kept around, so that they can be sent to the OCR to be precessed/saved again.
- OCRing, saving etc. needs to happen in a thread so as to not block the UI.
- Unprocessed work needs to be saved transparently; that is, if I scan some pages and restart the app, those scanned pages are still available, in the document configuration I left them, waiting for me to continue working with them. For this, images coming from the scanner need to be saved in a temporary directory.
Generally, a bunch of things are already done: The app already interacts with the scanner, shows the documents and pages in two nested list views (a vertical list of documents, a horizontal list of pages), allows dragging&dropping pages between documents. Speficially, it is missing the interface to OCR, the ability to enter the metadata, various UI finetuning (keyboard shortcuts, context menus), and the permanent storage where unprocessed work is saved.
In choosing a bid, I would be particulary interested in any examples of UI work you have done; as well as open source code, if available. A Github account is always sexy. I will provide a full list of precise specifications for you to work with.
I would ask you to work directly with the existing git directory for this project.