Разработка веб-части онлайн-сервиса
Цель: разработать удобную систему для пользователей, которая будет взаимодействовать с фермой (удаленный программный комплекс).
Сервис содержит три зоны: публичную, доступную всем; пользовательскую, доступную зарегистрированным пользователям и административную.
Сервис представляет из себя платную систему по обфускации программных разработок пользователей: html, java, javascript, coff pe, sys, pdf.
Сама обфускация происходит на ферме (сервер), реализовать необходимо клиентскую часть (веб).
Ниже находится краткое описание, которое позволяет оценить сложность подобной разработки.
Список функиональности, подлежащей реализации:
1. Авторизация.
Авторизация происходит по ключам (файл ключей; генерируется автоматически для каждого нового пользователя и представляет из себя файл с информацией о пользователе, дату активации, срок действия ключа, есть примеры кода от другого проекта).
2. Административная зона.
а. Добавление новых пользователей в систему, активация (или деактивация) уже добавленных, редактирование существующих пользователей, удаление, редактирование баланса (добавить, уменьшить);
б. Статистика со следующими разрезами: посмотреть количество обфусцированных файлов на дату, дата выбирается из месяца рутем клика на число месяца (если в данный день сервис не использовался -- не выделять), календарь в статистике расширен с 01 января до текущей даты); статистика по датам: какой пользователь больше работает с сервисом; в какое время больше всего работают (время суток и дата, день недели);
в. Управление настройками сисемы;
г. Управление новостями (добавление, удаление, редактирование в удобном виде WYSIWYG любой адекватный)
д. Управление тарифами (создать новый тариф, редактировать, удалить);
е. Управление контентом страниц (текстовый, графический контент, возможность создавать новые страницы, редактировать и удалять существующие);
ж. Возможность создать рассылку всем пользователям (или выбранным) на e-mail'ы промо-текстов;
з. Редактирование акций и скидок (на группу пользователей может распространяться скидка, редактирование группы пользователей, редактирование скидок);
и. Возможность использования реферальной программы (от 0 до 100 процентов реферальных, 0 - выключить реферальную программу);
3. Регистрация нового пользователя.
Ввод капчи, заполнение необходимых полей (имя пользователя, выбор тарифа и прочие), генерация файла-ключа для входа в систему;
4. Работа зарегистрированного пользователя в системе.
Выбор действия, обфускация (аплоад файлов на ферму, ожидание ответа, отдать обфусцированный файл пользователю);
Пополнение баланса, смена тарифов, просмотр пользовательской статистики, реферальная программа;
5. Интеграция с платежными системами: необходимо интегрироваться с WebMoney и Робокассой. API, равно как и документация, в наличии.
6. Протокол работы с фермой
Ферма - основная часть ПО, расположенная территориально на другом сервере, с которой работает веб-часть сервиса.
Протокол передачи файлов данных с веб-сервера на ферму.
JSON.
{
"userName": "bL4ck kn1gh7",
"userId": 20394,
"fileMetaData": {
"fileType": "dll",
"md5": "c9020bf78f5f569c8183cb4d6d190b68",
"action": "obfuscate"
},
"fileData": [
]
}
где
* userName — это имя пользователя;
* userId — идентификатор пользователя в каталоге /crypt;
* fileMetaData — описание метаданных файла;
* fileType — тип файла (exe, dll, js, java, pdf, html, asp, php);
* md5 — md5-хэш файла для создания пользовательских подкаталогов (/crypt/%userId/%md5/in/ и криптованные варианты в /crypt/%userId/%md5/out/);
* action — действие (обфусцировать, проверить, другие зарезервированные варианты действий);
* fileData — данные файла (сам файл) в base64.
7. Реферальная программа и скидки.
Имеется реферальная программа, в которой пользователь, при поплонении баланса своего реферала, получает на свой счет определенный в настройках %, при регистрации возможно использование промо-кодов (инвайтов), которые дают скидки.
Этой информации достаточно, чтобы кандидат смог определить масштаб работ, получить более детальное ТЗ и начать работать.
Требования к кандидату: владение чистым письменным русском и свободное чтение документации на английском языках.
Знания PHP, БД, JSON и опыт работы в создании сервисов.
Срок разработки: две недели плюс тестирование.
Оплата: WMZ.