Filmorate — это веб-приложение для киноманов, которое объединяет функции кинообозревателя и социальной платформы. Мы создали этот проект, чтобы решить проблему поиска фильмов, общения с единомышленниками и получения персонализированных рекомендаций в одном удобном месте. Это не просто каталог фильмов — это сообщество, где вы можете делиться впечатлениями, находить друзей и вдохновляться на новые просмотры.
Зачем мы это делали?
Изначально Filmorate родился как учебный проект для отработки навыков работы с Spring Boot и JDBC, но превратился в нечто большее. Нам хотелось создать инструмент, который:
- Помогает пользователям находить фильмы по своим вкусам.
- Дает возможность обсуждать кино с друзьями через лайки, отзывы и рекомендации.
- Объединяет любителей кино в одном месте.
Какую боль он закрывает?
Если вы устали от бесконечного скроллинга стриминговых платформ или хотите узнать, что смотрят ваши друзья, Filmorate — это ваше решение. Здесь вы найдете не только фильмы, но и сообщество, которое разделяет вашу страсть к кино.
Технологический стек:
- Java 21 — основа нашего надежного кода.
- Spring Boot 3.2.4 — для быстрого старта и удобного управления.
- JDBC — для работы с базой данных.
- Lombok — чтобы писать меньше бойлерплейта.
- JUnit 5 — для тестирования функциональности.
- Maven — для сборки и управления зависимостями.
- H2 Database — легковесная база данных для хранения данных в памяти.
Filmorate предлагает всё, что нужно любителю кино:
- Управление данными:
- Создание, обновление и удаление фильмов, пользователей и режиссёров.
- Хранение: Данные хранятся в памяти с использованием H2.
- Поиск: Фильтры по названию и режиссёрам.
- Социальные функции:
- Ставьте лайки фильмам.
- Оставляйте отзывы.
- Добавляйте друзей (двухсторонняя дружба).
- Просматривайте общих друзей.
- Рекомендации: Персонализированные подборки на основе ваших предпочтений.
- Активность:
- Рейтинг фильмов.
- Лента событий друзей.
- Список самых активных пользователей.
- Эндпоинты API:
/users
— управление пользователями./films
— работа с фильмами./genres
— жанры./mpa
— рейтинги MPA./reviews
— отзывы./directors
— режиссёры.
- Java 21 или выше.
- Maven 4.0.0 или выше.
- Операционная система: Windows, macOS, Linux.
- H2 Database (встроена, дополнительные настройки не требуются).
- Клонируйте репозиторий:
git clone https://github.com/your-username/filmorate.git
- Перейдите в директорию проекта:
cd filmorate
- Соберите проект:
mvn clean install
- Запустите приложение:
- В среде разработки (IntelliJ IDEA, Eclipse, VSCode): найдите класс FilmorateApplication.java и нажмите "Run".
- Или через терминал: mvn spring-boot:run
- Проверьте работу: Откройте браузер и перейдите по адресу http://localhost:8080
Если всё сделано правильно, вы увидите работающее приложение!
Мы не собираемся останавливаться! Вот что мы планируем:
- Оптимизация поиска: Добавить фильтры по жанрам и году выпуска через новые индексы в H2 для ускорения запросов.
- Улучшение рекомендаций: Интегрировать простую систему машинного обучения с использованием библиотеки Apache Mahout для анализа предпочтений.
- Интерфейс: Переписать фронтенд на React, чтобы сделать интерфейс более интерактивным и современным.
- Расширение API: Добавить эндпоинт /films/popular с сортировкой по количеству лайков и просмотров.
- Тестирование: Покрыть сложные сценарии интеграционными тестами с помощью Testcontainers.
- Простота: Всё, что нужно для кино — в одном месте.
- Социальность: Делитесь впечатлениями и находите друзей.
- Персонализация: Рекомендации, которые действительно работают для вас.
- Email: yasha.golotin@mail.ru