Skip to content

agdobrynin/laravel-bnb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Учебный проект - аренда жилья (Fullstack - Laravel & Vue3).

🎫 Сертификат об успешном прохождении курса.

Создано 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 для получения краткой справки о доступных командах.

  1. Сгенерировать application key

    ./vendor/bin/sail artisan key:generate
  2. Выполинть миграции и заполинть таблицы тестовыми данными

    ./vendor/bin/sail artisan migrate --seed
  3. Собрать фронт

    ./vendor/bin/sail npm install
    ./vendor/bin/sail npm run build

Выполенние тестов

Обычный режим выполнения тестов:

./vendor/bin/sail test

Выполннение тестов в параллельном режиме

./vendor/bin/sail test --parallel

Доступные сайты в dev окружении

Host Назначение
http://localhost сайт приложения
http://localhost/api/documentation Документация на API - swagger-php, swagger UI
http://localhost:8080 Adminer - вэб интерфейс к базе. Логин, пароль и имя базы взять из .env файла
http://localhost:8025 Mailpit - вэб интерфейс для отладки отправки email сообщения

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published