Skip to content

pascualferrer/tarea-flapp

Repository files navigation

🚚 Flapp - Tarea Técnica 🛒

La aplicación está dividida en un frontend desarrollado con React (Vite) y un backend con Node.js (Express).

✨ Características principales

  • 🖥️ 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

📋 Requisitos previos

  • Node.js v14 o superior
  • npm v6 o superior
  • Docker y Docker Compose / para ejecutar con docker

🚀 Instalación y ejecución

💻 Ejecución local

  1. Abrir proyecto en el directorio raíz:
    cd fl-app
  2. Instalar dependencias del proyecto raíz:
    npm install
  3. Instalar dependencias del frontend:
    cd frontend
    npm install
    cd ..
  4. Instalar dependencias del backend:
    cd backend
    npm install
  5. Crear un archivo .env en el backend con las siguientes variables:
    PORT=5000
    TRAELOYA_API_KEY=MbUP6JzTNB3kC5rjwFS2neuahLE7yKvZs8HXtmqf
    UDER_API_KEY=NDM6HWuxtyQ9saYqnZgbJBVrS8A7KpeXRjGv2m5c
  6. Ejecutar aplicación, ambos ambientes de manera simultanea desde directorio raíz:
    cd ..
    npm run dev
    
            Frontend: http://localhost:5173
            Backend: http://localhost:5000

🐳 Ejecución con docker

  1. Abrir proyecto en el directorio raíz:
    cd fl-app
  2. Construir y ejecutar con Docker Compose::
    docker-compose up -d
    
            Frontend: http://localhost
            Backend: http://localhost:5000

🧪 Ejecutar tests

  1. Pararse en el backend y correr los tests:
    cd backend
    npm test

🤔 Supuestos y consideraciones

📦 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)

🌐 Despliegue

La aplicación está desplegada y disponible en los siguientes enlaces:

🔗 Frontend (Netlify)

🔗 Backend (Render)

👨‍💻 Creado por

Pascual Ferrer - 2025 Tarea técnica de Flapp. 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published