Skip to content

Сборник статей на Laravel Framework

Notifications You must be signed in to change notification settings

Nikita-C47/articles

Repository files navigation

Сборник статей

Простой сборник статей на 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.