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