Skip to content

Instantly share code, notes, and snippets.

@jorgeart81
Last active September 1, 2025 17:42
Show Gist options
  • Select an option

  • Save jorgeart81/ea616156adab834586a4080302792c30 to your computer and use it in GitHub Desktop.

Select an option

Save jorgeart81/ea616156adab834586a4080302792c30 to your computer and use it in GitHub Desktop.
Assessment Práctico – Configuración de Cotización (Costos Indirectos)

Parte 1: Modelado de Base de Datos (con Prisma)

Se diseñaron las siguientes tablas en el archivo schema.prisma:

  • Plant: Representa una planta. Cada planta tiene un nombre único.
  • Operation: Representa una operación asociada a una planta. Cada operación tiene un nombre único por planta.
  • CostConfig: Representa la configuración de costos indirectos para una operación, con volumen (en kg) y costo. Cada combinación de volumen y operación es única.

Relación entre entidades:

  • Una planta puede tener muchas operaciones.
  • Cada operación puede tener muchos costos indirectos (CostConfig).
  • Relación: 1 planta → muchas operaciones → muchos costos indirectos.

Parte 2: Backend (Node.js + GraphQL + Prisma)

Se implementó un backend con las siguientes características:

  • Schema GraphQL:
    • Permite consultar operaciones y sus costos indirectos por planta.
    • Permite crear y editar operaciones y sus costos asociados.
  • Resolvers en Node.js:
    • Usan Prisma para interactuar con la base de datos.
    • Incluyen validaciones y manejo de errores para restricciones únicas.
    • Se utiliza un objeto de respuesta genérico para las mutations.

Parte 3: Frontend (React)

  • Se construyó una pantalla similar a la de Figma:
    • Listado de operaciones y sus costos indirectos.
    • Permite guardar los valores en las columnas de rango de volumen.
  • Tecnologías utilizadas:
    • Node.js v20
    • React 18 + Apollo Client para consumir GraphQL.
    • TailwindCSS o Material UI para el diseño.

Parte 4: Git

  • Se utilizó la convención de branching feature/indirect-costs.
  • Para mantener el branch actualizado con main, se realizan regularmente git pull origin main y se resuelven los conflictos.
  • Si otro desarrollador edita el mismo archivo schema.graphql, se revisan los cambios, se conversa sobre la mejor solución y se resuelven los conflictos manualmente, asegurando que ambos aportes se integren correctamente.

Entregables

@jorgeart81
Copy link
Author

Video (DEMO)

2025-09-01.12-35-49.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment