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