Go Paperless
As the name suggests, Go Paperless is an application for enabling to manage classic paper documents digitally. It provides functionality to index and analyze scanned documents and provide searchable PDFs.
The main goal is to help people with organizing their paperwork.
Functionalities
- User management
- Document management
- Upload of scans
- Indexing of scanned documents
- Text recognition of scanned documents
- Creation of searchable PDFs based on scans
Dependencies
Next to the implicit Go dependecies itself, Go Paperless relies on some third-party software:
- Go Paperless will require some common database system for storing its data. Right now, SQLite and Postgres are supported.
- Recognizing, analyzing and the creation of searchable PDFs are done by Tesseract OCR.
- As above tasks need some time for processing, they are done asynchronously. On various user actions, Go Paperless will send async jobs to the Faktory job processor. In a second step it will fetch jobs from there and do the expensive work in background.
- For full-text search, documents are indexed using Bleve.
Configuration
Go Paperless is fully configurable through environment variables. See config.go for all configuration options.
Running locally
Executing Go Paperless locally is easy if you have docker installed. Run the following series of commands in order to start the application:
$ make build-docker && docker-compose up
Use the provided Postman collection and start try out the software. Visit localhost:7420 for the Faktory job dashboard.