- npm run dev
-
Зоны ответственности можно посмотреть на GHProjects
-
Процесс разработки ведется в ветке dev - финальная версия будет залита в ветку main - все ветвления ведем от ветки dev в рабочем процессе.
-
Наша выбранное АПИ - . Документация по ссылке API_DOC_LINK.
https://github.com/public-apis/public-apis https://rapidapi.com/ru/collection/list-of-free-apis
- Требования к АПИ:
- Поддержка запроса одной единицы информации. Например, можно запросить информацию только по одному фильму, чтобы вывести всю ее на странице.
- Поддержка поиска. Например, поиск по фильмам с определенными фильтрами. Задаем год, жанр и нам прилетают список фильмов этого года и жанра. Также можно искать по названию.
-
Наш стек: React, Redux, Redux Thunk, React Router, styled-components, MaterialUI
-
Требования к функциональности:
- Сайт состоит из шапки, которая не ререндерится между переходами по страницам.
- При клике на название сайта (картинка/лого) должен произойти переход на корневой рут (/).
- Кнопка Вход - переходит на страницу входа (/signin).
- Кнопка Регистрация - переходит на страницу регистрации (/signup).
- После регистрации или входа по учетной записи, кнопки Вход и Регистрация должны исчезнуть, а вместо них отобразиться имя учетной записи и кнопки:
- Избранное - переход на страницу /favorites. Там отображаются карточки с единицами информации, которые ранее были добавлены в избранное. урл /favorites доступен только авторизованному пользователю. Неавторизованного пользователя должно редиректить на /signin
- История - переход на страницу /history где будут отображаться все предыдущие запросы к апи, когда происходил поиск. Придумайте сами, как это будет выглядеть и что отображаться. Главное, чтобы на этой странице можно было увидеть, что искалось ранее и можно было в один клик открыть состояние с выставленными фильтрами и текстом поиска. урл /history доступен только авторизованному пользователю. Неавторизованного пользователя должно редиректить на /signin
- Выход, по нажатию на которую должен произойти выход из учетной записи.тело сайта, куда будет рендериться содержимое при переходе по урлам.На главной странице (/) располагается вступительный текст с описанием сайта и панель поиска: инпут и, если необходимо, всякого рода фильтры.
При вводе в инпут можно показывать какие-то саджесты, например первых 5 результатов и при клике на саджест сразу перенаправлять пользователя на страницу с единицей информации. Когда пользователь заполнил поле поиска и нажал Найти, можно перебросить пользователя на урл /search?queryParams, чтобы удобно работать с поиском и перезагрузками этой страницы. Либо можете построить процесс поиска как-нибудь по-другому на ваше усмотрение. Это зависит от АПИ, которое вы выбрали.
На странице /search будут отображаться Панель поиска и под панелью отображаем карточки единиц информации. При нажатии на кнопку подробнее в карточке, происходит переход на страницу с полным описанием единицы информации.
Если приложение перезагрузить находясь на этой странице, то после перезагрузки приложение также должно остаться на этой странице с корректной отображаемой информацией. Регистрацию можно сделать через LocalStorage. Пользователь просто пишет логин и пароль, мы запоминаем его в LS. Его Избранное и История поиска также сохраняется в LS и подгружается из LS при входе.
На форме входа должна быть валидация. Если логина не существует, должны показать ошибку. Если логин есть, но пароль написан неправильно, то тоже показываем соответствующую ошибку. Также валидируем форму на обязательность заполненных полей Логина и Пароля. На форме регистрации должна быть валидация на обязательность заполнения полей Логина и Пароля.
Главное правило, чтобы интерфейс был аккуратный и использование готовой UI библиотеки не отнимало много времени. Оцениваться будет не красота интерфейса и компонентов, а аккуратность и удобство работы с интерфейсом. Поэтому даже простой интерфейс на простых самописных аккуратных компонентах будет оценен на таком же уровне, как и интерфейс, сделанный на готовой UI библиотеке.