Discovering Mayan EDMS

Mayan EDMS is an Open Source Django-based enterprise class document management system In this series I’ll share what I have learned installing, customizing, and extending the platform to build a custom application.

I was looking for a Django application that could manage file uploads, and instead of a simple Javascript file upload widget, I discovered much more. Mayan EDMS is truly an enterprise level document management system. It is quick to install using Docker images, or even from Django/Python packages, if that is your thing. Instead of uploading files a few at a time over a web interface, my application can now automatically import documents from a staging folder, and establish workflows and document status, as well as handle my custom application.

I needed to develop a system to manage thousands of PDFs, obtained from manufacturers of products. In addition to managing the PDFs, which is exactly the strengh of Mayan EDMS, I needed to maintain the database of manufacturers, and additional product information related to the PDF documents, as well as map the documents into collections based on multiple clients.

Mayan EDMS is well designed to be extended. I was able to quickly add my custom model to the Mayan system. Mayan uses a declarative syntax to define how your custom model fits into the system. Once you add your custom model, it is seamlessly available in the menus and user interface. If needed you can customize everything down to the tiniest level, rewriting the menus as necessary to guide your users through their specific business need, including powerful workflow and automation features.

I was able to map my custom document model to an existing set of business specific models without any trouble, just adding the correct foreign key references to the custom model. After that I was able to build up display and form views and templates that refer back to the Mayan standard views and templates.

Mayan is mature application you can use out of the box to manage document import, classification, metadata, storage, and sharing. Not only that, it is also well designed for building custom applications. Right now the documentation can leave you wondering which way to go. There is an inexpensive, but throrough book available that is an excellent overview of everything you need to know. The workflow and automation documentation examples can use some work, and as I become more confident, I will see how I can contribute to improve the online documentation. And if you ever get stuck, looking at the code in the various apps provied by Mayan EDMS will be the best way to learn how it work.

In addition to the online documentation, and the book, there is live documentation right in the system for the APIs and REST endpoints, as well as a discussion forum to learn and collaborate with other Mayan EDMS users and developers.

As I learn more I’ll post about setting up the system, adding a custom document model, and building out a custom application.