Trabajos seleccionados

Tres resúmenes del tipo de trabajo que aceptamos. Cada cliente permanece anónimo.

Rutas de reparto en una hoja de cálculo

El cliente: Un distribuidor de materiales de construcción con cuatro almacenes.

El problema

Las rutas de reparto se planificaban en una hoja compartida que tres personas editaban al mismo tiempo.

Lo difícil

La hoja guardaba reglas que nadie había escrito. Pasamos las dos primeras semanas junto a su responsable de reparto, poniéndolas por escrito.

Construido con

TypeScript, PostgreSQL

  1. Pedidos del programa de contabilidad
  2. Lo difícilPantalla de planificación
  3. Lista del conductor
  4. Exportación nocturna

Un solo listado de clientes para nueve clínicas

El cliente: Un grupo veterinario con nueve clínicas.

El problema

Cada clínica llevaba su propio listado de clientes, así que un animal visto en dos clínicas tenía dos fichas.

Lo difícil

Decidir que dos fichas son el mismo animal. Cuando los datos del propietario no coincidían, el par pasaba a una persona.

Construido con

PostgreSQL, Python

  1. Nueve exportaciones de clínicas
  2. Lo difícilPaso de cruce
  3. Una persona confirma
  4. Una base de clientes
match.test.tsUna prueba del paso de cruce. Propietarios distintos siguen siendo dos fichas.
test("holds on mismatch", () => {
  const a = { owner: "Pell" };
  const b = { owner: "Pell" };
  const c = { owner: "Hale" };
  expect(match(a, b)).toBe("ask");
  expect(match(a, c)).toBe("hold");
});

Una facturación que redondeaba distinto que finanzas

El cliente: Una empresa de formación que factura a unos cuarenta clientes al mes.

El problema

La nueva pantalla de facturación sumaba las facturas con unos céntimos de diferencia respecto al programa de contabilidad, y finanzas no podía darla por buena.

Lo difícil

El redondeo. El programa de contabilidad redondeaba cada línea y nosotros habíamos redondeado el total.

Construido con

TypeScript, Vitest

  1. Reservas de cursos
  2. Lo difícilCálculo de la factura
  3. Pantalla de facturación
  4. Exportación contable
invoice.test.tsUna prueba que fija el redondeo. Primero cada línea y después el total.
test("rounds per line", () => {
  const lines = [
    { net: 1999, vat: 0.2 },
    { net: 1001, vat: 0.2 },
  ];
  expect(total(lines)).toBe(3600);
});

¿Tienes un sistema en mente?

Cuéntanos tu proyecto