React-приложение, отображающее случайные изображения котов с использованием The Cat API. Приложение позволяет включать/отключать загрузку изображений + поддерживает автоматическое получение каждые 5 секунд (по выбору).
├── app/ # Точка входа приложения и глобальные стили
├── entities/ # Бизнес-сущности с их моделями и API
│ └── cat/ # Код, связанный с сущностью кота
├── lib/ # Общие библиотеки и UI-компоненты
│ └── ui/ # UI-компоненты и хуки
├── pages/ # Компоненты страниц
│ └── home/ # Главная страница приложения
├── shared/ # Общие утилиты
│ └── api/ # Конфигурация API-клиента
└── widgets/ # Сложные UI-компоненты, объединяющие несколько элементов UI
- app: Содержит лобальные стили и точку входа в приложение.
- entities: Содержит бизнес-сущности с их API-интерфейсами и моделями данных.
- lib: Содержит переиспользуемые UI-компоненты и утилитарные хуки.
- pages: Содержит компоненты страниц.
- shared: Содержит общие утилиты.
- widgets: Содержит переиспользуемые виджеты приложения.
- React 19
- TypeScript
- Vite
- Styled Components
- TanStack Query (React Query)
- Axios
- ESLint & Prettier
- Node.js (рекомендуется версия 18 или выше)
- Пакетный менеджер pnpm
- Клонировать репозиторий:
git clone <URL-репозитория>
cd cats_test- Установить зависимости:
pnpm install- Создать файл
.envв корневой директории с учетными данными Cat API:
VITE_API_URL=https://api.thecatapi.com/v1/
VITE_API_KEY=ваш_API_ключ_здесь
Для запуска сервера разработки:
pnpm devЭто запустит приложение в режиме разработки. Откройте http://localhost:5173 для просмотра в браузере.
Для сборки приложения для продакшена:
pnpm buildЭто создаст оптимизированную сборку в папке dist.
Для предварительного просмотра продакшен-сборки локально:
pnpm previewПриложение настроено на деплой в GitHub Pages:
pnpm deployЭто соберет приложение и опубликует его на GitHub Pages.
pnpm dev: Запуск сервера разработкиpnpm build: Сборка приложения для продакшенаpnpm lint: Запуск ESLint для проверки проблем в кодеpnpm preview: Предварительный просмотр продакшен-сборки локальноpnpm deploy: Деплой приложения на GitHub Pages