Система управления документами наподобие Alfresco, но написанная на Python или Haskell?

См. Alfresco Community Edition (LGPL v3): https://en.wikipedia.org/wiki/Alfresco_(программное обеспечение)

В частности, мне нужно что-то, что будет соответствовать всем следующим условиям:

  • управлять несколькими версиями документов (скажем, XML, .doc, .docx, которые переводятся, вычитываются и т. д., с видимым следом изменений и т. д.)

  • иметь программируемый бизнес-процесс

  • быть расширяемым в том смысле, что он написан достаточно хорошо (качество кода), чтобы обе основные модификации были практичными, и, возможно, путем написания для него плагинов.

  • по предмету, быть написанным на Python или Haskell (предпочтительно, хотя и не обязательно)

  • Открытый исходный код

  • желательно иметь REST API для бизнес-процессов (скажем, запросить, был ли документ обновлен, загрузить документ, уведомить заинтересованную сторону проекта и т. д.)

Пример сценария использования

Предположим, у вас есть бюро переводов. Есть заинтересованные стороны проекта, такие как заказчик, менеджеры проекта, переводчики, QA.

Клиент должен иметь возможность загружать и получать документы в ограниченном веб-интерфейсе. PM должен иметь возможность видеть весь проект и распределять работу (несколько файлов) между переводчиками. Переводчик должен иметь возможность скачать и загрузить отредактированную версию. QA должен быть в состоянии разрешить/заблокировать переведенный документ. После того, как все будет переведено и одобрено QA, должна быть возможность запрограммировать механизм бизнес-процесса либо для уведомления Заказчика о том, что его заказ готов, либо для программатора или даже для модификации (конфигурации) PM вместо этого уведомить PM для окончательного утверждения. И т.п.

Механизм бизнес-процессов должен быть программируемым для обеспечения регистрации событий (таких как загрузка документа переводчиком Джейн Доу в проект 5), их создания и т. д.

Спасибо за ваше обновление! Но все же немного широковато. «Управление документами:» Если это отсутствует, это не DMS, верно? ;) "Быть расширяемым": каким образом? Ознакомьтесь с похожими вопросами и, в частности, см. Простое сканирование/тег/каталог документов с открытым исходным кодом, более легкое, чем Alfresco и облегченная DMS со встроенным REST API (оба запрашивают альтернативы Alfresco).
Возможно , OwnCloud может стать для вас отправной точкой. OwnCloud написан на PHP, но имеет отличный REST-API и доступные клиентские библиотеки Python. Ваш рабочий процесс не доступен из коробки, это вам придется делать самостоятельно, например, в Python.
Просто любопытно, почему Python/Haskell? Если это касается параллелизма, подойдут ли решения на основе Scala или Erlang?
@NicolasRaoul: ну, это мой набор навыков (Python) или то, что я предпочитаю улучшать (Haskell) :-) Другие языки тоже подойдут, но лично для меня они предпочтительнее.

Ответы (1)

CPS — это «старый» код Python Nuxeo до перезаписи Java: http://cps-cms.org/sections/index-en .