Hi,

I've released project components as standalone apps in the past (
https://github.com/rosarior/django-replication, 
https://github.com/rosarior/pdf-form-fill) but there didn't seem to be much 
demand, at least at the time.

Mayan EDMS components are already very decoupled from each other.  Most 
apps from Mayan EDMS themselves come from another project of mine called 
Imhotep which is a meta framework built on top of Django for rapid web app 
development.  You can take the navigation, permissions, web_theme, common 
and smart_settings apps and develop a brand new Django project in just a 
couple of hours.  However Mayan EDMS on the whole has grown so much as a 
Django project that is it not feasable to develop it as a Django app to be 
integrated into another project, the functionality of several app 
(metadata, indexing, linking, tags) would have to be crammed into a single 
app.

Apps in Mayan come in about three forms: generic base apps, project-centric 
apps, and functionality apps.  The generic base apps: common, navigation, 
permissions, smart_settings, web_theme can be re-used in other projects 
with very little change, the project-centric apps: documents, main, 
document_indexing, document_comments are designed specifically for use with 
Mayan EDMS, hence the 'document_' prefix, these apps in turn are usually 
just a glue app for the functionality app, ie: document_comments links the 
document app with Django's generic comment app, document_acls links the 
project's documents app with the generic stand alone ACLs app, so does 
document_signatures with the django_gpg app.  

The Document model is a basic as possible, having as little fields as 
possible.  To extend functionality on Mayan EDMS create a new app that 
links to the Document model and add your required fields.  This is pretty 
much Django's development philosophy too.  Like any big project the best 
way to integrate Mayan EDMS into a solution involving other software is via 
API calls.  Use the rest_api app to add the end points you need 
for interfacing with Mayan EDMS from your project.

Thanks,

--Roberto

On Monday, October 1, 2012 1:40:01 PM UTC-4, Lie Ryan wrote:
>
> Is there any plans to make Mayan into a more reusable apps? Currently, 
> Mayan seems to be designed as a project and is fairly difficult to 
> integrate into an existing project. Also, there seems to be no clear 
> path to use just parts of Mayan; for example, I certainly can use 
> document visualization (thumbnailing), OCR, and metadata/content 
> extraction for our project, but I don't need Mayan's user and permission 
> management (as we have a our own permission management) and we don't 
> need many features in Mayan's document creation features that makes it a 
> complicated multi-step wizard, and I want to implement search 
> differently. Also, there seems to be no clear way to provide your own 
> Document model without modifying Mayan itself. 
>
> Currently the only way to extend Mayan seems to be modifying Mayan 
> itself and the only way to use Mayan is to use Mayan's project. Is there 
> any plans to decouple parts of Mayan so it can be used without the rest 
> of Mayan? I think there is a value in releasing some of Mayan's modules 
> as external modules that can be installed from PyPI. 
>
>

-- 



Reply via email to