/movies-explorer-frontend

Фронтенд для проекта "FilmFinder - личная коллекция фильмов"

Primary LanguageJavaScript

Фронтенд для проекта "FilmFinder - личная коллекция фильмов"

Описание проекта

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

Приложение находится по адресу: https://movies-explorer.ichet.nomoredomainsclub.ru/signin

Функциональность

  • Поиск фильмов: на главной странице введите ключевые слова в строку поиска и нажмите кнопку "Искать". Система отобразит список фильмов, соответствующих вашему запросу.
  • Сохранение фильмов: для сохранения фильма в личном кабинете нажмите на иконку сердечка или кнопку "Сохранить" на карточке фильма.
  • Просмотр сохраненных фильмов: перейдите в раздел "Сохраненные фильмы" в вашем личном кабинете, чтобы просмотреть список избранных фильмов.
  • Возможность регистрации и авторизации пользователей для создания личного кабинета с применением JWT.
  • Редактирование информации профиля
  • Возможность ставить и убирать лайки фильмам;
  • Лайв-валидация форм на клиенте с использованием JS

Технологии:

React, HTML5, CSS3, JavaScript (ES6+), Form Validation, Fetch API, async/await, JSON, Webpack, Babel, NPM, Git, HTTPS/SSL, JWT, БЭМ, ООП

Фронтенд

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

HTML5: Структура веб-страницы, использование семантических тегов для обеспечения доступности и SEO-оптимизации.

CSS3: Адаптивная и кроссбраузерная верстка с использованием медиазапросов, стилизация элементов, включая Flexbox и Grid для создания адаптивных макетов, анимации и переходы для улучшения визуального взаимодействия.

JavaScript (ES6+): Динамическое взаимодействие на стороне клиента, использование современных возможностей языка для обработки событий, асинхронных операций и манипуляций с DOM.

Валидация

HTML5 Form Validation: Использование встроенных средств HTML5 для валидации форм на стороне клиента, улучшение пользовательского опыта.

JavaScript: Дополнительная клиентская валидация, включая асинхронную проверку данных и кастомные правила валидации.

Взаимодействие с сервером

Fetch: Отправка асинхронных HTTP-запросов к серверу для работы с REST API, обработка ответов и ошибок.

async/await: Упрощение работы с асинхронным кодом, повышение читаемости и удобства отладки.

JSON: Работа с форматом передачи данных, сериализация и десериализация.

Сборка и разработка

Webpack: Настройка процесса сборки, включая минификацию, объединение и транспиляцию кода.

Babel: Транспиляция JavaScript-кода для обеспечения совместимости с более старыми браузерами.

NPM: Управление зависимостями проекта, автоматизация задач разработки и сборки.

Git: Отслеживание изменений в коде, ветвление и слияние, работа с удаленными репозиториями.

HTTPS/SSL: Использование защищенного соединения для обмена данными между клиентом и сервером.

JWT: Авторизация с помощью JWT

БЭМ: Организация CSS-кода и файловой структуры проекта для повышения читаемости и упрощения масштабирования кода.

ООП: применение классов для организации кода, повышения его модульности и переиспользования.

Результаты и выводы

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

Установка и запуск

  1. Клонировать репозиторий:
git clone git@github.com:iammacheta/movies-explorer-frontend.git
  1. Установить зависимости: npm install
  2. Запустить проект в режиме разработки командой: npm run dev. Для сборки проекта используйте: npm run build.