Start with the consumer
An OCR workflow is only useful when its extracted text fits the next step. First decide whether the consumer needs plain text, individual fields, or a document to review.
Make room for review
Think through how a user can compare extracted text with the source image and correct a mistake. The interface around recognition deserves as much attention as the extraction step.
Choose representative examples
Build a test set from the sorts of images the application is meant to handle. Keep difficult examples in that set, and distinguish an empty result from an application error.
Project connection
My academic OCR project used Python and Tesseract to extract text from images, with Docker for the environment. These questions provide a framework for extending that type of application; they are not claims that every feature was implemented in the original project.