Skip to content

meneshev/java-filmorate-group

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

100 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Filmorate — REST API сервис оценки фильмов

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.

Командная часть (Расширенный функционал)

Совместно с командой разработчиков были спроектированы и внедрены следующие модули:

  • Отзывы: Возможность оставлять текстовые отзывы на фильмы, ставить им оценки (лайк/дизлайк) и сортировать по полезности.
  • Поиск: Поиск фильмов по названию и по режиссеру.
  • Общие фильмы: Вывод общих с другом фильмов с сортировкой по популярности.
  • Рекомендации: Алгоритм рекомендации фильмов на основе совпадения лайков с другими пользователями.
  • Лента событий: История действий пользователя платформы (добавление в друзья, лайки, отзывы).

💻 Как запустить проект локально

  1. Склонируйте репозиторий:
    git clone [https://github.com/meneshev/java-filmorate-group.git](https://github.com/meneshev/java-filmorate-group.git)
    
  2. Перейдите в директорию проекта:
    cd java-filmorate-group
    
  3. Соберите проект и запустите приложение (пример для Maven):
    mvn clean install
    mvn spring-boot:run
    

Сервис будет доступен по адресу: http://localhost:8080

About

Group project for create extra features to filmorate application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages