Filmorate — это бэкенд-приложение, социальная сеть для любителей кино. Сервис позволяет пользователям регистрироваться, добавлять друг друга в друзья, ставить лайки фильмам, писать отзывы и получать рекомендации к просмотру на основе предпочтений.
Проект разрабатывался в два этапа: сначала индивидуально была заложена базовая архитектура и основной функционал, а затем в рамках командной работы были добавлены сложные фичи.
- Язык программирования: Java
- Фреймворк: Spring Boot
- Архитектура: REST API
- Сборка проекта: Maven (или Gradle - укажи нужное)
- База данных: PostgreSQL / H2 (укажи нужное)
- Инструменты: Git, GitHub, Postman (для тестирования)
Мной были реализованы следующие эндпоинты и бизнес-логика:
- Пользователи и друзья:
PUT /users/{id}/friends/{friendId}— добавление в друзья.DELETE /users/{id}/friends/{friendId}— удаление из друзей.GET /users/{id}/friends— получение списка друзей пользователя.GET /users/{id}/friends/common/{otherId}— получение списка общих друзей с другим пользователем.
- Фильмы и лайки:
PUT /films/{id}/like/{userId}— поставить лайк фильму.DELETE /films/{id}/like/{userId}— убрать лайк.GET /films/popular?count={count}— получение списка популярных фильмов по количеству лайков (по умолчанию 10).
- Справочники:
GET /genresиGET /genres/{id}— получение списка всех жанров или конкретного жанра по ID.GET /mpaиGET /mpa/{id}— получение списка всех возрастных рейтингов или конкретного по ID.
Совместно с командой разработчиков были спроектированы и внедрены следующие модули:
- Отзывы: Возможность оставлять текстовые отзывы на фильмы, ставить им оценки (лайк/дизлайк) и сортировать по полезности.
- Поиск: Поиск фильмов по названию и по режиссеру.
- Общие фильмы: Вывод общих с другом фильмов с сортировкой по популярности.
- Рекомендации: Алгоритм рекомендации фильмов на основе совпадения лайков с другими пользователями.
- Лента событий: История действий пользователя платформы (добавление в друзья, лайки, отзывы).
- Склонируйте репозиторий:
git clone [https://github.com/meneshev/java-filmorate-group.git](https://github.com/meneshev/java-filmorate-group.git)
- Перейдите в директорию проекта:
cd java-filmorate-group - Соберите проект и запустите приложение (пример для Maven):
mvn clean install mvn spring-boot:run
Сервис будет доступен по адресу: http://localhost:8080