Приложение, позволяющее искать книги через Google Books API
TypeScriptReact SPAredux,react-redux,redux-toolkit,Thunk- хранилище,redux-persist- для кеширования хранилища в LocalStorageuniqid- для уникальных айдиsass- для scssclassnames- для модулей scssESlint- для линтингаgh-pages- деплойDocker- для запуска в контейнере
- Форма из инпута ключевой фразы и селектора категорий. Сабмит-кнопка неактивна при пустом инпуте
- При запросе в форме не с главной страницы - редирект на главную с найденными карточками
- Счетчик полученных книг из запроса
- Фильтрация полученных книг по релефантности, старым и новым изданиям (дропдаун показывается, если найдены книги, и скрыт, если ничего не найдено)
- Пагинация с шагом 30 и подгрузкой по кнопке
- Фильтрация дублей результатов запроса к Google Books API
- Заглушки всех элементов книги в случае отсутствия данных в ответе сервера (Картинка, название, автор, дата и тд)
- Спиннер загрузки
- Попап-информатор об ошибке сервера
- Информатор дефолтного состояния блока с карточками до запроса
- Главная страница поиска
- Страница конкретной книги с динамическим роутом
- 404 страница
- Организовано модульно через Slice
- все стейты сохраняются локально при перезагрузке страницы
- Все reducers и middleware вынесены в отдельные файлы
- API-ключ вынесен в .env и не хранится в коде
- Адаптивная до 320px
- clone branch with
git@github.com:proehavshiy/google-books-searcher.git npm run build- build final versionnpm run deploy- deploy the project to gh-pagesnpm run lint- lint all filesnpm run lint:fix- fix all fixable files
npm run image- create Docker imagenpm run container- run containernpm run stop- stop & delete container
make build- create Docker imagemake run- run containermake stop- stop & delete containermake check- check all containers
