Техническое Задание
Что это такое - telework. По другому называется офшорное программирование. Т.е. некая команда людей берет некие проекты, реализует их собственными силами, затем выдает заказчику уже готовый продукт. Как это выглядит. Я ищу заказчиков, затем выбирается руководитель проекта, он выбирает разработчиков из имеющихся в базе и не занятых в других проектах на данный момент. Руководитель проекта самостоятельной набирает команду, самостоятельно распределяет шкуру неубитого медведя (денежное вознаграждение, за выполненную работу). Он работает с разработчиками и со мной (или главным руководителем). Разработчики общаются с бухгалтером, относительно того, каким способом им потом бабки передавать (способы есть разные). Здесь важна очень хорошо спроектированная система (самого проекта). Поскольку люди - разработчики в разных регионах могут находиться. Это в кратце .Веб интерфейс + заготовки для возможности подключения Java приложения выполняющего те же функции (доступ через скрипты). Люди должны будут пройти тесты по каждой "галочке". Тесты оффлайновые (и не особо большие). Скорее всего по имейлу. Причем тесты не только по возможности программирования, но и по проектировке, руководству проектом. Ориентируйся на perl или php4. Особенности виртуальный хостинг (нет своего айпи), база данных MySQL 3.23, ОС юникс, основная кодовая страница страниц 1251, в базе есть только один юзер, так, что разграничение нужно делать на уровне серверсайд-а
Требования
- Многоязыковая поддержка. Вывод осуществляться на русском (по умолчанию) или на другом языке. Задаваться должно через конфигурационные файлы или еще что-то (шаблоны и т.д.).
- Изменяемый внешний вид, достаточно хедера и низа. Скорее всего, через шаблоны.
- Жесткое разграничение прав доступа. Основа не на пользователе БД, а на некой конфигурации (тип пользователя в таблице UserType). Права доступа должны как-то задаваться, для каждого типа пользователя.
- Возможность использования не веб интерфейса, а отдельного Java приложения. Но оно должно работать с со скриптами, т.е. без прямого доступа к БД.
- Обращение к столбцам таблиц не по их номеру, а по мнемоническому наименованию.
- Запрет физического удаления объектов из базы. Использовать поле Delete (если равно 1, то "удалено").
- Идентификация пользователя при входе в систему, ведется на основании файла members.txt.
- Будущая расширяемость системы
Типы пользователей (UserType)
- Master - самый главный юзер, разрешено все
- Buchgalter - бухгалтер
- Manager - главный управляющий
- Project manager - руководитель проекта
- Viewer - простой посетитель
Могут разрешаться различные запросы относительно типа пользователя. Типы пользователей могут быть добавлены.
Виды действий
- Заведение нового пользователя
- Проверка наличия зарегистрированности в members.txt, если нет, то пусть регистрируется
- Заполнение полей
- Проверка на уже зарегистрированность
- Сохранение
- Редактирование пользователя
- Изменение
- Сохранение
- Удаление пользователя
- Установка признака Delete в 1
- Просмотр пользователей (могут смотреть только Master, Manager, Buchgalter, Project Manager)
- Просмотр всех пользователей
- Выбор свободных пользователей
- Изменение статуса (конкретного Activities-а) пользователя (после тестирования)
- Делает Master или Manager или Project Manager (но только кроме себя)
- Прикрепление пользователя к заданию
- Делает Master или Manager или Project Manager
- Статистика пользователей (рейтинг, по наибольшему количеству успешных заданий)
- Больше всего заданий
- Наилучший рейтинг
- Ввод заказчика
- Проверка на наличие такого уже в базе
- Ввод задания
- Редактирование задания
- Изменение статуса задания
- Ввод оплаты
- Только Master или Buchgalter
- Вводится и сумма и дата. При частичной оплате, вводится общая оплаченная сумма и дата последнего платежа
- Отчеты
- Все задания с суммами с сортировками по IDZad, IDContra
- Все оплаченные
- Все не оплаченные
- Повторный ввод оплаты
- Вывод описания Activities (URL - ActivityHelp) (в новое окно через JavaScript или при отсутствии JS в новое окно, тег noscript)
- Добавление новой группы Activities-a,
- Добавление нового Activities-а
Текущие таблицы:
| Название | Описание |
| Users | Общее описание пользователей |
| UzerZad | Соединяющая таблица пользователей и заданий. |
| Activ | Совмещающая таблица между Users и Activ |
| UserType | Тип пользователя |
| Zad | Задания |
| Activities | Способности юзера (что может) |
| ZadStatus | Статус задания |
| Contra | Контрагент - заказчик |
Таблицы могут быть дополнены и добавлены.
UML спецификация проекта скачать и посмотреть можно здесь: http://manager.mylivepage.com/file/3/9



