Filmorate is an educational group project for developers studying at Yandex Practicum Java Developer course. This repository contains a backend for the movie search REST API service.
teamlead:
developers:
code reviewer:
- Sergey Mamonov, Yandex Practicum
java mentor:
- Egor Erokhin, Yandex Practicum
Technologies were used:
- Java, version 11
- Spring Boot
- Maven
- Git
- Lombok
- Logbook
- H2 Database
- Postman
-
Core Functionality
main contributor: Andrei Sheryshov
other contributors: Polina Shmargunova (delete by id for Films and Users); Anastasiya Salip(core for Reviews)
supports: Users, Films, Genres, Ratings, Reviews, Directors
- create
- update
- get all
- get by id
- delete by id
-
Additional Functionality
-
Friendship functionality
main contributor: Andrei Sheryshov
supports: Users
- add friends
- delete friends
- get list of friends
- get list of common friends with another user
-
Like functionality
main contributor: Andrei Sheryshov
supports: Films
- add like
- delete like
- get list of popular(most liked) films
-
Review and Grade functionality
main contributor: Anastasiya Salip
supports: Reviews
- get list of reviews by film id sorted by users grades
- add grade (like or dislike)
- delete grade (like or dislike)
-
Search functionality
main contributor: Polina Shmargunova
supports: Films
- get list of popular(most liked) films based on search query. The algorithm is able to search by substring in the title of the film or the name of the director.
-
Common films functionality
main contributor: Alexey Charushkin
supports: Films
- get list of common popular(most liked) films for friends
-
Recommendations functionality
main contributor: Alexey Charushkin
supports: Users
- get list of films based on similar users choices. More information about the algorithm.
-
Feed functionality
main contributor: Ivan Rosokhach
supports: Users
- get list of users event by user id
-
Other specific functionality
main contributor: Ivan Rosokhach
supports: Films
- get list of popular(most liked) films filtered by genre and year of release
main contributor: Andrei Sheryshov
supports: Films
- get list of films filtered by director and sorted by popular(most liked) or year of release
-
Learn more information about endpoints and provided JSON - objects in project documentation.
Author of the project database architecture: Andrei Sheryshov
