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