Понадобилось подобрать инструмент для реализации информационной системы для внутренних нужд компании, и, в идеале, оценить время и стоимость. Поскольку опыта создания таких систем у меня практически нет, хочу дополнительно проконсультироваться с сообществом.
Как это всё должно примерно работать
Есть компания. У компании есть проекты. Проект ведёт сотрудник, по ходу работы с проектом ассоциируется набор товаров для закупки и их количество. Товары эти сотрудник берёт из каталога, который наполняется самими сотрудниками, так что если нужного товара в каталоге нет, он его может создать и затем ассоциировать с проектом. На странице проекта он также загружает файл с документацией по проекту, который периодически обновляет, загружая заново, при этом система хранит только последний (т.е. наиболее позднюю версию). Формат экзотический, поэтому о версионировании и иногда даже текстовом отображении можно не думать. Когда подготовка проекта завершена, на его страницу сотрудник загружает скан документа о согласовании с руководителями (PDF, отдельно от документации!) и меняет статус на, скажем, «Готов к реализации».
Лог операций по проекту отображаются на его странице: 10.10.2012 13:37 Мстислав Великий загрузил файл документации, 11.10.2012 07:40 Ицхак Аркадьевич изменил статус проекта на «Готов к реализации», и т.д.
Со сменой статуса проекта в дело вступают другие сотрудники =) Им важно, что надо закупить и сколько. Кроме того, по конкретному проекту товаров к закупке может быть малое количество, что делает их заказ невыгодным. Поэтому товары по всем проектам с нужным статусом агрегируются и отображаются на отдельной странице. По факту закупки сотрудники вносят информацию в систему. Иными словами, создают запись, ассоциированную с товаром, указывают количество, и это учитывается на странице со списком товаров к закупке. По факту получения товара эта запись обновляется (т.е. закупка получает статус «Успешно завершена»). Чтобы знать, что есть на складе, товары (и их количество) из успешно завершённых закупок отображаются на отдельной странице.
Товары затем распределяются по проектам и те собственно реализуются, но пока об отражении этого в рамках ИС речи не идёт.
Главный вопрос
Как это лучше реализовать: писать совсем с нуля, или на базе лёгкого фреймворка, или чего потяжелее (вроде Symfony, ZF), или использовать ещё более готовый Drupal, или другую CMS/CMF? Или вообще что-то совсем другое (т.е., может, я не туда смотрю)?
Вопросы со звёздочкой =)
- Как оценить время при реализации в одиночку (может, будет несколько, но для оценки пока один)? Я думаю о примерно 3-4 месяцах. Я здоров?
- Как оценить стоимость? Ясно, что минимум это рыночная зарплата, умноженная на время, а максимум — ресурсы заказчика. Как найти баланс? За сколько вообще продаются такие вещи, есть у кого опыт?
Я понимаю, что ответ в значительной степени зависит от бэкграунда (расхожее «в чём лучше разбираешься, на том и делай»). Я довольно давно использую Drupal, но не очень глубоко, самому модули пока не приходилось писать, хотя примерно представляю, что там и как. Использовал PHP-фреймворки, но лёгкие, а не Symfony и ZF (даже писал что-то вроде небольшой CRM). Т.е. я не ниндзя =) В конце концов, возможно, реализацией буду заниматься вообще не я или не я один, я же пока оцениваю, а опыта в таких системах не хватает — потому и нужна экспертиза сообщества.
Спасибо за внимание, буду рад услышать любые советы и мнения.