Dog Viewer es una aplicación web para explorar y buscar razas de perros. Construida con React, TypeScript y Vite, esta aplicación obtiene datos de Dog CEO API y The Dog API para proporcionar una experiencia interactiva para los amantes de los perros.
- Explorar razas de perros: Ver una lista completa de razas de perros con su información básica
- Funcionalidad de búsqueda: Encuentra rápidamente razas específicas por nombre
- Paginación: Navega fácilmente por la gran colección de razas de perros
- Vista detallada: Haz clic en cualquier raza para ver su información detallada, incluyendo:
- Imágenes aleatorias de la raza
- Sub-razas disponibles
- Información adicional cuando esté disponible
- Diseño responsivo: Optimizado para dispositivos de escritorio y móviles
- Alto rendimiento: Construido con React Query para una obtención y almacenamiento en caché de datos eficiente
- React: Biblioteca de interfaz de usuario
- TypeScript: Para seguridad de tipos
- Vite: Herramienta de construcción rápida
- React Query: Gestión de obtención de datos y caché
- CSS: Estilos personalizados
- Jest & React Testing Library: Para pruebas completas
- Node.js (v14 o superior)
- npm o yarn
-
Clona el repositorio:
git clone https://github.com/maoworshipper/dog-viewer.git cd dog-viewer -
Instala las dependencias:
npm install # o yarn -
Inicia el servidor de desarrollo:
npm run dev # o yarn dev -
Abre tu navegador y navega a
http://localhost:5173
La aplicación se encuentra desplegada en Vercel.
# Ejecutar todas las pruebas
npm test
# o
yarn testdog-viewer/
├── src/
│ ├── components/ # Componentes de interfaz de usuario
│ │ ├── ItemDetailModal/ # Modal para mostrar información detallada de razas
│ │ ├── ItemTableRow/ # Fila individual de raza en la tabla principal
│ │ ├── MainTable/ # Componente de tabla principal para listar razas
│ │ ├── Pagination/ # Controles de paginación
│ │ └── SearchBar/ # Funcionalidad de búsqueda
│ ├── context/ # Contexto de React para estado global
│ ├── hooks/ # Hooks personalizados de React
│ ├── services/ # Funciones de servicio de API
│ ├── types/ # Definiciones de tipos de TypeScript
│ ├── App.tsx # Componente principal de la aplicación
│ └── main.tsx # Punto de entrada de la aplicación
└── ... # Archivos de configuración
useAppContext: Proporciona acceso al contexto de la aplicaciónuseDogBreedList: Obtiene la lista de todas las razas de perrosuseDogDetails: Obtiene información detallada de una raza específicauseDogImage: Obtiene imágenes de una raza de perrousePagination: Maneja la lógica de paginación
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.