Skip to content

dcastillo5/flapp-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flapp Test 🚛

Este es un monorepo, contiene el frontend y el backend de la aplicación. Ambos servicios están dockerizados, por lo tanto, para correr la aplicación solo se necesita tener instalado Docker y Docker Compose, y ejecutar los siguientes comandos:

docker-compose build
docker-compose up

Se puede acceder al frontend en http://localhost:3000 y al backend en http://localhost:8000.

De igual manera, se pueden correr los servicios de manera independiente fuera de Docker. Las instrucciones se encuentran en el Set up de cada servicio.

Estructura

Frontend 🎨

Se ubica en la carpeta frontend/. Fue desarrollado con:

  • TypeScript y React
  • Bun como administrador de paquetes,
  • Tanstack Router para el manejo de rutas
  • TailwindCSS para el estilo.

El proyecto se inicializó utilizando el template de tsrouter-app que incluye las principales dependencias y configuraciones.

Set up

Para correr el frontend es necesario tener instalado node y bun(guía de instalación).

Dentro de la carpeta frontend seguir los siguientes pasos:

  1. Crear un archivo .env con las variables de entorno del archivo .env.example.

  2. Instalar las dependencias con el siguiente comando:

bun install
  1. Correr el frontend con el siguiente comando:
bun run start
  1. Acceder al frontend en http://localhost:3000.

Backend 💻

Se ubica en la carpeta backend/. Fue desarrollado con:

  • Python
  • FastAPI
  • Pydantic para la validación de los datos.

Set up

Para correr el backend es necesario tener instalado Python. Dentro de la carpeta backend hacer los siguientes pasos:

  1. Crear un archivo .env con las variables de entorno del archivo .env.example.

  2. De manera opcional, utilizar un entorno virtual para instalar las dependencias:

python -m venv venv
source venv/bin/activate
  1. Instalar las dependencias con el siguiente comando:
pip install -r requirements.txt
  1. Correr el backend con el siguiente comando:
fastapi dev app/main.py
  1. Acceder al backend en http://127.0.0.1:8000.

Supuestos

En el desarrollo de la aplicación se asumio que:

  • En el backend, la API dummyjson únicamente es consultada con paginación de 10 en 10. No se utilizan endpoints para obtener la información de los productos de manera individual.

  • El precio de la tarifa de uder viene dada por fee en USD y el precio de la tarifa de traeloYa viene dada por pricing.total en CLP. Para poder comparar los precios y estandarizar la moneda, se convierte el precio de traeloYa a USD. Para simplificar la conversión se asume que 1 USD = 922,74 CLP.

  • Todos los precios obtenidos se truncan a dos decimales.

  • Independiente del error (400) que envie el backend, siempre se muestra el mensaje de fallo "No hay envíos disponibles"

  • La vista de checkout muestra los detalles del carrito y permite ingresar los datos de envío del comprador.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published