Проект гостевой книги на Laravel Framework. Позволяет оставлять записи с прикрепленными изображениями.
Основные возможности:
- Добавление записей. Записи может оставлять любой посетитель сайта. Защита от роботов с помощью Google Recaptcha. К записям можно прикреплять изображения;
- Просмотр существующих записей. Вывод всех оставленных записей в книге на главной странице с постраничной разбивкой. Изображения выводятся в виде галереи на Lightbox;
- Регистрация. Приложение поддерживает регистрацию. Зарегистрированный пользователь может редактировать (в том числе добавлять и удалять изображения) и удалять свои записи, а также выбирать количество записей, отображаемых на страницу в постраничной разбивке;
- Отправка уведомлений о новых записях. При желании, можно включить уведомления для администратора системы о новых записях в гостевой книге.
Так как приложение написано на Laravel Framework, нужно выполнить ряд требований для подготовки среды, в которой оно будет выполняться. Подробнее о требованиях к серверу можно прочитать тут. Там же описаны настройки веб-сервера для отображения "красивых" URL. Помимо указанных расширений для PHP, на сервере должно быть установлено расширение GD. С его помощью создаются миниатюры для загружаемых изображений.
Далее нужно установить СУБД, так как в ней приложение хранит свои данные. Список поддерживаемых СУБД можно найти тут.
Для получения проекта из системы контроля версий и установки зависимостей, нужно чтобы на сервере были установлены Git и Composer.
После этого можно приступить к развертыванию приложения. Оно включает следующие шаги:
- Клонировать проект из git-репозитория (либо загрузить его) -
git clone https://github.com/Nikita-C47/gb.git
; - Перейти в корневую директорию проекта;
- Установить зависимости (фреймворк и вспомогательные библиотеки) с помощью Composer -
composer install
.
После того как исходный код приложения развернут, нужно заняться его конфигурацией. В проекте присутствует файл .env.example, на основе которого можно заполнить конфигурацию приложения. Сохраните его под названием .env и заполните в файле .env следующие параметры (подробнее о заполнении файлов такого типа написано здесь):
APP_NAME
- название приложения. Отображается, например, на верхней навигационной панели. Вы можете задать свое, если Вас не устраивает стандартное;APP_ENV
- окружение приложения. При развертывание на рабочем сервере, нужно указатьproduction
;APP_DEBUG
- включение или отключение отладки. При включенной отладке все ошибки отображаются в браузере. На рабочем сервере должна быть отключена;APP_URL
- хост, на котором разворачивается приложение (используется, например, при генерации ссылок, так что важный параметр);DB_CONNECTION
- используемое подключение к СУБД (список поддерживаемых СУБД можно найти выше), там же описано как заполнять данный параметр и все параметры, связанные с БД;DB_HOST
- хост СУБД;DB_PORT
- порт СУБД;DB_DATABASE
- база данных приложения;DB_USERNAME
- имя пользователя для подключения к СУБД (пользователь должен иметь полные права на базу данных);DB_PASSWORD
- пароль пользователя для подключения к СУБД.
Заключительный этап - настройка Google Recaptcha. Для ее использования, необходимо
получить ключ и секрет для вашего ресурса. В проекте
используется Recaptcha v.2 типа чекбокс. После получения этих данных, нужно указать их в переменных
GOOGLE_RECAPTCHA_KEY
и GOOGLE_RECAPTCHA_SECRET
(ключ и секрет, соответственно) файла .env.
Дополнительный этап - настройка уведомлений в приложении. По-умолчанию уведомления о новых записях в гостевой книге отключены. Если Вы хотите их включить, нужно выполнить ряд шагов. Первое (и самое очевидное) - настроить отправку электронной почты с сервера. Второе - установить движок очередей, так как уведомления отправляются отложенно. Список поддерживаемых движков можно найти тут. Соответственно для того, чтобы задания в очереди обрабатывались, нужно запустить воркер. О том как это сделать читайте здесь (там же присутствует конфигурация для Supervisor, к примеру).
После того, как необходимое ПО установлено и настроено, нужно внести изменения в файл конфигурации .env, в котором необходимо указать следующие параметры:
QUEUE_CONNECTION
- используемый движок очередей. О поддерживаемых движках и заполнении этого параметра упоминалось выше. При использовании Redis, нужно будет заполнить секцию с его настройками. В частности переменныеREDIS_HOST
,REDIS_PASSWORD
иREDIS_PORT
;MAIL_DRIVER
- используемый драйвер для почты. Поддерживается как обычный SMTP, так и сторонние сервисы;MAIL_HOST
- хост сервера отправки электронной почты;MAIL_PORT
- порт сервера отправки электронной почты;MAIL_USERNAME
- имя пользователя для сервера отправки электронной почты;MAIL_PASSWORD
- пароль пользователя для сервера отправки электронной почты;MAIL_ENCRYPTION
- используемое шифрование электронной почты;MAIL_FROM_ADDRESS
- адрес, от которого ведется отправка сообщений;MAIL_FROM_NAME
- имя, от которого ведется отправка (по-умолчанию - название приложения);ENABLE_NOTIFICATIONS
- настройка, отвечающая за включение отправки уведомлений. Для включения нужно указатьtrue
, для отключения -false
;ADMIN_EMAIL
- email, на который, собственно, и будут отправляться уведомления о новых записях.
Сам Laravel распространяется по лицензии MIT, как и многие компоненты, входящие в этот проект. Галерея картинок к каждой записи реализована на Lightbox. На использование проекта не налагается никаких ограничений, Вы можете модифицировать и изменять его по своему усмотрению. Моей целью в нем было только саморазвитие и еще один проект в портфолио. По всем вопросам, связанным с проектом, обращайтесь на мой контактный email - nikita_c47@outlook.com.