Бэкенд сайта Cipo [https://cipo.kz] и телеграм-бота
Хранение новостей, каталога товаров, изображений - предоставление информации через RestAPI.
Загружает XML-файлы и файлы картинок из выгрузки 1С-Розница, запись в БД с хранением истории. Так как под JS я не нашел вменяемого готового парсера, пришлось все писать самому.
Состав данных - описание товара (реквизиты, картинки), текущие складские остатки, цены. Данные выгружаются из 1С, передаются на сервер и загружаются по расписанию.
Нужно включить в Cron для выгрузки после загрузки данных из сервера 1С в папку uploads.
Используемый стек: JavaScript, node.js, xml-js, ORM Prisma, Postresql
Из базы получаем последний регистратор, остатки товаров. Преобразовываем в XML и записываем в shared_price/last_price.xml. Нужно включить в Cron для выгрузки после выполнения парсинга. Файлы из папки shared_price раздаются NGINX как статика.
Предоставляет данные по HTTP-запросам для сайта или бота.
Используемый стек: JavaScript, node.js, express (и к нему cors, express-rate-limit, helmet), ORM Prisma SSL: выпущены и используются сертификаты под ip-адрес сервера
Есть Swagger-страница, но она не всегда актуальна, так как ее нужно править ручками - схема Prisma не конвертируется в схему Swagger.
Есть JS doc на большинство функций
В контейнере cipo-site-server следующие папки должны быть созданы и используются NGINX для раздачи:
- ./cipo-site-server/news_images
- ./cipo-site-server/store_images
- ./cipo-site-server/product_images
- ./cipo-site-server/shared_price
Развернут в составе пода docker compose из 4-х контейнеров. Файл yml выложен в репо cipo-next.
- чистка устаревших данных из БД и логов
- переписать на TypeScript
- добавить валидацию входящих данных через специальные библиотеки (типа AJV), сейчас это делается простыми условиями
- не все функции покрыты описаниями JS doc
- попробовать автоматизировать актуализацию схемы Swagger