Разработать бекенд и API для поиска по базе выделенных серверов

Цена договорная
22 ноября 2020, 13:37 • 8 откликов • 60 просмотров
Добрый день!

Меня зовут Александр Кулинич, я совладелец хостера www.data-xata.com - аренда серверов в Европе.
Мы переделываем сайт, где хотим реализовать фасетный поиск по базе доступных к аренде серверов.
Для каждого сервера у нас есть вот такая детальная конфигурация: https://www.dropbox.com/s/eglutyn6ockpnn8/Details%20full.jpg?dl=0
Выглядеть поиск будет примерно так: https://www.dropbox.com/s/aektvr2jo1ujyxk/Search.jpg?dl=0
Хотим реализовать поиск по вот таким параметрам: https://www.dropbox.com/s/mcw6pmvudn5omli/Filters.jpg?dl=0

Я ищу человека, который реализует бекенд и API этого поиска и (важно!) сможет потом уделять время его поддержке и допиливанию новых фишек.


Что должно быть реализовано:
  1. Проектирование структуры данных в elasticsearch для удобного хранения, поиска и вывода информации
  2. Поиск по заданным фильтрам, с указаной сортировкой по цене и пагинацией.
    • Важная фича, которую я хочу обсудить - когда пользователь выбирает, например фильтр 'OS: Windows'(сервер с Windows), поиск должен:
      • вернуть все серверы где по умолчанию установлена Windows
      • + все серверы c Linux, но где Windows можно установить за дополнительную плату
      • сортирует результаты по итоговой цене (сервер+доп опция Windows)
      • возвращает результат с учетом пагинации
  3. API должно возвращать:
    1. список найденных серверов
    2. новое состояние панели фильтров, в частности количество доступных серверов во всех фасетах
    3. мета-информацию:
      1. выбранную пользователем сортировку
      2. выбранную пользователем плотность вывода
      3. выбранную пользователем валюту
      4. актуальные курсы валют USD, RUB
      5. размер скидки пользователя (по его id в партнерской программе)
  4. API должно уметь сохранять настройки пользователя:
    • выбранную пользователем сортировку
    • выбранную пользователем плотность вывода
    • выбранную пользователем валюту
    • id пользователя в партнерской программе
  5. API должно уметь сохранить выбранный пользователем сервер + все выбранные дополнительные платные опции и вернуть id (хеш?) сохраненной информации
  6. API должно уметь возвращать детальную информацию о выбранном сервере по его id и хешу выбранных доп. опций

По моему разумению, у этого API должны быть такие URI:
  • /search - собственно поиск, - принимает выбранные фильтры, возвращает список серверов, новое состояние фильтров и мета-информацию
  • /user - принимает и сохраняет настройки пользователя
  • /server - принимает ID сервера и id(хеш?) сохраненных опций, возвращает детальную информацию о сервере
  • /hash - принимает массив опций, сохраняет их и возвращает id(хеш?) сохраненных данных
  • /log - принимает сообщение от фронтенда, сохраняет его + отправляет на e-mail менеджеру

Предложите примерные цену и срок реализации, после этого я свяжусь с вами чтобы ответить на вопросы и обсудить детали.