Доработка, добавление функциональности и поддержка REST-бэкенда

700 руб.за час • наличный расчёт, электронные деньги
06 июля 2016, 09:15 • 6 откликов • 169 просмотров
Долгосрочный парт-тайм, часов примерно на 10-20 в неделю. Размер и характер материальной компенсации обсуждаем, бюджет приведён для характерного масштаба. Проект: что-то вроде shadertoy.com и glslsandbox.com Примерный список требований:

  • REST (HATEOAS не надо) и JSON во все поля

  • Минимальная сложность и минимальное количество зависимостей

  • В первом приближении: просто перекладывание небольшого количества классов лёгких объектов из пустого (JSON) в порожнее (PostgreSQL) и наоборот, местами с минимальной обработкой (bcrypt паролей, например). Версионирование состояний некоторых объектов.

  • Далее, сложные запросы, например:

    • /scenes/id1,id2,id3,...,idN -- возвращает массив из всех таких сцен

    • /users/uid1/scenes/ -- возвращает массив всех сцен пользователя uid1, видимых для текущей сессии (т.е. как правило только публичные)

    • /<class>/<ids,...>?<QUERY>, где ещё не специфицированный формат <QUERY> влияет на отдаваемые поля, сортировку, глубину отдачи зависимых объектов и т.д.

    • /<class>/{<search>} -- поиск объектов по некоторым критериям



  • Совсем далее: загрузка-выгрузка толстых (мегабайты свежей информации) ассетов: текстур

На текущий момент есть прототип бэкенда на питоне написанный человеком, который вообще не разбирается ни в вебе, ни в питоне (мной): https://github.com/w23/tool.gl/blob/backend_protot... Использованы falcon для wsgi и peewee для sql, как самые простые из того, что я нашёл. Стоит отметить, что стек технологий практически не важен -- питон взять просто из соображений, что я его недавно трогал. Сможете убедить, что надо фигачить на ноде или, прости господи, перле -- будем фигачить на ноде и перле. Работать будем в публичном репозитории на гитхабе, под MIT лицензией. Приблизительный план работ такой:

  1. Показываете себя и примеры того, что умеете.

  2. Консультируете по REST API design и проводите базовое ревью прототипа бэкенда. Бьёте меня по рукам за кривые решения и предлагаете лучше. Оцениваете объем работ и стоимость.

  3. Доводите до ума (или переписываете) бэкенд в первом приближении (users, sessions и scenes без версионирования)

  4. Приделываем версионирование и клонирование сцен.

  5. Сложные запросы.

  6. Тяжёлые ассеты.