La aplicación está dividida en un frontend desarrollado con React (Vite) y un backend con Node.js (Express).
- 🖥️ Frontend en React + Vite con Tailwind CSS
- 🔧 Backend en Node.js con Express
- 🔄 Integración con API DummyJSON para productos y carritos
- 🚚 Integración con servicios de cotización ficticia (TraeloYa y Uder)
- 📱 Diseño completamente responsivo (escritorio y móvil)
- ✅ Tests unitarios para el endpoint de tarificación
- 🐳 Dockerizado
- Node.js v14 o superior
- npm v6 o superior
- Docker y Docker Compose / para ejecutar con docker
- Abrir proyecto en el directorio raíz:
cd fl-app
- Instalar dependencias del proyecto raíz:
npm install
- Instalar dependencias del frontend:
cd frontend npm install cd ..
- Instalar dependencias del backend:
cd backend npm install
- Crear un archivo .env en el backend con las siguientes variables:
PORT=5000 TRAELOYA_API_KEY=MbUP6JzTNB3kC5rjwFS2neuahLE7yKvZs8HXtmqf UDER_API_KEY=NDM6HWuxtyQ9saYqnZgbJBVrS8A7KpeXRjGv2m5c
- Ejecutar aplicación, ambos ambientes de manera simultanea desde directorio raíz:
cd .. npm run dev Frontend: http://localhost:5173 Backend: http://localhost:5000
- Abrir proyecto en el directorio raíz:
cd fl-app
- Construir y ejecutar con Docker Compose::
docker-compose up -d Frontend: http://localhost Backend: http://localhost:5000
- Pararse en el backend y correr los tests:
cd backend npm test
📦 Volumenes y dimensiones predeterminados: Como la API DummyJSON no proporciona información sobre dimensiones de productos, se utilizan valores predeterminados:
Para TraeloYa: volume: 0.001 (representando el volumen en m³)
Para Uder: Dimensiones fijas de length: 10, height: 10, depth: 10 (en centímetros)
(Adicional)
La aplicación está desplegada y disponible en los siguientes enlaces:
- URL API: https://tarea-flapp.onrender.com
Pascual Ferrer - 2025 Tarea técnica de Flapp. 🚀