FullStock es una tienda online para desarrolladores web, construida con React, TypeScript y Vite. El proyecto implementa una arquitectura moderna y modular, con rutas protegidas, contexto global para autenticación, carrito y temas, y una experiencia de usuario responsiva y accesible.
Importante:
Este proyecto no está conectado a un backend real. Todas las operaciones de autenticación, productos, categorías, usuarios y órdenes se simulan usando promesas y datos temporales en memoria o localStorage.
├── public/
│ └── images/
├── src/
│ ├── assets/
│ ├── components/
│ │ ├── icons/
│ │ └── ui/
│ ├── contexts/
│ ├── lib/
│ ├── models/
│ ├── providers/
│ ├── routes/
│ ├── services/
│ ├── styles/
│ ├── main.tsx
│ ├── router.tsx
│ └── vite-env.d.ts
├── index.html
├── package.json
├── tsconfig.json
├── vite.config.ts
└── README.md
-
Clona el repositorio:
git clone <url-del-repo> cd <nombre-del-repo>
-
Instala dependencias:
npm install
-
Ejecuta el proyecto en modo desarrollo:
npm run dev
npm run dev— Inicia el servidor de desarrollo con Vite.npm run build— Compila la aplicación para producción.npm run preview— Sirve la versión de producción localmente.
Todas las funciones de la carpeta src/services simulan peticiones a una API usando promesas y datos temporales. Ejemplos:
- Autenticación:
auth.service.tssimula login, registro y logout usando localStorage y cookies. - Productos y Categorías:
product.service.tsycategory.service.tsdevuelven datos mockeados con delays artificiales. - Carrito:
cart.service.tsgestiona el carrito en localStorage. - Órdenes:
order.service.tssimula la creación y consulta de órdenes.
- Catálogo de productos por categorías (Polos, Tazas, Stickers).
- Carrito de compras persistente.
- Checkout con formulario de contacto y resumen de orden.
- Autenticación (registro, login, logout) simulada.
- Gestión de temas (claro/oscuro/sistema).
- Rutas protegidas y manejo de errores 404.
- Componentes reutilizables (botones, inputs, contenedores, separadores, etc).
auth.context.ts— Estado y acciones de autenticación.cart.context.ts— Estado y acciones del carrito.theme.context.ts— Estado y acciones del tema visual.
- Utiliza CSS Modules y una arquitectura escalable de carpetas para estilos globales y utilidades.
- CSS Custom Properties para colores, tipografía, espaciado y bordes.
Para conectar con una API real, reemplaza las funciones de la carpeta src/services por llamadas HTTP usando fetch.
- Configuración recomendada de ESLint en
eslint.config.js. - Soporte para reglas de React y TypeScript, incluyendo type-checking.
Este proyecto es un template educativo para Codeable.
Licencia: MIT.
Para dudas o soporte, abre un issue en el repositorio o contacta al equipo de Codeable.