Skip to content

AlmasNurbayev/cipo-site-server

Repository files navigation

Бэкенд сайта Cipo [https://cipo.kz] и телеграм-бота

Хранение новостей, каталога товаров, изображений - предоставление информации через RestAPI.

Модули:

1. Парсинг

Загружает XML-файлы и файлы картинок из выгрузки 1С-Розница, запись в БД с хранением истории. Так как под JS я не нашел вменяемого готового парсера, пришлось все писать самому.

Состав данных - описание товара (реквизиты, картинки), текущие складские остатки, цены. Данные выгружаются из 1С, передаются на сервер и загружаются по расписанию.

Нужно включить в Cron для выгрузки после загрузки данных из сервера 1С в папку uploads.

Используемый стек: JavaScript, node.js, xml-js, ORM Prisma, Postresql

2. Выгрузка прайса для Kaspi

Из базы получаем последний регистратор, остатки товаров. Преобразовываем в XML и записываем в shared_price/last_price.xml. Нужно включить в Cron для выгрузки после выполнения парсинга. Файлы из папки shared_price раздаются NGINX как статика.

3. Сервер

Предоставляет данные по HTTP-запросам для сайта или бота.

Используемый стек: JavaScript, node.js, express (и к нему cors, express-rate-limit, helmet), ORM Prisma SSL: выпущены и используются сертификаты под ip-адрес сервера

Есть Swagger-страница, но она не всегда актуальна, так как ее нужно править ручками - схема Prisma не конвертируется в схему Swagger.

Есть JS doc на большинство функций

4. Статичные данные

В контейнере cipo-site-server следующие папки должны быть созданы и используются NGINX для раздачи:

  • ./cipo-site-server/news_images
  • ./cipo-site-server/store_images
  • ./cipo-site-server/product_images
  • ./cipo-site-server/shared_price

Deploy:

Развернут в составе пода docker compose из 4-х контейнеров. Файл yml выложен в репо cipo-next.

Планы:

  • чистка устаревших данных из БД и логов
  • переписать на TypeScript
  • добавить валидацию входящих данных через специальные библиотеки (типа AJV), сейчас это делается простыми условиями
  • не все функции покрыты описаниями JS doc
  • попробовать автоматизировать актуализацию схемы Swagger

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published