Это приложение предназначено для возврата, рекомендованных к просмотру, фильмов. Данный проект являлся групповым.
В нём принимали участие: Valerianjones1, Evgeniy9005, Scal3, xdpxrt, OlgaZrvn.
Используемый стэк: Spring Boot, SQL, PostgreSQL, JDBC Template, Lombok, Maven.
В этом приложении пользователи могут найти себе какие-нибудь интересные фильмы для просмотра. А так же оставлять рецензии на них.
Ниже приведён обобщённый список с функциями:
- Добавление, обновление и удаление фильмов
- Добавление, обновление и удаление пользователей
- Получение списков всех фильмов и всех пользователей
- Оставление, удаление и оценка полезности отзывов к фильмам
- Получение фильмов, пользователей и отзывов по ид
- Добавление и удаление пользователями друг друга в друзья
- Получение списков индивидуальных и общих друзей
- Добавление и удаление пользователями оценок к фильмам
- Получение списков общих понравившихся фильмов
- Получение списка популярных фильмов разного размера
- Получение самого популярного фильма
- Просмотр активности пользователей
- Получение рекомендованных фильмов
Отдельно стоит остановиться на оценках, рейтингах и рекомендациях.
У пользователей есть возможность оставить оценку к фильму.
На основе этих оценок, составляются рейтинги фильмов. При чём, этот рейтинг формируется
таким образом, чтобы фильм всего с одной оценкой в 10 баллов не оказалось выше в рейтинге фильма с нескольким
оценками по 9 баллов каждая.
Рекомендации.
Алгоритм рекомендаций работает следующим образом: Сначала выявляются все пользователи, оценившие те же фильмы,
что и целевой пользователь. Далее высчитывается тот пользователь, чья разница в оценках будет минимальная,
т.е. пользователь с максимально похожими "вкусами". Затем, в качестве рекомендаций, целевому пользователю предлагаются
все фильмы, которые положительно оценил "похожий" пользователь.
Если тесты не запускаются, то необходимо в файле application.properties изменить настройку сохранения базы данных.
Сейчас база сохраняется в файл:
spring.datasource.url=jdbc:h2:file:./db/filmorate
Нужно сохранять в памяти:
spring.datasource.url=jdbc:h2:mem:filmorate