Приложение, позволяющее искать книги через Google Books API
TypeScript
React SPA
redux
,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