Скорость разработки снижена, так как в последнее время я больше руководил. То, что я сделал, заняло приблизительно 4 часа. Кроме того, сегодня я начал проходить большой курс от CutCode по API. Уверен, что после курса смогу писать хороший REST API, так как моя команда ни разу не писала свой API.
cd backend/
cp .env.example .env
composer install
./vendor/bin/sail up -d
./vendor/bin/sail php artisan key:generate
./vendor/bin/sail php artisan migrate --seed
# Для перезапуска миграции и сидеров
./vendor/bin/sail php artisan migrate:fresh --seed
С фронтом, а точнее VUE очень мало опыта, но я быстро учусь,по этому не успел, так как в 4 часа точно не уложусь. Обычно фронт делается либо параллельно, либо после основного написания бека.
cd frontend/
npm install
npm run dev
Для удобного просмотра отключил защиту CSRF в файле bootstrap/app.php
$middleware->validateCsrfTokens(except: [
'event/*',
]);
Так же в роутерах не проставлен middleware на проверку авторизован пользователь или нет, сейчас стоит guest. Необходимо будет проставить auth в файле routes/web.php
Файл app/Http/Controllers/TicketController.php В нем присутствует 2 метода
checkStatus - поиск билета http://localhost/event/1/ticket/1010/status
scan - для сканера http://localhost/event/1/ticket/1010/scan
Метод ищет билет, далее проверяет статус, если не валиден то возвращает ошибку. Если валиден, меняет статус на used.
Использовал подход с Action что бы контролер был минимален SOLID и тп. Плюс методы для QueryBuildder, что бы не дублировать одни и те же запросы.
Мыслей очень много о том, что и как нужно сделать, включая рефакторинг (к рефакторингу подхожу, когда кода побольше). Например, как минимум, я бы добавил проверку в AccessEventMiddleware, чтобы только ответственные пользователи могли добавлять или изменять модели тикетов.
Так же по поводу тестов в первую очередь приступил бы к ней, после того когда хотя бы один контролер был бы написан до конца.
- Задача на миграции, модели, подумать об архитектуре всего проекта.
- Контролер Тикетов его методы и Actions
- написание тестов для тикетов
- Контролеры для театра и событий
- Подход к авторизации и всему что с ним связанно (по умолчанию стоит sanctum + breeze)
- Рефакторинг скорее всего переход на DDD если он того требует
- FRONT верстка
- FRONT vue далее уже отдельно декомпозировать на подзадачи