Git Product home page Git Product logo

papermerge's Introduction

Unittests Docker Image Docker Pulls Contributors

Papermerge

Papermerge - Document Management System

Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.

Papermerge DMS on its turn will OCR the document and index it. You will be able to quickly find any (scanned!) document using full text search capabilities.

It is built on Django 3.1.

Papermerge is actively developed and we release quite frequently.

This is web-based software. This means there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser.

Screenshot 01

Right Tool For You?

To be efficient you always need to choose right tool for the problem. Because Document Management is too generic - I think that a definition of what is a Document in context of this software is needed.

For Papermerge a document is anything which is a good candidate for archiving - some piece of information which is not editable but you need to store it for future reference. For example receipts are perfect examples - you don't need to read receipts everyday, but eventually you will need them for your tax declaration. In this sense - scanned documents, which are usually in PDF or TIFF format, are perfect match.

Out of scope (at least for near future) are Office documents (ODT, DOCX....), text files (notes) which usually are editable. In future Papermerge might support Office documents (ODT etc), but that feature will be provided as plugins.

Papermerge is simply not designed to store books. Yes, you can scan a book and import it in Papermege, but again - this is not what Papermerge was designed for.

Features Highlight

  • Documents of pdf, jpg, png, tiff formats are supported
  • Desktop like user interface
  • Per page OCR of the documents
  • Full Text Search of the scanned documents
  • Versioning
  • User defined metadata per folder/document/page
  • Import documents from multiple sources (local disk, email, web upload, REST API upload)
  • Tags - assign colored tags to documents or folders (screencast demo)
  • Documents and Folders - users can organize documents in folders
  • Multi-User (Groups, Roles)
  • User permissions management
  • Document permissions management
  • REST API (screencast demo)
  • Page Management - delete, reorder, cut & paste pages (screencast demo)
  • Basic automation (screencast demo)

Testimonials

testimonials

Donations, Fundraising, Your Support

❤️ ❤️ ❤️

In case you find Papermerge useful, I modestly ask you to support Papermerge via a small donation. Even an amount as small as $9 will make a huge difference.

For donations, you can use three channels paypal, patreon and github itself:

💚 💚 💚

Live Demo

In live demo some of the features are disabled. For example you cannot manage users, API tokens. Folders/documents with a red lock are read-only for guest user.

  • Live demo
  • Username: guest
  • Password: password77a

Documentation and Other Resources

Papermerge has high quality, up-to-date and to the point documentation. Documentation contains lots of images, text and videos. It is regularly updated. If you spot outdated or incomplete article please open an issue on github - it will be handled immediately. Documentation issues have high priority.

Contributing

We welcome contributions! In general, if change is very small, like fixing a documentation typo, remove unused variable or minor adjustments of docker related files - you can create a pull request right away. If your change is small and reasonable it will be (very likely) almost immediately accepted.

For bigger changes, like a new feature or even change/add/remove of whole paragraph in documentation - please first discuss the change you wish to make via GitHub issue, pull request or email.

For more information, see the contributing file.

More Screenshots

Screenshot 02 Screenshot 03

Try it!

You can try it with just 3 simple commands (you need git and docker-compose):

git clone [email protected]:ciur/papermerge.git
cd docker/
docker-compose up

Docker compose command will pull all necessary docker images and start papermerge on http://localhost:8000. Access it with default username/password: admin/admin.

Installation

There are couple options:

Unit Tests

In order to run unit tests:

$ ./run_tests.sh

Which basically is same as:

$ DJANGO_SETTINGS_MODULE=config.settings.test
$ ./manage.py test papermerge/test/

Notice that you can pass any command line argument to run_tests.sh script and those arguments will be routed further to manage.py.

On multi-core processors it is much more efficient to use --parallel argument which splits test suite between CPU cores:

$ ./run_tests.sh  --parallel

On Dell-XPS laptop with 12-core i7 CPU it takes about 5 seconds to run all unit tests in parallel; without --parallel argument on same CPU it takes approximately 17 seconds to run them.

Another commonly used argument is --failfast. If --failfast argument is provided, a failed test will conveniently stop execution of entire test suite:

$ ./run_tests.sh --failfast

In order to run only views tests and stop if there is a failing test:

$ DJANGO_SETTINGS_MODULE=config.settings.test
$ ./manage.py test papermerge/test/views/ --failfast

Following command will run only tests from papermerge/test/views folder and show ALL python and django warnings:

$ DJANGO_SETTINGS_MODULE=config.settings.test
$ python -W all manage.py test papermerge/test/views/ 

Commercial Support

For commercial support, consulting and customization please contact us:

Other resources

papermerge's People

Contributors

ciur avatar francescocarzaniga avatar frenos avatar georgkrause avatar christianknedel avatar tido- avatar dependabot[bot] avatar alex1702 avatar futurecow avatar miry avatar twpedersen avatar amo13 avatar ebdavison avatar mtonnie avatar dannynhois avatar hactar avatar pvinis avatar phyberapex avatar pyromane avatar tomdyson avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.