https://github.com/pomxark/test_task_laravel_9
Тестовое задание. Регистрация. Авторизация по JWT. Фильтрация не предопределенных свойств
https://github.com/pomxark/test_task_laravel_9
docker dockerfile jwt jwt-authentication jwt-token laravel laravel-passport laravel8
Last synced: 4 months ago
JSON representation
Тестовое задание. Регистрация. Авторизация по JWT. Фильтрация не предопределенных свойств
- Host: GitHub
- URL: https://github.com/pomxark/test_task_laravel_9
- Owner: POMXARK
- Created: 2023-03-08T06:24:06.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-10-03T16:57:24.000Z (over 2 years ago)
- Last Synced: 2025-01-10T10:23:55.930Z (over 1 year ago)
- Topics: docker, dockerfile, jwt, jwt-authentication, jwt-token, laravel, laravel-passport, laravel8
- Language: PHP
- Homepage:
- Size: 832 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
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***
* Методы доступные неавторизованным пользователям: регистрация, авторизация
* Методы доступные авторизованным пользователям: список товаров (“каталог товаров”) пагинированных по 40
### Запуск
- cp .env.example .env
- php php composer_2.phar update
- npm i
### demo-deploy (all in one)
- 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