🎫 Сертификат об успешном прохождении курса.
Создано SPA приложение "Анернда" с возможностью регистарции пользователя и верификации аккаунта чрезе email сообщение.
Добавлена возможность управление аккаунтом пользователя - смена email адреса, имени, смена пароля, сброс и смена забытого пароля, ссылка подтверждения email адреса.
Для страницы просмотра предложений аренды разработана система фильтарции предложений и пагинации (постраничный вывод).
Для сделанных бронирований пользоватля или анонимного пользователя предустмотерна возжноноть оставить отзыв с выставлнием рейтинга адрендуемого жилья.
Разработана система оповещения через email о возможности оставить отзыв о бронированиии арендуемом жилье.
Стек:
- 🐘 Php 8.2 + Laravel 9 (пакет Fortify для авторизации и регистрации пользователя)
- 🥉 Vue 3 by composition api + TypeScript + Pug + Pinia
- 🧶 Boostrap css 5
- 🦖 MariaDb
- 📗 Swagger php, Swagger UI - документация к API
- ⛑ Phpunit - тестирование.
- 🐋 Docker, Docker compose, Laravel Sail - для локальной разработки.
Темы изученые в курсе
In Laravel:
- Routing, Routing api resource, Middlewares
- Eloquent ORM
- Models, Models event, Migrations
- Seeding databases with fake data
- Database relations - creating, managing
- Laravel Fortify: authentication & authorization - registering users, signing in, user verification, limiting access
- Sending emails, and testing emails locally using Mailtip!
- Pagination & Filtering for collection with "query scope"
- Input data validation from SPA forms
In Vue:
- Composition API
- Reactive data
- Computed properties
- Use composable function
- Passing data using props
- Emitting custom events
- Making requests with axios
- Components & component slots
- Creating layouts
- Use Pinia as data store
- Form data validation
Для развертывания проекта потребуется установленный 🐳 docker или же 🐋 docker desktop проект будет работать как на Windows с поддержкой WSL2 так и на Linux машине.
Локальная разработка и тестирование проекта использует легковесный Laravel Sail для работы с docker контейнерами.
Настроить переменные окружения (если требуется изменить их):
cp .env.example .envУстановить зависимости проекта:
docker run --rm -u "$(id -u):$(id -g)" \
-v $(pwd):/var/www/html \
-w /var/www/html \
laravelsail/php82-composer:latest \
composer install --ignore-platform-reqsна этом подготовка к работе с Laravel Sail закончена.
Поднять docker контейнеры с помощью Laravel Sail
./vendor/bin/sail up -dдоступные команды по остановке или пересборке контейнеров можно узнать на странице
Laravel Sail
или выполните команду ./vendor/bin/sail для получения краткой справки о доступных командах.
-
Сгенерировать application key
./vendor/bin/sail artisan key:generate
-
Выполинть миграции и заполинть таблицы тестовыми данными
./vendor/bin/sail artisan migrate --seed
-
Собрать фронт
./vendor/bin/sail npm install
./vendor/bin/sail npm run build
Обычный режим выполнения тестов:
./vendor/bin/sail testВыполннение тестов в параллельном режиме
./vendor/bin/sail test --parallel| Host | Назначение |
|---|---|
| http://localhost | сайт приложения |
| http://localhost/api/documentation | Документация на API - swagger-php, swagger UI |
| http://localhost:8080 | Adminer - вэб интерфейс к базе. Логин, пароль и имя базы взять из .env файла |
| http://localhost:8025 | Mailpit - вэб интерфейс для отладки отправки email сообщения |