Разработать веб-сервис для встраивания виджета с отзывами на сайты

Цена договорная
24 сентября 2020, 22:48 • 9 откликов • 54 просмотра
На Typescript реализованы 2 парсера сторонних сайтов, которые собирают отзывы об организации.
Они запускаются следующим образом:
  • Parser1.getRevew(id1)
  • Parser1.getRevew(id2)
Где id1, id2 - идентификаторы организации на сторонних сайтах.
Результат выполнения скриптов выглядит примерно так:
[
{
author: Ivan,
text: 'some text',
date: '11 мар 2020',
rating: '1',
authorImageUrl: 'example.com/image-url
source: ‘example.com’
}
….
]

Задача:
1. Реализовать сервис, который будет:
1.1. Раз в 3 дня запускать данные указанные парсеры для 3х организаций.
1.2. Кешировать результат ответа.
1.3. Формировать js-файл виджета для конкретного сайта с отзывами только для него.
1.4. Обрабатывать ошибки парсинга. Т.е. если один из скриптов завершился ошибкой, то надо использовать ранее собранные из этого источника отзывы.

2. Сверстать сам виджет.
2.1. Он должен загружаться асинхронно загружаться при открытии веб-страницы. В виджете должно показываться 1-5 отзывов в зависимости от размера экрана. 5 дополнительных отзывов должны загружаться дополнительно на случай “долистывания” до них. Т.е. в момент загрузки виджета сразу грузятся +5 отзывов. Далее при пролистывании отзывов в виджете влево-вправо, при каждом нажатии на кнопку “влево/вправо” грузится еще 1 отзыв.
2.2. В варианте по-умолчанию показываются отзывы из обоих источников. При выборе конкретного источника отзывов в “шапке” виджета, показываются отзывы из этого источника.
2.3. Добавить спиннер на случай, когда отзыв грузится долго.

3. Сделать админку, где можно будет добавить/удалить источник сбора отзывов (id1, id2)
4. Развернуть приложение на VPS.

В данный момент сайтов, где будут показываться виджеты - 3. 2 из них на Тильде, 1 - на Opencart.
Надо будет, чтобы на них в Хроме, Я.браузере, Сафари виджет нормально смотрелся на таче + в десктопе.

Примерный дизайн виджета в приложении.
Файлы