Этот проект представляет собой веб-приложение для управления заявками, интегрированное с CRM. Основные функции включают создание заявок, их отправку в CRM, обработку неудачных отправок и возможность переотправки через административную панель, реализованную с использованием Orchid.
-
Создание заявок:
- Пользователи могут создавать заявки, указывая телефон и ID автомобиля.
- Заявки автоматически отправляются в CRM.
-
Интеграция с CRM:
- Заявки отправляются в CRM через фоновую задачу (
SendOrderToCrmJob). - В случае неудачной отправки заявка сохраняется для дальнейшего анализа.
- Заявки отправляются в CRM через фоновую задачу (
-
Административная панель:
- Реализована с использованием Orchid.
- Просмотр списка неудачных отправок.
- Возможность переотправки заявок в CRM.
-
Логирование ошибок:
- Все неудачные попытки отправки заявок логируются с указанием ошибки.
- PHP 8.x
- Laravel 11.x
- Orchid (административная панель)
- MySQL (база данных)
- Redis (очереди)
- Docker (контейнеризация)
Для запуска проекта используется Docker Compose. Убедитесь, что у вас установлены Docker и Docker Compose.
-
Клонируйте репозиторий:
git clone https://github.com/livevasiliy/tapir-test-case.git cd tapir-test-case -
Создайте файл
.env: Скопируйте.env.exampleв.envи настройте переменные окружения:cp .env.example .env
-
Запустите Docker Compose: Запустите контейнеры с помощью команды:
docker-compose up -d
Это запустит следующие сервисы:
web(Laravel приложение)mysql(база данных)redis(очереди)nginx(веб-сервер)adminer(для управления базой данных)
-
Установите зависимости: Установите PHP-зависимости внутри контейнера:
docker-compose exec web composer install -
Выполните миграции: Запустите миграции для создания таблиц в базе данных:
docker-compose exec web php artisan migrate --seed -
Запустите очереди: Запустите обработчик очередей для выполнения фоновых задач:
docker-compose exec web php artisan queue:work -
Откройте приложение: После успешного запуска откройте приложение в браузере:
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 или свяжитесь со мной. 😊