Блог IT тематики
Реализуйте блог IT тематики, в котором авторы будут писать и размещать статьи на IT тему. Сайт должен поддерживать регистрацию с разделением по ролям: пользователь, автор, модератор, администратор.
Основные возможности проекта
- Просмотр статей на главной странице с пагинацией и категориями
- Детальная страница статьи с комментариями
- Система ролей: пользователь, автор, модератор, администратор
- Создание и управление статьями для авторов
- Модерация статей с возможностью правки, одобрения или отклонения
- Администрирование пользователей (назначение ролей, бан, удаление)
- Комментирование статей зарегистрированными пользователями
Регистрация и роли
На сайте должна быть реализована система регистрации и авторизации с разделением по ролям:
- Регистрация пользователя (имя, email, пароль)
- Авторизация по email и паролю
- Восстановление пароля через email
- Валидация всех полей на стороне сервера
- Четыре роли пользователей:
- Пользователь - может читать статьи и оставлять комментарии
- Автор - может создавать и редактировать свои статьи
- Модератор - проверяет статьи, вносит правки, одобряет или отклоняет
- Администратор - управляет пользователями (назначает роли, банит, удаляет)
Главная страница
На главной странице блога должен быть выведен список 10 последних статей с пагинацией:
- Заголовок статьи (ссылка на полный текст)
- Краткое описание (анонс)
- Дата публикации
- Категория (ссылка на список статей данной категории)
- Автор статьи
- Количество комментариев
Статьи должны быть отсортированы по убыванию даты (сначала новые). В хедере сайта должно быть меню со списком категорий для быстрой навигации.
Страница статьи
На странице отдельной статьи должна быть представлена полная информация:
- Заголовок статьи
- Категория (ссылка на список статей данной категории)
- Автор статьи
- Дата публикации
- Полный текст статьи
- Количество просмотров
Под текстом статьи должны размещаться комментарии пользователей и форма для добавления комментария. Комментарии могут оставлять только зарегистрированные пользователи.
Личный кабинет автора
На главной странице админки автор должен видеть список своих статей (последние 10 с пагинацией):
- Заголовок статьи (ссылка на редактирование)
- Статус статьи: черновик, ожидает одобрения, одобрена, отклонена
- Дата создания и последнего обновления
- Действия: редактировать, удалить, отправить на модерацию
- Фильтр для вывода статей с определенным статусом
- Ссылка на создание новой статьи
Добавление статьи (для автора)
На странице добавления статьи располагается форма со следующими полями:
- Заголовок статьи (инпут)
- Краткое описание (текстареа)
- Полный текст статьи (текстареа или визуальный редактор)
- Категория (выпадающий список)
- Теги (для SEO-оптимизации)
- Изображение для превью (загрузка файла)
- Кнопки: "Сохранить как черновик" и "Отправить на модерацию"
Личный кабинет модератора
На главной странице админки модератор должен видеть список статей, ожидающих проверки:
- Заголовок статьи (ссылка на полный текст)
- Автор статьи
- Дата отправки на модерацию
- Категория
- Действия: прочитать, редактировать (внести правки), одобрить, отклонить
- При отклонении статьи модератор должен оставить комментарий с причиной отклонения в специальной форме
- История модерации (кто и когда одобрил/отклонил статью)
Личный кабинет администратора
На главной странице админки администратор должен видеть список всех пользователей:
- Имя пользователя и email
- Текущая роль (пользователь, автор, модератор, администратор)
- Дата регистрации
- Статус (активен, забанен)
- Количество статей (для авторов)
- Действия: изменить роль, забанить, разбанить, удалить пользователя
- Фильтр для вывода пользователей с определенной ролью
- Поиск пользователей по имени или email
Комментарии
На сайте должна быть реализована система комментирования статей:
- Комментарии могут оставлять только зарегистрированные пользователи
- Отображение имени автора комментария и даты
- Возможность удалять свои комментарии
- Администратор и модератор могут удалять любые комментарии
- Комментарии отображаются в хронологическом порядке (старые сверху или новые сверху)
- Вложенные комментарии (ответы на комментарии)
Дополнительные возможности
- Поиск статей по ключевым словам
- Похожие статьи (по категории или тегам)
- Подписка на новые статьи по категории (email-уведомления)
- Редактор для форматирования текста статьи (WYSIWYG)
- Статистика блога: количество статей, комментариев, пользователей