Laravel (Docker, Laravel echo, redis, mariadb)
Развернуть laravel в docker с установкой laravel cron и сервером очередей rabbitmq
- Реализовать контроллер с валидацией и загрузкой excel файла
- Загруженный файл через jobs поэтапно (по 1000 строк) парсить в бд (таблица rows)
- Прогресс парсинга файла хранить в redis (уникальный ключ + количество обработанных строк)
- Поля excel:
- id
- name
- date (d.m.Y)
- Для парсинга excel можете использовать maatwebsite/excel
- Реализовать контроллер для вывода данных (rows) с группировкой по date - двумерный массив
- Будет плюсом если вы реализуете через laravel echo передачу event-а на создание записи в rows
- Написать тесты
- Клонировать проект
- Выполните установку зависимостей
docker run --rm -u "$(id -u):$(id -g)" -v $(pwd):/opt -w /opt laravelsail/php82-composer:latest composer install --ignore-platform-reqs
- Скопировать .env.example в .env, при необходиемости внести изменения (все настройки для текущего контейнера для запуска на MacOS уже внесены)
- Подключить алиас для
sail
Документация - Запустить docker-compose командой
sail up -d
- Установить frontend-зависимости
sail npm i --save-dev
- Собрать frontend
sail npm run build
- Сгенерировать ключь продукта
sail artisan key:generate
- Запустить миграции
sail artisan migrate
- Запустить выполнение заданий в очереди
sail artisan queue:work
усли запуститьqueue:listen
будет работать медленнее и нагляднее - Открыть адрес localhost
- Выполнить миграции
sail artisan migrate --env=testing
- Запустить тесты
sail test
Реальные тесты пишу впервые)