Skip to content

NikolaiProgramist/keep-code-test-assignment

Repository files navigation

Тестовое задание на вакансию junior php laravel разработчика

Maintainability

Краткий обзор

Проект является REST API сервисом по покупке и аренде машин. Основные условия выполнены. При просмотре машины, вы можете получить цены и характеристики. Если же машина была приобретена каким либо из двух способов, то при просмотре машины, вы также получите PIN-код, для доступа к ней (гипотетический доступ). Данный PIN-код добавлен для демонстрации авторизации, так как его не могут видеть пользователи, которые не приобрели машину. Также при проверке статуса вашей покупки, для неё генерируется UUID, который связывает между собой аккаунт пользователя, покупку, а также машину. Данный UUID является подтверждением подлинности покупки. Также в проекте присутствуют роли: admin и user. Admin может создавать новые машины и обновлять их. Ниже вы можете посмотреть инструкции по запуску проекта, а также его схему.

Установка

Клонирование репозитория:

git clone https://github.com/NikolaiProgramist/keep-code-test-assignment.git
cd keep-code-test-assignment

Создайте пустую базу данных Mysql и введите данные для подключения к ней в .env.example файле:

DB_DATABASE=db_name
DB_USERNAME=username
DB_PASSWORD=password

Далее переименуйте файл .env.example в .env:

mv .env.example .env

Установите зависимости:

composer install

Накатите миграции:

php artisan migrate

Заполните таблицы тестовыми данными:

php artisan db:seed --class=UserSeeder
php artisan db:seed --class=CarSeeder

Запустите сервер:

php artisan serve

Запустите фоновые schedule задачи:

php artisan schedule:work

Это необходимо для автоматического удаления просроченных токенов, а также удаления просроченной аренды.

После всего проделанного, вы сможете получить доступ к api на localhost:8000/api/v1/.

В базе данных присутствует администратор, вот его данные для аутентификации:

email: admin@mail.ru password: test1234

Tip

Вы также можете использовать коллекцию postman для тестирования. Она располагается в директории files/.

Схема проекта

Маршруты:

Маршруты

База данных:

База данных

Формула подсчёта лимита часов для продления аренды (в проекте используется лимит 24 часа):

Формула лимита часов

About

Тестовое задание для KeepCode.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages