A Scanning App Written in Elm
This project turns an ordinary scanner connected to a GNU/Linux computer into a network scanner with an app interface aimed primarily at smart phones. The computer hosts a web frontend written in Elm. It controls the scanner with a backend written in Python. This backend communicates with the browser via Ajax requests intercepted by Python Flask. Scanned images are stored in a local cache on the server, which also provides Network Attached Storage (NAS). A PDF can be generated from all the images on display at the touch of a button. The PDF and the individual images can be downloaded or saved onto the NAS.
The frontend uses a simple and intuitive UI for individual images. Images can be easily deleted, rotated 180 degrees, and moved up and down in order. This is as simple and easy as scanning gets, and in my view the way it should work.