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