Filmorate
📌 Описание проекта
Filmorate — сервис управления пользовательскими предпочтениями в области кино. Пользователи могут отмечать лайками понравившиеся картины, добавлять друзей и находить самые популярные фильмы.
📂 Архитектура
● Storage-уровень: реализация через JdbcTemplate, обобщённый базовый класс BaseDbStorage для типовых операций
(insert, update, delete, findOne, findMany).
● DbStorage-классы: отдельные DAO для пользователей, фильмов, жанров и рейтингов.
● Сервис-уровень: бизнес-логика, валидация данных, обработка ошибок (ValidationException, NotFoundException).
● Контроллеры: REST API для пользователей, фильмов, жанров и рейтингов.
⚙️ Функционал
Пользователи
● Создание нового пользователя.
● Обновление данных пользователя.
● Получение информации обо всех пользователях.
● Получение пользователя по id.
● Добавление в друзья.
● Удаление из друзей.
● Получение списка друзей пользователя.
● Получение списка общих друзей двух пользователей.
Фильмы
● Добавление нового фильма.
● Редактирование фильма.
● Получение информации обо всех фильмах.
● Получение фильма по id.
● Лайк фильма пользователем.
● Удаление лайка у фильма.
● Получение списка популярных фильмов (сортировка по количеству лайков, с ограничением по count).
Жанры
● Получение списка всех жанров.
● Получение жанра по id.
Рейтинги MPA
● Получение списка всех рейтингов.
● Получение рейтинга по id.
🛠️ Стек технологий
● Java
● Spring Framework (Boot, MVC)
● JDBC Template
● Spring Test
● H2
● Git
● Postman (тестирование API)
● REST
● Maven
