Перейти к содержанию

🍼 Первый запуск, как начать работать 👶🏻

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 migrate php 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:clear 2. php artisan config:clear 3. php artisan view:clear 4. php artisan route:cache 5. php artisan config:cache 6. 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

🔑 Данные для входа

Поле Значение
Email 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();

Стандартный рабочий процесс разработки

  1. Ветка
    • Действие: Для каждой новой задачи создайте ветку от актуального master.
    • Имя ветки: Используйте формат: {ID-задачи}-{краткое-описание}. Пример: 12345-sberbank-integration.
    • Цель: Это обеспечивает изоляцию функциональности и понятную историю изменений.
  2. Учет времени
    • Действие: Перед началом работы над кодом нажмите «Начать учет моего времени» в соответствующей задаче Битрикс24.
    • Цель: Корректный учет времени помогает в планировании и оценке будущих проектов.
  3. Синхронизация с master
    • Действие: Перед созданием пул-реквеста обязательно обновите свою ветку из master (git merge), чтобы убедиться, что ваши изменения совместимы с последними обновлениями. Разрешите все возникшие конфликты.
    • Цель: Это минимизирует конфликты при мердже и упрощает код-ревью.
  4. Пул-реквест (Code Review)
    • Действие: Создайте пул-реквест (PR) для слияния вашей ветки в master.
    • Обязательное условие: В описании PR должна быть ссылка на исходную задачу в Битрикс24.
    • Цель: Пул-реквест является основой для проверки кода (code review) перед его интеграцией в основную кодовую базу.