Веб-приложение, являющееся русским сайтом компании «ПИК-Брокер». Продакшн версия расположена на домене pik-broker.ru.
Основной используемый API — бэкенд сайта, код которого расположен в репозитории newmainsite/new-mainsite-back.
Так же используем Suggest API Яндекса для подсказки в полях ввода адреса.
В основе приложения лежит React Framework Next.js. Соответственно, для работы и сборки необходимы React и Node.js. Так же для написания кода мы используем TypeScript. Используем Yarn package manager для установки зависимостей.
Другие важные зависимости в проекте:
- Storybook
- Для генерации API-клиента OpenAPI Generator
- Для форм React Final Form
- Для галерей изображений React Fullscreen Lightbox Pro (купленная pro-версия, обновление которой можно запросить у техдиректора)
- Кеширование бекенда React Query
- Интерфейс PDF React PDF Viewer
- Рендеринг PDF PDF.js
- Для запуска линтеров и др. инструментов проверки по git-хукам Lefthook
Важно упомянуть устаревшие зависимости, находящиеся на этапе вывода из эксплуатации:
- @material-ui/core → самописные компоненты
- @material-ui/core/Fade → @headlessui/react/Transition
- fslightbox-react → react-slick
В дев-режиме проксирование данных с бэкенда осуществляется при помощи встроенных средств в NextJS (next.config.js
).
В прод-режиме — при помощи nginx (deployment/docker/nginx/default.conf.template
).
Проксируются следующие ресурсы:
Ресурс | Описание |
---|---|
/lead/create | |
/api-react/ | основное апи бекенда |
/api/ | |
/widgets/images/ | |
/upload/menu/ | |
/upload/images/ | |
/iframe/ | |
/bundle/ | контент для виджетов |
/sitemap.*.xml | карта сайта, генерирумая на бекенде |
Скопируй содержимое файла .env.example
в .env.local
(второй не должен попасть в git) и настрой в нём переменные для своего окружения.
Для генерации компонентов используется Hygen.
Так генерируется новый компонент для uikit
:
yarn hygen uikit new --name <component-name>
Где component-name
это имя нового компонента, и оно должно быть в kebab-case.
Генератор создаст файлы для компонента, стилей, тестов и сторибука,
а также добавит новый компонент в файл src/uikit/index.ts
См. CONTRIBUTING.md