🍼 Первый запуск, как начать работать 👶🏻
Backend
Предварительные требования
- php 8.2
- composer
Установка и запуск
-
Клонируйте репозиторий:
git clone https://gitlab.com/AndreyKreer/agents-service-api cd agents-service-api -
Настройка
# Создать файл .env в корне проекта APP_NAME=Laravel APP_ENV=local APP_KEY=base64:k0wJqOps6T4vYYAGHpxQ73I0Y63xlF1zQKMwToqLC7I= APP_DEBUG=true APP_URL=http://localhost APP_FOLDER=localhost APP_API_LOG=true GUZZLE_LOG=true LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=admin_documents DB_USERNAME=admin DB_PASSWORD=password BROADCAST_DRIVER=log CACHE_DRIVER=file SESSION_DRIVER=file SESSION_LIFETIME=120 QUEUE_DRIVER=database REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.yandex.ru MAIL_PORT=465 MAIL_USERNAME=no-reply@polis.online MAIL_PASSWORD=Polis20!! MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=ibestguitaristwow@yandex.ru MAIL_FROM_NAME=ibestguitaristwow PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" JWT_SECRET=qWIvrLqEzKe9h6tKFh21YmmqdzErz76SZfYcQOwcUOShSY8anGhrbyMJzwkCrCH9 JWT_TTL=60 AZURE_API_ADDRESS=http://193.42.113.104 AZURE_API_CLIENT_ID=polis_online AZURE_API_CLIENT_SECRET=77495BCA-EB35-45B6-9732-FB13F7FD9D76 AZURE_API_SCOPE=polis_online_api
Обязательные команды
# Дать права 777 на /public в случае использования docker, делать все команды строго в контейнере
php composer.phar update
php composer.phar install
composer dump-autoload
php artisan key:generate
php artisan storage:link
php artisan route:cache
php artisan config:cache
php artisan jwt:secret
# Запуск очередей в отдельном терминале
# Лучше запускать несколько таких команд, каждую в отдельном терминале, это ускорит процесс рассчёта
# !!! После изменений в коде следует перезапустить очереди, чтобы изменения в коде применились
php artisan queue:work --timeout=0 --queue=default,osagoCalculation,cargoInsuranceCalculation,antimiteCalculation,mortgageDirectIntegrations,zprCalculation,osagoCalculation,mortgageIntegrations,iflCalculation,osgopCalculation,installmentCalculation,msbCalculation
Запуск c Docker
- Изменить содержимое .env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=admin_documents
DB_USERNAME=root
DB_PASSWORD=root
- Поднять контейнер
docker compose up -d - Дождаться импорта БД ( отследить это можно по пути tmp/mysql/admin_documents )
- Попасть в терминал
docker exec -it project bash - Повторить команды при инициализации
- При возникновении ошибки с сессиями или cors на frontend повторить команды
php artisan route:cache - Прогнать миграции и сидеры
php artisan migratephp artisan db:seed
Запуск Docker на Windows
- Зайти в Microsoft Store и установить Ubuntu
- Попасть в файловую структуру Linux, можно это сделать двумя способами. 1. Проводник - Linux - Ubuntu 2. Проводник - Прописать путь \\wsl$ - Ubuntu
- Теперь нужно перенести проект с Windows, копируем его и переносим по пути Ubuntu\home\{user}\ и даём права на него в консоли Docker
chmod 777 ./ - Нужно дать права в wsl.conf, редактировать файл можно через VIM, минимальное содержимое файла должно выглядеть:
[automount]
[boot]
systemd=true
options="metadata"
- Запускаем Docker
Как решить ошибку с сессиями или cors ?
- Нужно выполнить команды
1.
php artisan route:clear2.php artisan config:clear3.php artisan view:clear4.php artisan route:cache5.php artisan config:cache6.php artisan view:cache
Как создать подключение к БД ?
- использовать данные port = 8101, username = root, password = root
Frontend
Предварительные требования
- Node.js 16.13 - 18.18
- npm или yarn
Установка и запуск
- Клонируйте репозиторий:
git clone https://gitlab.com/AndreyKreer/agents-service.git cd agents-service -
Установка зависимостей
npm install -
Настройка
# Создать файл .env в корне проекта REACT_APP_API_DOMAIN=http://localhost:8000/api REACT_APP_BACKEND_DOMAIN=http://localhost:8000 REACT_APP_FRONT_DOMAIN=https://test.polis.online SKIP_PREFLIGHT_CHECK=false ESLINT_NO_DEV_ERRORS=true DISABLE_ESLINT_PLUGIN=true FAST_REFRESH=false GENERATE_SOURCEMAP=false -
Запуск приложения
# Стандартный запуск npm run start # Запуск с storybook npm run start:dev
Использование Docker
docker compose up -d
⚙️ Конфигурации тестовой среды env
🔹 Test Backend 1
REACT_APP_API_DOMAIN=http://82.97.250.210:8094/api
REACT_APP_BACKEND_DOMAIN=http://82.97.250.210:8094
REACT_APP_FRONT_DOMAIN=http://82.97.250.210:8095
🔹 Test Backend 2
REACT_APP_API_DOMAIN=http://82.97.250.210:8089/api
REACT_APP_BACKEND_DOMAIN=http://82.97.250.210:8089
REACT_APP_FRONT_DOMAIN=http://82.97.250.210:8090
🔹 Test Backend 3
REACT_APP_API_DOMAIN=http://82.97.250.210:8081/api
REACT_APP_BACKEND_DOMAIN=http://82.97.250.210:8081
REACT_APP_FRONT_DOMAIN=http://82.97.250.210:8082
🔹 Test Backend 4
REACT_APP_API_DOMAIN=http://82.97.250.210:8085/api
REACT_APP_BACKEND_DOMAIN=http://82.97.250.210:8085
REACT_APP_FRONT_DOMAIN=http://82.97.250.210:8086
🔹 Test Backend 5
REACT_APP_API_DOMAIN=http://82.97.250.210:8097/api
REACT_APP_BACKEND_DOMAIN=http://82.97.250.210:8097
REACT_APP_FRONT_DOMAIN=http://82.97.250.210:8099
🔑 Данные для входа
| Поле | Значение |
|---|---|
test_email@polis.online |
|
| Пароль | Qwerty123 |
Расширения и настройки 🤌🏻
Eslint - Frontend
{
"eslint.format.enable": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.execArgv": null
}
Pint - Backend
{
"laravel-pint-fixer.pintBinPath": "agents-service-api/vendor/bin/pint",
"laravel-pint.preset": "laravel",
"laravel-pint.executablePath": "agents-service-api/vendor/bin/pint",
"laravel-pint.configPath": "agents-service-api/pint.json",
"[php]": {
"editor.defaultFormatter": "open-southeners.laravel-pint",
"editor.formatOnSave": true
},
"laravel-pint.enable": true
}
Widgets - Ипотека (В будущем один общий)
Предварительные требования
- Node.js 16.13 - 18.18
- npm или yarn
Установка и запуск
- Клонируйте репозиторий:
git clone https://gitlab.com/AndreyKreer/widget-ipoteka cd widget-ipoteka -
Установка зависимостей
npm install -
Настройка
# Создать файл .env в корне проекта REACT_APP_API_DOMAIN=http://localhost:8000/api REACT_APP_BACKEND_DOMAIN=http://localhost:8000 REACT_APP_FRONT_DOMAIN=https://test.polis.online SKIP_PREFLIGHT_CHECK=true DISABLE_ESLINT_PLUGIN=true #mortgage/installment/osago/dkp Подставляется в завимости от продукта REACT_APP_PRODUCT=mortgage
Widgets - ОСАГО (пока что отдельный)
Предварительные требования
- Node.js 16.13 - 18.18
- npm или yarn
Установка и запуск
- Клонируйте репозиторий:
git clone https://gitlab.com/AndreyKreer/witget-osago cd witget-osago -
Установка зависимостей
npm install -
Настройка
# Создать файл .env в корне проекта REACT_APP_API_DOMAIN=http://localhost:8000/api REACT_APP_BACKEND_DOMAIN=http://localhost:8000 REACT_APP_FRONT_DOMAIN=https://test.polis.online SKIP_PREFLIGHT_CHECK=true DISABLE_ESLINT_PLUGIN=true
Domyland
Предварительные требования
- Node.js 20+
- npm или yarn
Установка и запуск
- Клонируйте репозиторий:
git clone https://gitlab.com/AndreyKreer/domylend-miniapp-polisonline cd domylend-miniapp-polisonline -
Установка зависимостей
npm install -
Настройка
# Создать файл .env в корне проекта VITE_BACKEND_DOMAIN=https://api.polis.online VITE_API_DOMAIN=https://api.polis.online/api #samolet/a101 VITE_WIDGET_NAME=a101 # остальные настройки в файле env стоит раскомментировать в зависимости от партнёра -
Для работы локально стоит закомментировать блок на момент разработки в файле main.jsx и раскомментировать перед npm run build
Domyland.init();
Стандартный рабочий процесс разработки
- Ветка
- Действие: Для каждой новой задачи создайте ветку от актуального master.
- Имя ветки: Используйте формат: {ID-задачи}-{краткое-описание}. Пример: 12345-sberbank-integration.
- Цель: Это обеспечивает изоляцию функциональности и понятную историю изменений.
- Учет времени
- Действие: Перед началом работы над кодом нажмите «Начать учет моего времени» в соответствующей задаче Битрикс24.
- Цель: Корректный учет времени помогает в планировании и оценке будущих проектов.
- Синхронизация с master
- Действие: Перед созданием пул-реквеста обязательно обновите свою ветку из master (git merge), чтобы убедиться, что ваши изменения совместимы с последними обновлениями. Разрешите все возникшие конфликты.
- Цель: Это минимизирует конфликты при мердже и упрощает код-ревью.
- Пул-реквест (Code Review)
- Действие: Создайте пул-реквест (PR) для слияния вашей ветки в master.
- Обязательное условие: В описании PR должна быть ссылка на исходную задачу в Битрикс24.
- Цель: Пул-реквест является основой для проверки кода (code review) перед его интеграцией в основную кодовую базу.