Skip to content

pmpknu/MyFilmList

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

462 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 git@github.com: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.
- 🎉 -

About

👩🏻‍💻💻 Coursework on the subject «Information Systems». MFL is a social networking and social cataloging movies and TV series application website

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 67.9%
  • Java 25.4%
  • HTML 3.6%
  • PLpgSQL 2.3%
  • JavaScript 0.4%
  • CSS 0.3%
  • Shell 0.1%