Необходимо реализовать систему совместной работы проектной группы над документом с элементами task-менеджера. Топик не совсем о MODx, т.к. совершенно не обязательно делать именно на MODx.
Систему предполагается реализовать на веб-интерфейсе как сервис (работа через браузер на десктопах и планшетах без установки на устройство) через протокол https.
Кратко, в свободной форме, суть.
Имеется некий Проект, разработанный проектной группой. Под проектом можно понимать что угодно — сайт, ТЗ к сайту, архитектурный проект здания и т.д.
Сам Проект в системе не обрабатывается, он участвует в ней как некая абстрактная сущность.
Проект отдаётся на утверждение Заказчику проекта, который изучает его и присылает в ответ список замечаний по Проекту — бумажный либо электронный документ (да-да, бывает и в бумажном формате). Замечаний может быть много, 100-200 штук.
Этот список замечаний является входящим документом для системы.
Проектная группа состоит из Проект-менеджера и рядовых Специалистов, подчинённых ему. Каждый Специалист работал над определённой частью Проекта.
После получения Списка замечаний от Заказчика и начинается, собственно, работа будущей системы. Её можно для упрощения грубо поделить на несколько модулей:
Работа со входящим документом (Списком замечаний).
Распределение задач по работе с замечаниями между Специалистами.
Формирование исходящего документа по проделанной работе с замечаниями.
Контроль выполнения задач.
Работа с персоналом (пользователями системы).
Чуть подробнее, также в свободной форме.
1. Модуль работы со входящим документом должен уметь делать OCR сканов бумажного входящего документа в форматах jpeg, png и многостраничных типа tiff и pdf.
Примечание: Насколько я знаю, лучший из бесплатных движков — Tesseract OCR (могу ошибаться).
Задача: реализовать OCR на этом либо другом движке с простейшим GUI типа как здесь. Язык распознавания — русский с вкраплениями английского (мэйлы, урлы и т.п.).
Вместо OCR'а иногда может работать машинистка :), и модуль должен дать ей возможность при желании вручную набить текст.
Если же входящий документ электронный (docx, doc, pdf с текстовым слоем и т.п.), то он также преобразовывается во внутренний формат и передается далее в работу в системе.
2. Модуль распределения задач. Здесь Проектный менеджер вручную разбивает обработанный в модуле 1 текст на отдельные замечания и на свое усмотрение назначает задачи по работе с конкретными замечаниями конкретным Специалистам из своей проектной группы.
При этом Специалист должен видеть поставленные ему задачи, соответствующие тексты замечаний, необходимые сроки исполнения. Для этого, видимо, ему нужен Личные кабинет (интерфейс системы толком ещё не прорабатывался).
3. Модуль формирования исходящего документа. Исходящий документ представляет собой таблицу с колонками «Номер», «Текст замечания», «Проделанная работа». По номеру и тексту замечания, думаю, всё ясно, а в колонке «Проделанная работа» содержится отчет Специалиста по внесенным изменениям в Проект (изменения вносятся оффлайн, вне системы).
Этот модуль должен собирать исходящий документ в вышеописанном виде, а также обеспечивать онлайн-просмотр и редактирование текущего состояния исходящего документа в режиме WYSIWYG («как в Ворде» — выражение заказчика системы).
То есть, заказчик хотел бы, чтобы исходящий документ прямо редактировался онлайн «как в Ворде», и каждый Специалист вносил бы свои отчеты по проделанной работе в соответствующую задаче строку-колонку.
Примечание: Не знаю, насколько просто/сложно реализовать это онлайн-редактирование на каком-нибудь API типа Google Docs или подобном.
При этом Специалист должен иметь доступ к редактированию только той информации, которая соответствует поставленной ему задаче. Всю остальную часть исходящего документа он может только просматривать.
Написав отчет о проделанной работе в свою ячейку таблицы, Специалист помечает задачу как завершенную, и данная строка как-то выделяется, показывая, что задача сделана (например, фоном).
4. Модуль Контроль выполнения задач. Проектный менеджер должен иметь возможность видеть «вживую» процесс формирования и текущее состояние таблицы (исходящего документа). Он видит завершенные задачи (они выделены фоном) и может принять их либо отправить на доработку с комментарием (для этого д.б. какая-либо кнопка).
После того, как все задачи выполнены Специалистами (документ сформирован), должна быть возможность сохранить/импортировать документ в docx/pdf или распечатать.
5. Работа с персоналом. Добавление/редактирование/удаление пользователей системы. Каждый пользователь имеет (естественно) разные права. Админ может всё, в том числе редактировать права каждого пользователя.
Стартовый набор прав стандартный:
Проектный менеджер может создавать Проекты, редактировать их свойства (название, номер, завершен/не завершен и т.д.), создавать, редактировать, активировать, деактивировать и удалять Специалистов, назначать им задачи, включать Специалиста в состав той или иной проектной группы и т.д.
Ну и так далее, список прав надо уточнять, это не принципиально.
Проектов, проектных менеджеров, проектных групп может быть несколько.
UPD: Общее ТЗ на систему есть, вёрстка интерфейса системы будет разрабатываться в ближайшее время. То есть к моменту начала разработки у вас будет и то, и другое (ТЗ и сверстанный интерфейс). Понятно, что интерфейс будет отчасти «рыбный» — в тех местах, где его невозможно оторвать от логики.
Нужно от вас:
Сроки и Стоимость разработки (оценочно, в личку)
На чём вы бы стали это делать (отдельно по OCR, отдельно по визивиг, отдельно по основной логике системы)
Возможные специфические требования к серверу со стороны OCR и WYSIWYG
Ответы на эти вопросы хотелось бы в 2-х вариантах: с модулем 1 (OCR) и без него.
P.S. Если какие-то моменты неясны, спрашивайте в комментах.