Laravel Framework 9.52.15 (node v20.3.0)
Тестовое задание для PHP разработчика
На вакансию: https://khabarovsk.hh.ru/vacancy/76497462?hhtmFrom=chat
- Разработать API backend на фреймворке Laravel 9.
- В качестве БД использовать MySQL или PostgreSQL.
Требуемый функционал:
-
Регистрация:
-
Поля:
- ФИО,
- email (уникальный),
- телефон (уникальный),
- пароль,
- подтверждение пароля.
-
Условия:
- Все поля обязательны.
- Пароль должен быть не менее 6 символов, только латиница, минимум 1 символ верхнего регистра, минимум 1 символ нижнего регистра, минимум 1 спец символ $%&!:.
- Телефон должен удовлетворять маске: начинаться с +7 после чего идет 10 цифр.
-
-
Авторизация:
- Поля:
- email или телефон (одно поле),
- пароль
- Условия:
- Для авторизованных пользователей доступен “каталог товаров”.
- Идентификация пользователя должна происходить по Bearer токену.
- Поля:
-
Каталог товаров
- Поля (Product):
- название,
- цена,
- количество.
- Свойства (опции) товара: название и значение
- Условия:
- Только для авторизованных
- Свойства товара должны быть произвольными т.е. заполняться в отдельной таблице БД (например: color / red; color / white; weight / 1000, weight / 1250)
- Реализовать фильтрацию списка товаров с множественным выбором, например GET /products?properties[color][]=red&properties[color][]=white&properties[weight][]=1000
- Поля (Product):
- Методы доступные неавторизованным пользователям: регистрация, авторизация
- Методы доступные авторизованным пользователям: список товаров (“каталог товаров”) пагинированных по 40
- cp .env.example .env
- php php composer_2.phar update
- npm i
- sudo rm -r docker
- php artisan passport:keys
- php artisan optimize
- docker build -t test_task_laravel_9 .
- docker run -d -p 8000:80 --name test_task_laravel_9 test_task_laravel_9