РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
77 of 103 menu

Доска позора города N

Реализуйте доску позора для определенного города, на которой пользователи могут публиковать различные жалобы на службы и людей. Выберите один из областных городов любой страны либо возьмите свой родной город.

Продумайте структуру базы данных для хранения пользователей, жалоб, категорий, голосов и комментариев. Реализуйте регистрацию и авторизацию пользователей. Настройте серверную часть для работы с API. Все операции должны выполняться через AJAX-запросы без перезагрузки страницы.

Основные возможности проекта

  • Регистрация и авторизация пользователей.
  • Главная страница со списком жалоб и пагинацией.
  • Страница жалобы с полной информацией.
  • Комментарии к жалобам (с регистрацией).
  • Админ-панель для модерации жалоб.
  • Голосование за жалобы (поддержка/не поддержка).
  • Все операции выполняются через AJAX без перезагрузки страницы.

Регистрация и авторизация

На сайте должна быть реализована регистрация и авторизация пользователей:

  • Регистрация - форма с полями: логин, email, пароль.
  • Авторизация - форма с полями: логин, пароль.
  • Жалобы могут оставлять только зарегистрированные пользователи.
  • Комментарии могут оставлять только зарегистрированные пользователи.

Главная страница

На главной странице сайта должен выводиться список из 10 жалоб с пагинацией. Для каждой жалобы должны выводиться:

  • Заголовок жалобы.
  • Автор жалобы.
  • Категория жалобы.
  • Первые 20 слов жалобы.
  • Количество голосов "поддерживаю".
  • Ссылка на страницу с полным текстом жалобы.
  • Дата публикации.

На странице должна быть возможность фильтровать жалобы по категории через AJAX.

Страница жалобы

На странице жалобы должны выводиться:

  • Заголовок жалобы.
  • Автор жалобы.
  • Категория жалобы.
  • Полный текст жалобы.
  • Дата публикации.
  • Кнопки голосования: "Поддерживаю" и "Не поддерживаю".
  • Количество голосов "за" и "против".

Голосование

Зарегистрированные пользователи могут голосовать за жалобы:

  • Две кнопки: "Поддерживаю" и "Не поддерживаю".
  • Один пользователь может проголосовать только один раз.
  • После голосования отображается обновленное количество голосов.

Комментарии

На странице жалобы пользователи сайта могут оставлять комментарии:

  • Комментарии могут оставлять только зарегистрированные пользователи.
  • Форма комментария: текст комментария (текстареа).
  • Отображение имени автора комментария, даты и текста.
  • Комментарии отображаются в хронологическом порядке (сначала старые).
  • Количество комментариев у жалобы.

Добавление жалобы

Зарегистрированные пользователи могут добавлять жалобы через форму на сайте. Форма добавления жалобы содержит следующие поля:

  • Заголовок жалобы (инпут).
  • Категория (выпадающий список).
  • Текст жалобы (текстареа).
  • Кнопка "Отправить на модерацию".

После отправки жалоба попадает в очередь на модерацию.

Админ-панель

Жалобы должны проходить модерацию через админ-панель. Администратор может управлять жалобами:

  • Список всех жалоб с фильтром по статусу (на модерации, одобрена, отклонена) и по категории.
  • Для каждой жалобы: заголовок, автор, категория, статус, дата.
  • Действия: принять (одобрить), отклонить (с указанием причины), редактировать.
  • При отклонении жалобы автору отправляется уведомление с причиной.

Взаимодействие с сервером

Все операции выполняются через AJAX-запросы:

  • При загрузке страницы данные загружаются с сервера.
  • При добавлении, редактировании, удалении или изменении статуса жалобы данные отправляются на сервер, после успешного ответа обновляется интерфейс.
  • При голосовании данные отправляются на сервер, после успешного ответа обновляется количество голосов.

Дополнительные возможности

  • Поиск жалоб по заголовку или автору.
  • Сортировка жалоб по дате, по количеству голосов, по количеству комментариев.
  • Статистика по категориям (количество жалоб в каждой категории).
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить