essentials

Установка проекта

Сначала необходимо склонировать проекта:

git clone http://git.nic.etu/iaksenov/233-cinema-search-js-vue.git

Далее в папке с проектом нужно скачать все плагины:

npm install

Далее скомплировать и запустить:

npm run dev

Информация о проекте

Дополнительные скрипты

Состоит из одного простенького файла myUtilities.js, в котором есть только функция по генерации случайного числа в определенного диапазоне

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

Компоненты

  • FilmCard - карточка фильма. Используется для отрисовки фильмов в списках (на домашней странице, закладках и в рекомендациях)
  • FilmInfoBar - компонента для отображения информации на странице каждого фильма, чтобы не дублировать один и тот же код
  • FilmsList - копонента, которая отвечает за отрисовку списков на домашней странице и на странице с закладками. В нее передается список (который меняется только в хранилищах, т.е. сортируется и фильтруется, в результате отрисовывается)
  • NavigationBar - блок с навигацией, используется на всех страницах для переходов на страницы

Навигация

Организована через vue-router. Есть обычные переходы на страницы. Для фильмов сделаны вложенные страницы.

Хранилища

  • filmStore - основное хранилище с фильмами, их сортировкой и фильтрацией
  • userStore - хранилище с пользовательскими данными (закладки, оценки пользователя, избранное и т.п.)

Страницы

  • HomePage - домашняя страница. Есть "рекомендуемый" фильм (берется случайно), список фильмов. Фильмы можно отфильтровать, отсортировать, при нажатии на карточку перейти на нужный фильм.
  • FilmPage - полная страница фильма. На ней изображена информация о фильме, где его можно посмотреть. Здесь же фильм можно добавить в закладки, настроить в каком списке он будет, добавить в избранное или удалить из закладок. Есть секция с рекомендуемыми фильмами, но "рекомендации" определяются просто случайным образом, т.к. мне показалось недостаточным количество данных у фильмов (не нашел даже жанров), чтобы можно было придумать какой-нибудь алгоритм
  • FavouritespPage - страница с закладками. Отображаются только фильмы, котоыре в закладках. Их, как и на домашней странице, можно отсортировать, отфильтровать. Можно вывести фильмы только из определенного списка ("смотрю", "в плане" и т.п.) и можно ограничить вывод только тех фильмов, которые были добавлены в избранное (у них также есть значок в карточке)

Данные

Данные о фильмах банально были добавлены в хранилище.

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

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

Остальные файлы

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