Выполненное ТЗ на позицию Laravel-разработчика (для housevl.ru). Его суть заключалась в создании API магазина: с каталогом товаров, созданием заказов для анонимных и авторизованных пользоватей и пр. (суммарно - свыше десятка эндпоинтов).
ТЗ можно почитать тут: https://docs.google.com/document/d/1BRLldrmxi_p8P7qJ4avUEkGMgJMDtgsy/edit?usp=drive_link&ouid=103092881824268936467&rtpof=true&sd=true
- Запустить контейнеры через docker compose up;
- Запустить start.sh - shell-скрипт, который запустит все миграции и сидеры.
- Laravel 10 (PHP 8.2);
- Postgres;
- Nginx;
- Docker и Docker Compose (для развертывания);
- PHPUnit;
- Postman (для краткого документирования эндпоинтов);
- XDebug (для локальной отладки кода приложения и тестов).
- Laravel Modules (для организации модульного монолита);
- Laravel Sanctum (для token-based авторизации);
- Laravel Data (для имплементации DTO);
- Eloquent Filter (для создания фильтров каталога);
- Secure Headers;
- Php Insights (стиль кода, архитектуры и т.д., проверяемые перед каждым коммитом);
- Laravel Api To Postman (генерирование postman-коллекции на основе роутов приложения);
- Branch Name Lint (чтобы названия веток соответствовали conventional commits; + ограничения при работе с ветками);
- Husky (работа с pre-commit и другими хуками);
Лежит в папке docs, и на данный момент содержит postman-коллекцию, полностью заполненную примерами тел запросов, хедеров и т.п.
Feature-тесты написаны под все имеющиеся эндпоинты. Однако unit-тесты были написаны лишь для части классов.
Все они стандартно запускаются через php artisan test изнутри запущенного контейнера.