Aplicación web completa de tienda online desarrollada con SvelteKit + Tailwind CSS v4 (Frontend) y Node.js + Express (Backend) con arquitectura MVC.
Sistema de tienda online con dos roles:
examen2parcial/
├── backend/ # API REST con Node.js + Express (MVC)
│ ├── src/
│ │ ├── models/ # Lógica de datos (JSON)
│ │ ├── controllers/ # Lógica de negocio
│ │ ├── routes/ # Endpoints de API
│ │ ├── config/ # Configuraciones
│ │ └── data/ # Archivos JSON (auto-generados)
│ └── package.json
│
└── frontend/ # SvelteKit + Tailwind CSS v4
├── src/
│ ├── lib/
│ │ ├── components/ # Componentes reutilizables
│ │ ├── services/ # Servicios de API
│ │ ├── stores/ # Estado global (Svelte stores)
│ │ └── types/ # Tipos TypeScript
│ └── routes/ # Páginas de la app
└── package.json
# Navegar a la carpeta backend
cd backend
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm run dev
# O en modo producción
npm start
El backend estará disponible en: http://localhost:3000
# Navegar a la carpeta frontend
cd frontend
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm run dev
El frontend estará disponible en: http://localhost:5173
http://localhost:5173http://localhost:5173/adminhttp://localhost:5173/admin/pedidosGET /api/articulos - Listar todos los artículosGET /api/articulos/:id - Obtener un artículoPOST /api/articulos - Crear artículoPUT /api/articulos/:id - Actualizar artículoDELETE /api/articulos/:id - Eliminar artículoPATCH /api/articulos/:id/stock - Actualizar stockGET /api/pedidos - Listar todos los pedidosGET /api/pedidos/:id - Obtener un pedidoPOST /api/pedidos - Crear pedidoPATCH /api/pedidos/:id/estado - Actualizar estadoDELETE /api/pedidos/:id - Eliminar pedidonpm startbackendfrontendnpm run buildbuildVITE_API_URL: URL de tu backend en RailwayActualizar CORS en backend (src/config/cors.js):
const corsOptions = {
origin: [
'http://localhost:5173',
'https://tu-frontend.vercel.app'
],
credentials: true
};
Actualizar API URL en frontend (src/lib/services/api.ts):
const API_URL = import.meta.env.VITE_API_URL || 'http://localhost:3000/api';
cd frontend
npm install -D tailwindcss@next @tailwindcss/vite@next --legacy-peer-deps
Cambia el puerto en backend/src/server.js:
const PORT = process.env.PORT || 3001;
Puedes crear artículos de ejemplo usando estos datos:
{
"nombre": "Laptop Gaming",
"descripcion": "Laptop de alto rendimiento para gaming",
"precio": 1299.99,
"stock": 5,
"imagen": "https://images.unsplash.com/photo-1603302576837-37561b2e2302?w=400"
}
Proyecto desarrollado para el Examen del 2do Parcial de Programación Web.
MIT