Необходим перевод интернет-магазина запчастей на английский язык. Сайт работает на Битрикс. Требуется автоматический перевод свойств и вариантов новых товаров, добавляемых ежедневно. Уточните возможные решения для интеграции.
Node.js бекенд для дашборда
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Нужно написать на node.js бекенд для вот такого дашборда https://bit.ly/3n7MP1x
Работа состоит из двух частей:
1. Парсер, который будет периодически забирать из ftp csv и xml файлы, разбирать их и складывать в БД (postgresql)
2. API, которое будет отдавать данные фронтенду.
Ниже текстовое ТЗ, а вот здесь красивое ТЗ с картинками: https://living-pentagon-5f4.notion.site/b84bc8af445c4f45923f5d77e35509e0
Часть 1.1: Парсинг csv
Раз в сутки скачать zip-архив с файлами CSV вот такого вида: https://www.dropbox.com/s/gukumii5lavcb87/Simplewealth_AG_Inception_December_21_2021.csv?dl=0
Нужно скачать свежий zip, разложить содержимое csv по таблицам в БД (если таблицы нет или какого-то поля в ней нет - создать)
Названия таблиц предлагаю формировать так:
- префикс: IbImport
- название: первый столбец + SubSection (если есть), пробелы убираем
Пример: https://monosnap.com/file/92XRfdNex2PlTgGxUlSJjkNEWfCJk3
Названия полей внутри таблиц предлагаю формировать исходя из полей Header, например: https://monosnap.com/file/LbXyEpMrkpFpasdglwD8xPdwyWT19j
Дополнительно:
- в каждой таблице должно быть поле id
- в каждой таблице должно быть поле IntroductionID - ссылка (внешний ключ) на запись в таблице IbImportIntroduction
- если в таблице есть MetaInfo - должно быть поле MetaInfoID, ссылка на таблицу IbImportMetaInfo
Все данные импортируем как строки, т.е. “как есть”. Исключение только для IbImportMetainfo.AnalysisPeriod - тут нужно сохранить “как есть” + распарсить даты и сохранить AnalysisPeriodBegin и AnalysisPeriodEnd
Дополнительно в поля IbImportIntroduction: ImportFile, ImportDate, ImportIBUID записываем имя импортируемого файла, дату импорта и ID аккаунта (он есть в названии файла)
Часть 1.2: Парсинг xml
Раз в сутки скачать из ftp xml-файл вот такого вида: https://www.dropbox.com/s/4wr928qhdfmb11c/clientonly.xml?dl=0
Нужно скачать свежий файл и разложить содержимое по таблицам в БД (если таблицы нет или какого-то поля в ней нет - создать. НО! Если внутри тега нет данных - пустую таблицу создавать не нужно)
Названия таблиц предлагаю формировать так:
- префикс: IbImport
- название: Названия тегов внутри
Названия полей внутри таблицы - по названию атрибутов
Пример: https://monosnap.com/file/OeXuVe8jFXeRUhhZBbyys6AFMrmdOp
Дополнительно:
- в каждой таблице должно быть поле id
- нужно сохранить данные из тега в таблицу FlexStatement
- данные из AccountInformation нужно сохранять только если они поменялись, и в этом случае нужно создавать новую запись а не обновлять старую.
- в каждой таблице должны быть поля FlexStatementID и AccountInformatinID - ссылки на соотв. таблицы
Часть 2: API
Нужны три endpoint’а:
1) POST /clientAuth
Принимает email и пароль, сравнивает с данными в таблице Users, возвращает "result": true/false и ставит сессионную куку
2) GET /table?name={TableName}&fields={FieldName1},{FieldName2},{FieldName3},...
Возвращает запрашиваемые поля указанной таблицы:
- из последнего импорта (определяем по IbImportIntroduction.ImportDate)
- для текущего пользователя (из cookies получаем имя сессии, по ней находим пользователя, получаем его IBUID)
- Если поля не перечислены - возвращает все поля таблицы
3) POST /table?name={Table}
Пример:
curl -X POST "https://api.service.com/table?name=Users" \
-d '{
"set": {"portfolio": "3", "duration": "5 years"},
"where": {"id": "123"}
}'
- По сессии проверяем что текущий пользователь - админ (Users.role=admin)
- исполнить UPDATE Users SET portfolio="3", duration="5 years" WHERE id="123"
- Перед исполнением проверить, - если запрос затронет больше одной записи, то вернуть ошибку
Формат ответа:
{
"result": {
"id":"2d4d028de3015345da9420df5514dad0",
"name":"blog.example.com",
"content":"2.6.4.5"
},
"success": true,
"errors": [],
"messages": [],
"result_info": {
"page": 1,
"per_page": 20,
"count": 1,
"total_count": 200
}
}
{
"result": null,
"success": false,
"errors": [{"code":1003,"message":"Invalid or missing id."}],
"messages": []
}
Пагинация:
curl "https://api.service.com/zones?page=3&per_page=20&order=type&direction=asc"
По умолчанию: page=1, per_page=100, order=id, direction=ASC
HTTP response codes:
- 200 OK request successful
- 400 Bad Request request was invalid
- 401 Unauthorized user does not have permission
- 403 Forbidden request not authenticated
- 405 Method Not Allowed incorrect HTTP method provided
Предлодите цену и сроки.
Заявки фрилансеров
Похожие заказы
- Веб-программирование1 заявкаЗакрыт3 года назад
- $15
Требуется разработать рабочий код для решения задачи по TypeScript или JavaScript. Обязательное условие — выполнение задачи за 500ms. Необходим опыт от 2 лет и понимание английского языка. После успешного выполнения будут предоставлены вводные данные для проверки работы кода.
Веб-программированиенет заявокЗакрыт3 года назад Требуется разработать код для меню в Shopify с 4 подкатегориями в строку, где названия выделены болдом. Окошки должны открываться внутри ширины сайта, не выходя за его пределы. Пример визуального оформления уже представлен. Возможны уточнения в описании проекта.
Веб-программированиенет заявокЗакрыт3 года назадТребуется восстановить сайт из резервной копии и очистить его от вирусов. Хостинг предоставляет возможность восстановления в чистую директорию и базу данных, однако предыдущая попытка не удалась. Ожидается качественное решение проблемы с учетом всех деталей.
Веб-программирование10 заявокЗакрыт3 года назад- $25
Требуется обновить верстку на Laravel и Vue, сосредоточившись на 3 блоках. Новый функционал добавлять не нужно. Основное внимание уделить дизайну и улучшению пользовательского интерфейса.
Веб-программирование4 заявкиЗакрыт3 года назад Требуется разработать веб-приложение, способное парсить данные и взаимодействовать со сторонним сайтом. Подробное описание задачи содержится в техническом задании. Цена обсуждается.
Веб-программирование2 заявкиЗакрыт3 года назадНеобходимо разработать таблицу круглосуточного хронометража на Google Таблицах. Важно учесть все детали и требования, указанные в техническом задании. Ожидается создание функционала для учета времени и удобного представления данных.
Веб-программирование1 заявкаЗакрыт3 года назад- $20
Требуется разово спарсить данные из каталога с сохранением иерархии. Необходимо собрать информацию по товарам в формате csv/xlsx, включая картинки, названия, артикулы, описания и технические характеристики.
Веб-программирование1 исполнительЗавершен3 года назад Требуется интеграция API с сайтом на Laravel для добавления новой функции в проект millionaire.energy. Ищем специалистов по веб-программированию, которые помогут связать API с существующим проектом.
Веб-программирование1 заявкаЗакрыт3 года назадТребуется доработка сайта на платформе Битрикс. Необходимо создать структуру страниц и разделов согласно требованиям, а также настроить меню для удобной навигации. Ожидается качественная проработка всех деталей и функционала.
Веб-программирование7 заявокЗакрыт3 года назад