Skip to content

🍿🎬 MyFilmList is a social networking platform and catalog for movies and TV series, allowing you to share your thoughts and discover new favorites

License

Notifications You must be signed in to change notification settings

maxbarsukov/MyFilmList

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyFilmList logo

MyFilmList

TL;DR: Еще одно приложение для отслеживания фильмов

GitHub Release GitHub License GitHub repo size
Markdown

🍿 Что такое MyFilmList?

MyFilmList — это приложение, предназначенное для отслеживания фильмов, которое позволяет вести собственные списки просмотренного, запланированного к просмотру контента, оценивать фильмы, оставлять отзывы и делиться рекомендациями, находить новые произведения для просмотра по рекомендациям, жанрам и рейтингам.

Система позволяет создавать единое место для взаимодействия пользователей, любящих кино, и предлагает множество функций для повышения удобства использования платформы.

С помощью MyFilmList пользователи могут:

  • Создавать и управлять коллекциями фильмов: Пользователи могут создавать персонализированные списки фильмов, которые они хотят посмотреть, а также отслеживать просмотренные фильмы.
  • Оставлять отзывы и оценки: Каждому фильму можно оставить отзыв и оценку, что помогает другим пользователям принимать решения о просмотре.
  • Получать рекомендации: Приложение предлагает персонализированные рекомендации на основе предпочтений пользователя и его истории просмотров.

🖥️ Приложение

Хотите увидеть MyFilmList в действии?

Не терпится узнать, как использовать API MyFilmList?


📄 Курсовая работа

MyFilmList создан в рамках курсовой работы по предмету «Информационные системы», целью которой является получение навыков и знаний, необходимых для создания информационной системы в заданной предметной области

Warning

Добрый день. Тема отклонена по причине цензуры. Придумайте что-нибудь менее нарушающее нормы приличия.
— Алексей Егошин (отвечая на проект курсовой работы "ИС Репродуктивного центра «SPER»")

anime

Tip

Если бы не цензура от лектора - ваш "банк спермы", звучит гораздо лучше как тема курсовой
— Алексей Егошин (позже)


Команда

  • Группа: P3315
  • Студенты:
    • @maxbarsukov: Барсуков Максим Андреевич 367081;
    • @pmpknu: Горляков Даниил Петрович 367165.

Задание

Текст задания на курсовую работу, а также описание всех этапов курсовой работы вы можете найти в TASK.md

Ход работы

Этап Артефакт
1 Отчёт: part1/report.pdf
2 Отчёт: part2/report.pdf
3 Отчёт: part3/report.pdf
4 Отчёт: part4/report.pdf

Оглавление

  1. Обновления
  2. Начало работы
    1. Предварительные требования
    2. Сборка и запуск
  3. Тестирование
  4. Содействие
  5. Нормы поведения
  6. Свяжитесь с нами!
  7. Безопасность
  8. Полезные ссылки
  9. Лицензия

Обновления

🎉 Вышла версия v0.1.0!

🔔 15 января 2025 (v0.1.0)
  • Реализация рекомендаций: введена новая конечная точка /feed, которая объединяет пользовательский контент, повышая вовлеченность пользователей с помощью персонализированных рекомендаций.
  • Рекомендации по коллекциям фильмов: в FeedQuery разработана система рекомендаций по коллекциям фильмов, позволяющая пользователям находить подходящий контент на основе их истории просмотров.
  • Управление ролями пользователей: реализован комплексный модуль управления ролями пользователей, включая новый UserRoleService для облегчения назначения ролей и разрешений.
  • Объекты комментариев и рецензий: добавлены объекты «Комментарий» и «Рецензия», дополненные службами для обработки операций CRUD и улучшения взаимодействия пользователя с контентом.
  • Система сообщений: введена функция «Пожаловаться» и связанные с ней службы, которые позволяют пользователям сообщать о неприемлемом контенте, обеспечивая более безопасное сообщество.
  • Функциональность коллекций фильмов: создан объект «Коллекция фильмов» с полными возможностями CRUD, позволяющий пользователям управлять своим любимым контентом.
  • Восстановление пароля: реализована функция восстановления пароля, которая позволяет пользователям безопасно сбрасывать свои пароли по электронной почте.
  • Подтверждение электронной почты: добавлена функция проверки электронной почты пользователя для обеспечения подлинности учетной записи и повышения безопасности во время регистрации пользователя.
  • Улучшенные алгоритмы рекомендаций: улучшена функция рекомендаций, позволяющая учитывать дополнительные факторы, такие как страна производства и средний рейтинг, предоставляя пользователям более релевантные предложения.

🚀 Начало работы

