Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- четверг, 13 августа 2015 г.
- [18:10:07] Лев Колесников: Здравствуйте. Мы ищем веб-программиста, для регулярной разработки и усовершенствования админ панелей под наши задачи.
- [19:53:22] maslennikovyv: Добрый вечер, делаю на zf2 и twitter bootstrap вот такие вещи http://test.homegateway.ru:8001/ и многое другое
- [19:55:46] maslennikovyv: Это сделано за час, в качестве тестового задания.
- [22:08:09] Лев Колесников: А как обстоят дела с нативным PHP?
- [22:10:37] maslennikovyv: Нормально, вроде.
- [22:11:39] maslennikovyv: Zf2 это не CMS, знания языка не заменяет
- пятница, 14 августа 2015 г.
- [14:06:31] Лев Колесников: Здравствуйте
- [14:06:56] Лев Колесников: Скажите, у вас есть опыт работы с передачей бинарных данных?
- [14:07:10] Лев Колесников: Или понимание, как их можно передавать через http сервер
- [14:27:40] maslennikovyv: Можно через websocket
- [14:28:51] maslennikovyv: Можно через post в BASE64
- [16:50:15] Лев Колесников:
- Клиент отправляет запросы на апи бинарным потоком, в зашифрованном виде (aes-256-ecb) на адрес http://адрес-сервера/api.
- Параметры, принимаемые сервером:
- — appid (уникальный ID машины (приложения)
- — time (timestamp времени запроса)
- — type (тип запроса: GETJOB - регулярный запрос на получение задач, отправляется примерно раз в 5 минут, соответственно нагрузка должна быть минимизированной.
- ACCEPTEDJOB - запрос, подтверждающий принятие задания к исполнению
- DONEJOB - запрос, подтверждающий успешное выполнение задачи
- — customField (поле для передачи дополнительной информации от клиента серверу, набор переменных в виде JSON)
- Пример запроса:
- {
- "appid": "531574732",
- "time": "1435093393 ",
- "type": "DONEJOB ",
- "customField": {
- "Dat1": "123",
- "Dat2": "Test"
- }
- }
- Всё это шифруется aes-256-ecb с ключом, хранящимся в приложении и отправляется на адрес API.
- Сервер так же возвращает зашифрованый ответ.
- — result (Всегда DONE, после принятия запроса, для проверки полученого ответа.)
- — tasks (NOTASKS если нет новых заданий, либо HAVEJOB, если есть задача)
- — command (Команда клиенту, для загрузки файлов - DOWNLOADFILE, для удаления по- SELFDESTRUCTION, а так же другие команды)
- — additional (Дополнительные поля к команде, например массив fileUrl для списа URL файлов)
- Варианты ответов сервера:
- Ответ с командой загрузки файлов
- {
- "result": "DONE",
- "tasks": "HAVEJOB",
- "command": "DOWNLOADFILE",
- "additional": {
- "fileUrl": [
- "http://server.com/test1.tl",
- "http://server.com/test2.tl"
- ]
- }
- }
- Ответ без задач
- {
- "result": "DONE",
- "tasks": "NOTASKS"
- }
- Требования к интерфейсу админ панели:
- 1) Подсчет статистики приложений обращающихся к админ панели.
- Статистика должна разделяться на: Он-лайн\ офф-лайн, всего, новые (за последние сутки). А так же отображать время сбора статистических данных. Например в админ панели должна присутствовать удобная возможность посмотреть статистику за сегодня, неделю, месяц, год. Или посмотреть конкретное время Например: 12.08.2015 с 13:00 по 23:00. По мимо этого должна присутствовать статистика по уникам, которые получили и выполнили задания. И уникам, которые еще не получили, или не выполнили задания. Любые статистические данные в админ панели должны отображаться, как в цифрах (в табличном виде), так и в виде наглядных графиков.
- 2) Возможность определения ip уников, их геолокаций (средствами геоип, или аналогом)
- Приема ID машин и другой информации, которая будет выдаваться в обращении самих машин.
- 3) Возможность создания групп уников. Путем прямой выборки конкретных уников из списка, либо по категориям:
- А) Список ID
- В) Маски IP
- С) Страны (используется геоип, или аналоги)
- Все это выбирается из соответсвующего списка, либо задается в специиальной форме.
- Данные группы будут нужны, для выдачи заданий только для этих групп, а так же для отображения статистики только для этих групп.
- 4) Возможность создания задач с настройками:
- А) Список ID
- В) Маски IP
- С) Страны (используется геоип, или аналоги)
- Данный пункт частично дублирует по функционалу предыдущий, но применяется только для заданий.
- Задания, которые должна уметь выдавать админ панель:
- A) Загрузка определенных файлов (может быть несколько файлов в одном задании)
- B) Самоудаление
- С) Должна присутствовать возможность добавлять в будущем другие команды
- Все задания выдаются только 1 раз. После подтверждения уником успешного выполнения, повторно задания не выдаются.
- 4) Аутентификация по логину паролю. Возможность добавлять несколько пользователей.
- [16:50:27] Лев Колесников: Справитесь с такой задачей?
- [17:07:02] maslennikovyv: Ничего сложного не вижу, какой бюджет?
- [17:25:25] Лев Колесников: 14 т.р
- [17:26:15] maslennikovyv: Хорошо, вечером посмотрю внимательно, и отвечу
- [17:27:06] Лев Колесников: Ок. Тогда ждем от вас сообщения.
- [21:20:37] maslennikovyv: Задача ясна, бюджет устраивает. Завтра могу приступить.
- [22:00:04] Лев Колесников: Ок. Когда будет первый результат, который вы сможете продемонстрировать? Например api
- [22:07:39] maslennikovyv: к вечеру воскресения (по Москве)
- [22:11:11] maslennikovyv: или раньше.
- суббота, 15 августа 2015 г.
- [3:04:58] Лев Колесников: Хорошо, договорились.
- [3:05:17] Лев Колесников: Желательно хотя бы по апи закончить по быстрее.
- [10:20:53] maslennikovyv: Есть вопрос, ключ шифрования один для всех клиентов, или для каждого свой. Полагаю, что второй вариант, в таком случаи необходимо передавать id приложения в незашифрованном виде
- [21:35:13] Лев Колесников: Здравствуйте
- [21:35:18] Лев Колесников: Как проходит разработка?
- [21:52:31] maslennikovyv: Добрый вечер, нормально, собственно api отднельно показать невозможно, поэтому ждите результатов завтра
- воскресенье, 16 августа 2015 г.
- [15:57:07] Лев Колесников: Здравствуйте
- [15:57:14] Лев Колесников: Появились какие-либо результаты?
- [15:57:22] Лев Колесников: Апи кстати можно и отдельно показать было...
- [16:14:14] maslennikovyv: На данный момент есть интерфейс http://api.homegateway.ru:8003 admin admin
- [16:16:56] maslennikovyv: Насчет секретных ключей вопрос
- [16:18:09] maslennikovyv: Есть вопрос, ключ шифрования один для всех клиентов, или для каждого свой. Полагаю, что второй вариант, в таком случаи необходимо передавать id приложения в незашифрованном виде
- [16:19:29] maslennikovyv: еще по исполнению заданий, задание достаточно выполнить 1 раз одним из app-ов или по разу каждым
- [16:20:07] maslennikovyv: в часности для selfdestruction
- [16:56:14] Лев Колесников: Проверять шифрование тут: http://aes.online-domain-tools.com
- Образцы шифрования:
- Для ответа: http://aes.online-domain-tools.com/link/2c7736g7MfRYnVq3p/
- Для запроса: http://aes.online-domain-tools.com/link/2c767fgvZdcbJt5Ns/
- [16:56:49] Лев Колесников: Алгоритмы и ключи берите прямо из образцов
- [17:00:10] Лев Колесников: > [Sunday, August 16, 2015 1:13:58 PM maslennikovyv] На данный момент есть интерфейс http://api.homegateway.ru:8003 admin admin
- Ну пока я наблюдаю только bootstrap интерфейс, который делается 10 минут от силы.
- [17:35:26] maslennikovyv: Ну ну 10 минут.
- [17:36:00] maslennikovyv: Не ответили на вопрос
- [17:41:25] maslennikovyv: ключ шифрования один для всех клиентов, или для каждого свой?
- [17:41:42] maslennikovyv: задание достаточно выполнить 1 раз одним из app-ов или по разу каждым
- [16:19:51] maslennikovyv: в часности для selfdestruction
- [19:22:44] Лев Колесников: > [Sunday, August 16, 2015 2:41:08 PM maslennikovyv] ключ шифрования один для всех клиентов, или для каждого свой?
- Я же вам скинул пример. По нему видно, что один на всех клиентов
- [19:23:10] Лев Колесников: > [Sunday, August 16, 2015 2:41:26 PM maslennikovyv] задание достаточно выполнить 1 раз одним из app-ов или по разу каждым
- По разу каждым, это ОЧЕНЬ важно!
- [19:23:17] Лев Колесников: Каждый клиент уникален
- [19:43:19] maslennikovyv: По примерам, ничего не видно кроме алгаритма шифрования
- [19:44:51] maslennikovyv: если секретный ключ общий тот кто его знает может прочитать все сообщения не только своего клиента
- [19:45:09] maslennikovyv: и потделать любое сообщение
- [19:45:52] maslennikovyv: все равно что один ключ на весь подъезд
- понедельник, 17 августа 2015 г.
- [1:01:53] Лев Колесников: > [Sunday, August 16, 2015 4:44:34 PM maslennikovyv] если секретный ключ общий тот кто его знает может прочитать все сообщения не только своего клиента
- Это не существенно.
- [20:12:43] Лев Колесников: Здравствуйте
- [20:12:46] Лев Колесников: Как продвигается работа?
- [22:45:48] Лев Колесников: ...
- [23:26:40] maslennikovyv: сегодня не получилусь. завтра весь день свободен
- вторник, 18 августа 2015 г.
- [15:34:17] Лев Колесников: Здравствуйте
- [15:34:20] Лев Колесников: Как успехи?
- [15:34:28] Лев Колесников: Нам стоит ждать каких-то подвижек вообще?
- [15:55:49] maslennikovyv: Стоит естественно.
- [15:57:27] maslennikovyv: Есть предложение дабавить taskid в ответы с командой и в запросы ACCEPTEDJOB и DONEJOB
- [16:01:52] maslennikovyv: Вот у вас сомнения: не напрасно ли я жду. Представьте у меня: Не бесплатно ли я 3-й день работаю.
- [16:38:16] maslennikovyv: http://api.homegateway.ru:8003/api
- Это сервис, принимает постом параметр message
- [16:39:22] maslennikovyv: зашифрованный AES ECB с ключем a0567ff645372e8c9d12830d0cf27497
- [16:39:48] maslennikovyv: и перекодированым в hex
- [16:42:57] maslennikovyv: например запросу
- {
- "appid": "531574734",
- "time": "1435093393 ",
- "type": "NEEDJOB",
- "customField": {
- "Dat1": "123",
- "Dat2": "Test"
- }
- }
- соответствует message=
- 691454d99b96a259d4fcd37a242625b3844cac8b651a9f769de912ac295206309cf8ca3dbe32db6954f829acfda61087672516fdf7cc4681406eeb70ed9932d7d03fcaff9ada9a59ab35648178d9f296297b6ab473fdb0b2e13ce6b1876fc958ee0e7d7a734bd1bcefef16965d10a29d3f76786c088014a30baa82b407d751122440bceb42836968b07ce5cfa2b63959a4534a4eca980ad8b0b53bc3f009f457
- [16:46:43] Лев Колесников: > [Tuesday, August 18, 2015 1:01:27 PM maslennikovyv] Вот у вас сомнения: не напрасно ли я жду. Представьте у меня: Не бесплатно ли я 3-й день работаю.
- Мы оплачиваем выполненную работу всегда. Во-первых мы не по приколу заказываем разработку, а потому что она нам действительно нужна. Во-вторых мы намерены дозаказывать позже отдельные доработки. А вот безответственных исполнителей в вебе, на сегодняшний день, больше чем бы где нибыло. Я не знаю с чем это связано, но в прикладном программировании такого нет.
- [16:47:08] Лев Колесников: > [Tuesday, August 18, 2015 1:37:53 PM maslennikovyv] Это сервис, принимает постом параметр message
- А как http связан с бинарным потоком?
- [16:49:25] maslennikovyv: Три последние разработки мне не оплатили как вы переносите "безответственных исполнителей в вебе" на мой счет, так и я с вами не знаком. )
- [16:50:44] maslennikovyv: Что касется бинарного потака - зачем если планируется получать задачи раз в 5 минут?
- [16:57:35] Лев Колесников: А что за проблема с бинарным потоком?
- [16:59:11] maslennikovyv: С ним нет проблем, просто по http его надо кодировать
- [17:01:13] maslennikovyv: если использовать отдельный socket сервер можно открывать сесии и пересылать бинарные потоки, но зачем?
- [17:12:33] maslennikovyv: Вы опредеделяйтесь, тестируйте, если что то в корне не устраевает - говорите, но прежде чем продолжать я хотел бы получить аванс, сами скажите сколько для вас приемлемо.
- [17:14:37] maslennikovyv: На данный момент апи работает, нет только групп и статистики с графиками
- [17:20:42] maslennikovyv: для тестирования рекомендую расширение для chrome https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop
- среда, 19 августа 2015 г.
- [9:38:13] maslennikovyv: Жду от вас ответа.
- [14:23:58] Лев Колесников: Здравствуйте. ТЗ начинается со слов: "Клиент отправляет запросы на апи бинарным потоком..." Про http POST нет ни одного слова.
- [17:29:10] maslennikovyv: Хорошо, бинарным так, бинарным. Хотя это уже не api
- [17:33:57] maslennikovyv: Вы тогда уточните что вам, нужно, но работу я продолжу только после аванса.
- [21:35:48] maslennikovyv: Секунду, ТЗ: Клиент отправляет запросы на апи бинарным потоком, в зашифрованном виде (aes-256-ecb) на адрес http://адрес-сервера/api.
- [21:36:04] maslennikovyv: на адрес http://адрес-сервера/api.
- ^^^^
- [21:36:37] maslennikovyv: HTTP
- [21:37:18] maslennikovyv: протокол указан
- [21:38:36] maslennikovyv: POST метод протокола HTTP а не формат данных
- пятница, 21 августа 2015 г.
- [8:44:22] maslennikovyv: Если проект вам больше не нужен, жду от вас компенсации, оцениваю готовность в 50%
- [13:04:32] Лев Колесников: Мы не оплачиваем выклянчивание средств за поделки, которые выполнялись не по ТЗ
- [13:04:56] Лев Колесников: Спасибо за то что потратили кучу нашего времени.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement