💿 Демо версия: https://nifontovsv.github.io/shoppebook
Shoppe Book - веб-приложение для поиска и покупки книг.
-
Реализован поиск книг по названию 🔍
- Это позволяет пользователям вводить название книги в строку поиска и мгновенно находить соответствующие книги в базе данных.
-
Фильтрация книг по параметрам 🛠
- Функциональность фильтрации позволяет пользователям ограничивать выборку книг по нескольким критериям:
Категория — пользователи могут выбирать книги по жанру (например: история, путешествия, психология и т.д.).
Цена — можно фильтровать книги по диапазону цен, чтобы показывать только те книги, которые соответствуют выбранному бюджету. Наличие на складе — этот фильтр помогает отображать только те книги, которые есть в наличии (и исключать те, которые временно отсутствуют).
- Функциональность фильтрации позволяет пользователям ограничивать выборку книг по нескольким критериям:
Категория — пользователи могут выбирать книги по жанру (например: история, путешествия, психология и т.д.).
-
Добавление, удаление товара в корзину и удаление из нее 🛒
- Когда пользователь нажимает кнопку "Добавить в корзину", товар автоматически добавляется в корзину, и его количество (если уже есть в корзине) увеличивается на единицу.Если товар еще не был добавлен в корзину, то он появляется в корзине с начальной единицей товара. При удалении товара, сумма всех оставшихся товаров пересчитывается.
-
Пагинация списка книг 📄
- Улучшает производительность и упрощает навигацию по большому количеству книг.
-
Детальная информация о книге 📖
- Пользователь может кликнуть на название или обложку книги, чтобы перейти на страницу с детальной информацией. Это станет хорошей возможностью ознакомиться с книгой перед её покупкой.
-
Сохранение избранных книг ❤️
- Пользователи могут сохранять книги в избранное для быстрого доступа в будущем. Это особенно полезно, если они не готовы купить книгу сразу, но хотят вернуться к ней позже.
-
Возможность оставлять рейтинг и отзывы под каждой книгой ⭐️
- Пользователи могут оставить оценку и отзывы для книг, что помогает другим покупателям принимать решение о покупке.
-
"Цитата дня" 💭
- Функционал "Цитата дня" представляет собой интерактивный элемент, который позволяет пользователям получать цитату каждый день по их запросу, нажимая на кнопку.
📄 Документация: https://developers.google.com/books/docs/v1/using?hl=ru
export const fetchPopularBooks = createAsyncThunk(
'books/fetchPopularBooks',
async () => {
const response = await fetch(
`https://www.googleapis.com/books/v1/volumes?q=history+popular&maxResults=18&orderBy=relevance&key=${API_KEY}`
);
const data = await response.json();
return data.items || [];
}
);- Redux Toolkit для управления состоянием
- React Router для маршрутизации
- CLSX для стилизации
- createAsyncThunk для работы с API
- использовались createSlice при создание reducers, вместо 'switch case'. Это упростило синтаксис и разработку в целом.
| Category | Technologies |
|---|---|
| Frontend | |
| Styling | |
| Version Control | |
| AI & Tools | |
| Misc | |
| Editors |
- Клонируйте репозиторий
git clone https://github.com/nifontovsv/shoppebook.git- Перейдите в папку с проектом
cd shoppebook- Подгрузите зависимости
npm install- Запустите проект
npm start