Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shaykhnazar/testwork2003
Тестовое задание
https://github.com/shaykhnazar/testwork2003
clean-code kiss laravel phpunit postman rest-api sanctum solid task yagni
Last synced: 21 days ago
JSON representation
Тестовое задание
- Host: GitHub
- URL: https://github.com/shaykhnazar/testwork2003
- Owner: Shaykhnazar
- Created: 2023-06-19T13:43:35.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-06-30T05:59:36.000Z (over 1 year ago)
- Last Synced: 2024-11-13T04:35:25.894Z (3 months ago)
- Topics: clean-code, kiss, laravel, phpunit, postman, rest-api, sanctum, solid, task, yagni
- Language: PHP
- Homepage:
- Size: 116 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Task definitions
Тестовое задание
Необходимо создать проект на Laravel, реализовывать нужно только Backend (REST API), все созданные методы должны быть отображены в коллекции POSTMAN (ее можно добавить в репозиторий в корне проекта)
Техническое задание:
Необходимо создать аутентификацию пользователя с помощью JWT (стандартная таблица users и стандартные средства Laravel).
Необходимо создать систему ролей (roles) и разрешений (permissions). Разрешений может быть произвольное количество и они могу входить в различные роли. Достаточно просто создать методы для создания ролей и добавления к ним разрешений.
Необходимо создать таблицу постов (posts) с полями название (title) и содержание (content).
Реализовать добавление поста пользователем (в посте должен фиксироваться пользователь, который его создал), а также реализовать систему (способ реализации на ваш выбор) того, какие роли имеют разрешение создавать посты.
Требования к заданию:
В качестве БД использовать MySQL.
Использовать концепт паттерна Repository при работе с БД.
Инкапсулировать бизнес логику (если таковая имеется).
Если развертывание проекта отличается от стандартного (присутствуют seeder’ы или artisan-команды) – отобразить схему развертывание в README.
Грамотное оформление кода.
## Requirements* [OpenServer](https://ospanel.io/) or Xampp or ...
* [Composer](https://getcomposer.org/download/)
* [Postman](https://www.postman.com/downloads/)## Installation
* #### Basic steps to up project on the local machine
```shell
git clone https://github.com/Shaykhnazar/TestWork2003.git
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate:fresh --seed
```### **User credentials for testing:**
1. **Admin**
```
email: [email protected]
password: password
```
2. **Editor**
```
email: [email protected]
password: password
```
3. **Viewer**
```
email: [email protected]
password: password
```## Testing
* To run the tests you need to run the command:
```shell
php artisan test
```## Postman collection
[TestWork2003.postman_collection.json](TestWork2003.postman_collection.json)