Hoshi-Store es una tienda web construida con React, TypeScript y Vite. El proyecto es una tienda de productos de anime, manga, figuras, ropa y accesorios, con una interfaz tipo manga y un carrito de compras persistente en localStorage.
La app esta pensada como una presentacion de marca y al mismo tiempo como una tienda funcional. Incluye un catalogo de productos por categorias, una barra de navegacion con carrito, secciones informativas sobre el proceso de compra, la historia del negocio, una galeria de la comunidad y un formulario de contacto.
- Catalogo de productos organizado por categoria.
- Carrito de compras con agregar, aumentar, disminuir, eliminar y vaciar carrito.
- Persistencia del carrito usando
localStorage. - Costo total calculado automaticamente.
- Secciones de marca: sobre nosotros, proceso de compra, fotos de la comunidad y contacto.
- React 19
- TypeScript
- Vite
- CSS puro
- Tipado fuerte con TypeScript para productos, carrito y props de componentes.
- Custom hook
useCartpara centralizar la logica del carrito. - Persistencia de estado en
localStoragepara conservar el carrito entre sesiones. - Separacion por componentes reutilizables y secciones bien definidas.
- Datos locales tipados con una estructura compartida en
src/types/types.ts. - Calculo derivado de estado con
useMemopara optimizarisEmptyy el total a pagar. - Manejo de estado con
useStatey efectos de sincronizacion conuseEffect. - Proyecto montado con Vite.
- Modelado de datos con tipos reutilizables y consistentes.
- Separacion de responsabilidades entre UI, estado, datos y utilidades.
- Manejo de estado local con un hook personalizado.
- Persistencia de informacion de usuario entre sesiones.
- Uso de componentes presentacionales y contenedores simples.
- Base lista para escalar hacia API, autenticacion o checkout real.
src/types/types.tsdefine la forma de los productos y del carrito.src/data/db.tsfunciona como fuente local de datos para el catalogo.src/hooks/useCart.tsconcentra la logica de negocio del carrito.src/components/contiene las secciones visuales reutilizables.src/App.tsxensambla la pagina principal y conecta la informacion.
src/App.tsx: composicion principal de la pagina.src/hooks/useCart.ts: logica del carrito y persistencia.src/data/db.ts: base de datos local de productos.src/types/types.ts: tipos compartidos del proyecto.src/components/: componentes de UI y secciones de la pagina.src/barrels/assets.ts: exportacion centralizada de imagenes y video.
- Node.js 18 o superior.
- npm.
npm installnpm run devnpm run buildEste proyecto usa datos locales para simular el catalogo y el carrito, por lo que no depende de una API externa. Lo usé como aprendizaje para aprender sobre manejo de componentes, tipos, estado, persistencia local y estructura modular.
- Integrar una API real para productos.
- Agregar busqueda y filtrado en el catalogo.
- Crear autenticacion y un flujo de checkout mas completo.
- Conectar el formulario de contacto a un backend o servicio de email.