Простой сборник статей на Laravel Framework. Поддерживает добавление статей и комментариев к ним. Основные возможности:
- Добавление статей. Добавлять статьи может только авторизованный пользователь. У статьи можно выставить статус публикации (в публичной части будут отображаться только опубликованные статьи);
- Просмотр статей в публичной части. В публичной части отображается список опубликованных статей. Любой, кто зашел на сайт может посмотреть его и прочитать каждую из статей;
- Комментирование статей. Любой посетитель сайта может оставить комментарий к статье. Если он не авторизован, добавляется Google Recaptcha для того, чтобы удостовериться что он не робот;
- Удаление комментариев. В административной части можно удалять комментарии, которые не удовлетворяют политике сайта в отношении общения пользователей;
- Уведомление о новых комментариях. При наличии сервера электронной почты, можно настроить отправку уведомлений о новых комментариях.
Так как приложение написано на Laravel Framework, нужно выполнить ряд требований для подготовки среды, в которой оно будет выполняться. Подробнее о требованиях к серверу можно прочитать тут. Там же описаны настройки веб-сервера для отображения "красивых" URL.
Далее нужно установить СУБД, так как в ней приложение хранит свои данные. Список поддерживаемых СУБД можно найти тут.
Для получения проекта из системы контроля версий и установки зависимостей, нужно чтобы на сервере были установлены Git и Composer.
После этого можно приступить к развертыванию приложения. Оно включает следующие шаги:
- Клонировать проект из git-репозитория (либо загрузить его) -
git clone https://github.com/Nikita-C47/articles.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
- пароль пользователя для подключения к СУБД.
После установки этих параметров, нужно заполнить базу данных приложения. Проект не подразумевает большое
количество пользователей, поэтому тут нет полноценного функционала для их создания. Однако в проекте
присутствует класс database/seeds/UsersSeeder. В нем есть массив $users
, в котором можно указать список
пользователей, которых нужно добавить в приложение. Там можно прописать отображаемое имя, email и пароль.
После того, как этот массив будет заполнен реальными данными, нужно выполнить команду php artisan db:seed
и пользователи будут загружены в приложение. Если вдруг нужно добавить еще пользователей, нужно просто
добавить их в массив $users
и выполнить команду снова. Существующие пользователи будут не тронуты, а
новые - добавлены.
Заключительный этап - настройка 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
.
Сам Laravel распространяется по лицензии MIT, как и многие компоненты, входящие в этот проект (например Vue.js). На использование проекта не налагается никаких ограничений, Вы можете модифицировать и изменять его по своему усмотрению. Моей целью в нем было только саморазвитие и еще один проект в портфолио. По всем вопросам, связанным с проектом, обращайтесь на мой контактный email - nikita_c47@outlook.com.