Предварительные требования

Убедитесь, что у вас установлен git.

Чтобы собрать и запустить это приложение локально, вам понадобится несколько вещей:

  • Установите Java (проверено на OpenJDK 17.0.12);
  • Вам понадобится PostgreSQL (проверено на 16.2);
  • ... а также Minio (проверено на RELEASE.2024-12-18T13-15-44Z);
  • Проверьте, что Node.js установлен (проверено на v20.17.12);
  • Установите pnpm (проверено на pnpm 9).

или

Склонируйте этот репозиторий:

git clone [email protected]:maxbarsukov/MyFilmList.git
cd MyFilmList

Сборка и запуск

Для начала скопируйте содержимое .env.example в файл .env и внимательно изучите его содержимое, после чего отредактируйте его в соответствии с вашим окружением и требованиями (например, поменять адрес клиента).

При изменениях .env файла запускайте в окне консоли команду:

export $(cat .env | xargs)

Warning

Если архитектура вашей системы отличается от x86-64, вам, скорее всего, понадобится пересобрать vendor/libJMagick.so.
Если вы, как и я, счастливый обладатель aarch64, то, во имя избежания многочасовых страданий, вчитайтесь в jmagick/INSTALL#L112-L121.

Для этого следуйте инструкциям по сборке JMagick (или повторите команды из jmagick_build.yml). Полученный .so файл переименуйте в libJMagick.so и поместите в директорию vendor.

Локально

  • Убедитесь, что вы установили, настроили и запустили PostgreSQL и Minio;
  • Введите ./gradlew bootRun и проверьте http://localhost:8080.
  • Чтобы запустить фронтенд, перейдите в директорию ./frontend/, запустите pnpm run dev и проверьте http://localhost:3000.

Docker

  • Запустите docker compose up и подождите, пока PostgreSQL и Minio не станут доступны.
  • Введите ./gradlew bootRun и проверьте http://localhost:8080.
  • Чтобы запустить фронтенд, перейдите в директорию ./frontend/, запустите pnpm run dev и проверьте http://localhost:3000.

✅ Тестирование

Чтобы запустить тест-раннер, введите:

export $(cat .env | xargs)
./gradlew test

🤝 Содействие

Нужна помощь? Загляните в SUPPORT.md!

Привет! Мы рады, что вы думаете о том, чтобы внести свой вклад в MyFilmList! Не стесняйтесь выбирать проблему с пометкой good first issue и задавать любые вопросы, которые вам интересны. Некоторые моменты могут быть неясны, и мы готовы вам помочь!

Отчеты об ошибках и запросы на включение приветствуются на GitHub по адресу https://github.com/maxbarsukov/MyFilmList.

Прежде чем создавать свой PR, мы настоятельно рекомендуем вам прочитать соответствующий CONTRIBUTING.md репозитория или раздел «Содействие» в README.md.

⚖️ Нормы поведения

Этот проект призван стать безопасным и гостеприимным пространством для совместной работы, и ожидается, что все, кто взаимодействует с кодовыми базами проекта MyFilmList, системами отслеживания проблем, чатами и списками рассылки, будут соблюдать кодекс поведения.

📫 Свяжитесь с нами!

💌 Хотите внести предложение или оставить отзыв? Вот некоторые каналы, по которым вы можете связаться с нами:

  • Нашли ошибку? Откройте задачу в репозитории!
  • Хотите стать частью нашего сообщества Telegram? Мы приглашаем вас присоединиться к нашему чату сообщества MyFilmList, где вы можете найти поддержку со стороны нашей команды и сообщества, а также поделиться своими проектами или просто поговорить о случайных вещах с другими участниками сообщества MyFilmList 😁!

🛡️ Безопасность

MyFilmList серьезно относится к безопасности наших программных продуктов и услуг. Если вы считаете, что обнаружили уязвимость безопасности в каком-либо репозитории, принадлежащем MyFilmList, сообщите нам об этом, как описано в нашей политике безопасности.


🌐 Полезные ссылки

Ссылка Описание
github.com/maxbarsukov/MyFilmList Репозиторий MyFilmList
mfl.maxbarsukov.ru Веб-приложение MyFilmList
mfl.maxbarsukov.ru/swagger-ui/index.html OpenAPI 3.0 документация для открытого API

🪪 Лицензия

Проект доступен с открытым исходным кодом на условиях Лицензии MIT.
Авторские права 2025 Max Barsukov & Daniil Gorlyakov

Поставьте звезду ⭐, если вы нашли этот проект полезным.


This project is published under MIT.
A maxbarsukov & pmpknu project.
- 🎉 -