Skip to content

Тестовое задание для компании Tapir

Notifications You must be signed in to change notification settings

livevasiliy/tapir-test-case

Repository files navigation

Тестовое задание для компании Tapir

Этот проект представляет собой веб-приложение для управления заявками, интегрированное с CRM. Основные функции включают создание заявок, их отправку в CRM, обработку неудачных отправок и возможность переотправки через административную панель, реализованную с использованием Orchid.


Основные функции

  1. Создание заявок:

    • Пользователи могут создавать заявки, указывая телефон и ID автомобиля.
    • Заявки автоматически отправляются в CRM.
  2. Интеграция с CRM:

    • Заявки отправляются в CRM через фоновую задачу (SendOrderToCrmJob).
    • В случае неудачной отправки заявка сохраняется для дальнейшего анализа.
  3. Административная панель:

    • Реализована с использованием Orchid.
    • Просмотр списка неудачных отправок.
    • Возможность переотправки заявок в CRM.
  4. Логирование ошибок:

    • Все неудачные попытки отправки заявок логируются с указанием ошибки.

Технологии

  • PHP 8.x
  • Laravel 11.x
  • Orchid (административная панель)
  • MySQL (база данных)
  • Redis (очереди)
  • Docker (контейнеризация)

Запуск проекта через Docker Compose

Для запуска проекта используется Docker Compose. Убедитесь, что у вас установлены Docker и Docker Compose.

Шаги для запуска

  1. Клонируйте репозиторий:

    git clone https://github.com/livevasiliy/tapir-test-case.git
    cd tapir-test-case
  2. Создайте файл .env: Скопируйте .env.example в .env и настройте переменные окружения:

    cp .env.example .env
  3. Запустите Docker Compose: Запустите контейнеры с помощью команды:

    docker-compose up -d

    Это запустит следующие сервисы:

    • web (Laravel приложение)
    • mysql (база данных)
    • redis (очереди)
    • nginx (веб-сервер)
    • adminer (для управления базой данных)
  4. Установите зависимости: Установите PHP-зависимости внутри контейнера:

    docker-compose exec web composer install
  5. Выполните миграции: Запустите миграции для создания таблиц в базе данных:

    docker-compose exec web php artisan migrate --seed
  6. Запустите очереди: Запустите обработчик очередей для выполнения фоновых задач:

    docker-compose exec web php artisan queue:work
  7. Откройте приложение: После успешного запуска откройте приложение в браузере:

    http://localhost:8080
    

    Административная панель будет доступна по адресу:

    http://localhost:8080/admin
    

Доступ к сервисам

  • Приложение: http://localhost:8080
  • Админка (Orchid): http://localhost:8080/admin
  • Adminer: http://localhost:8081 (если включен)
  • Redis: redis://localhost:6379
  • MySQL: mysql://root:password@localhost:3306/tapir_test_case

Команды для работы с проектом

  • Запуск миграций:

    docker-compose exec web php artisan migrate
  • Запуск сидов:

    docker-compose exec web php artisan db:seed
  • Очистка кеша:

    docker-compose exec web php artisan cache:clear
  • Запуск тестов:

    docker-compose exec web php artisan test
  • Остановка контейнеров:

    docker-compose down

Структура проекта

  • app/Models/: Модели (например, Order, FailedCrmOrder).
  • app/Jobs/: Фоновые задачи (например, SendOrderToCrmJob).
  • app/Orchid/: Экран и настройки административной панели Orchid.
  • database/migrations/: Миграции базы данных.
  • routes/: Маршруты приложения.
  • tests/: Тесты.

Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.


Автор

Василий Пивоваров
livevasiliy@yandex.ru
https://github.com/livevasiliy/


Благодарности

  • Laravel за отличный фреймворк.
  • Orchid за удобную административную панель.
  • Docker за простую контейнеризацию.

Если у вас есть вопросы или предложения, создайте issue или свяжитесь со мной. 😊

About

Тестовое задание для компании Tapir

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages