Proyecto full-stack que recrea el e-commerce de una mueblería. La solución consta de un backend en Express que expone el catálogo de productos y un frontend en React + Vite que ofrece navegación multipágina (home, catálogo, detalle y contacto), buscador, carrito visual y componentes destacados.
hermanosJota_e-commerce/
├── backend/
│ ├── data/productos.js
│ ├── middleware/logger.js
│ ├── routes/productosRoutes.js
│ └── server.js
├── client/
│ ├── src/
│ │ ├── components/*.jsx
│ │ ├── css/*.css
│ │ ├── App.jsx
│ │ └── main.jsx
│ └── public/assets/...
└── README.md
Cada subproyecto maneja sus dependencias en forma independiente. Desde la raíz del repositorio:
/backend
)cd backend
npm install
# desarrollo con recarga automática
npm run dev
# ejecución estándar (por ejemplo, en producción)
npm start
El servidor escucha en http://localhost:5000
por defecto y expone:
Método | Ruta | Descripción |
---|---|---|
GET | /api/productos |
Devuelve la lista completa del catálogo |
GET | /api/productos/:id |
Obtiene un producto por identificador |
Podés redefinir el puerto con la variable de entorno PORT
.
/client
)En una terminal separada, también desde la raíz:
cd client
npm install
# entorno de desarrollo con hot reload
npm run dev
# build y servidor de previsualización (simula producción)
npm run build
npm start
Vite abre la aplicación en http://localhost:5173
apuntando al backend local.
data/productos.js
), lo que simplifica las pruebas iniciales. El enrutador (routes/productosRoutes.js
) se encargará de las rutas del dominio.server.js
incluye middlewares para logging y respuestas uniformes ante rutas inexistentes o fallos internos.useState
en App.jsx
.src/components
encapsulan secciones de UI (header, catálogo, tarjetas de producto, formulario de contacto) y reciben callbacks desde App.jsx
para navegar o agregar al carrito.src/css
agrupa estilos por dominio (header, footer, productos, etc.) con un archivo de variables compartidas para mantener consistencia.npm run dev
(en /backend
): inicia el servidor Express con recarga automática gracias a nodemon
.npm start
(en /backend
): ejecuta el backend con Node estándar.npm run dev
(en /client
): levanta el servidor de desarrollo de Vite.npm run build
(en /client
): genera el bundle de producción en dist/
.npm run preview
(en /client
): sirve el build estático (sin forzar modo host).npm start
(en /client
): alias de vite preview --host
para probar el build en red local.