The Good Part

Mejoras en el backend de un sistema interno de gestión de pedidos

Entregado por Redwerk
×
¿A dónde quieres que te enviemos nuestro caso práctico de «The Good Part»?
Por favor ingrese su correo electrónico comercial no es un correo electrónico comercial

The Good Part GmbH se encarga de la entrega, instalación y retirada de grandes electrodomésticos en toda Alemania. Son el socio ideal para estudios de cocina, minoristas y empresas de comercio electrónico que necesitan una entrega e instalación rápida de electrodomésticos.

Todos los clientes

Desarrollo web

Reforzamos el sistema de gestión interna de pedidos de The Good Part, incorporando automatización, validación y estructuras de datos más claras. Redwerk mejoró la integridad de los datos, la eficiencia de los envíos y el seguimiento de los pedidos para la entrega de electrodomésticos de última milla.

Más información

Logística

The Good Part gestiona una operación de última milla muy rigurosa, y cada minuto de retraso en el envío o registro duplicado les supone un coste. Ajustamos el sistema para que se adaptara al funcionamiento real de sus almacenes, conductores y filiales.

Más información

Introducción

En la entrega de electrodomésticos, el éxito no es algo que el cliente note, sino la ausencia de fallos. Un registro duplicado, un conductor mal asignado, una marca de tiempo desincronizada: cada uno de estos errores representa una oportunidad perdida o un segundo viaje. Las operaciones de The Good Part habían superado la capacidad de su sistema backend y las deficiencias comenzaban a ser evidentes. A lo largo de este proyecto de desarrollo de software, entregamos:

  • Desarrollo de back-end en Java 17
  • Modelado de bases de datos en PostgreSQL
  • Desarrollo guiado por pruebas en un entorno Dockerizado
  • Integración del desarrollo y despliegue de API

Desafío

The Good Part contactó con Redwerk con un sistema de gestión interna que se había quedado obsoleto. A medida que aumentaba el volumen de pedidos, las pequeñas dificultades del sistema interno se convertían en retrasos diarios para los encargados de la logística, el personal del almacén y los gerentes.

Se habían acumulado registros duplicados de clientes, lo que generaba inconsistencias en los pedidos y obligaba al equipo a corregirlos manualmente. Los encargados de la logística no podían ver en tiempo real qué conductores estaban ocupados, lo que ralentizaba y hacía menos precisa la planificación de rutas. Los almacenes y las filiales no estaban vinculados formalmente en el modelo de datos, por lo que la coordinación logística dependía de la memoria y la comunicación informal.

Además, las marcas de tiempo no siempre eran precisas, el estado de los pedidos debía actualizarse manualmente después de las entregas y no existía una forma sencilla de validar o previsualizar un pedido antes de procesarlo. Cada uno de estos problemas era menor por sí solo. Sin embargo, en conjunto, implicaban más trabajo manual, tiempos de respuesta más lentos y menor confianza en los datos. El equipo necesitaba una intervención específica para solucionar rápidamente los puntos débiles más críticos sin reconstruir todo el sistema ni interrumpir las operaciones diarias.

Solución

Nos propusimos un alcance preciso y específico, y entregamos siete mejoras de backend en un plazo ajustado. El código base está escrito en Java 17, con un estilo funcional basado en la API Stream. Nuestro equipo de desarrollo lo respetó al pie de la letra, sin excepciones, por lo que el nuevo código se integra perfectamente con el resto del sistema, sin desentonar.

Cada funcionalidad se entrega con sus propias pruebas unitarias y de integración para cumplir con los altos estándares de desarrollo guiado por pruebas del cliente. Las pruebas se ejecutan en un entorno Docker que crea una instancia real de PostgreSQL, lo que nos permite validar con el motor de base de datos real en el que se ejecuta el sistema, no con una simulación. Los despliegues se realizan mediante una canalización de compilación, envío y despliegue de GitHub Actions, con entornos de prueba y producción como destinos separados, lo que garantiza lanzamientos rápidos y predecibles.

Esto es lo que entregamos:

  • Gestión de clientes duplicados: Detección automática de registros de clientes duplicados, etiquetado claro en la interfaz de usuario y un flujo de trabajo de resolución que permite al personal fusionar o descartar duplicados con solo unos clics. Se acabaron las limpiezas semanales.
  • Gestión de almacenes: Se introdujo una entidad de almacén propiamente dicha y se modelaron las relaciones entre almacenes y filiales, de modo que la coordinación logística cuenta con una estructura real en lugar de depender del conocimiento informal.
  • Disponibilidad de conductores para la asignación de rutas: Se han añadido indicadores en tiempo real que muestran qué conductores están ocupados durante la planificación de rutas. Ahora, los coordinadores pueden crear rutas sin tener que alternar entre pantallas ni adivinar.
  • Automatización del ciclo de vida de los pedidos: Las entregas completadas ahora actualizan su estado automáticamente, eliminando un paso manual que anteriormente dificultaba la elaboración de informes al final del día.
  • Correcciones en la precisión de las marcas de tiempo: Se detectaron y corrigieron los errores en las marcas de tiempo que hacían que el seguimiento de los pedidos no fuera fiable.
  • Punto final de la API de vista previa de pedidos: Se agregó un punto final de backend que permite al equipo revisar y validar los datos del pedido antes de que se confirmen, de modo que los errores se detecten antes de que se conviertan en problemas para el cliente.
  • Integración de código y soporte para solicitudes de extracción: Trabajamos dentro del repositorio y el proceso de revisión existentes del cliente, por lo que cada cambio se fusionó correctamente sin sobrecarga de integración adicional por su parte.

Todas las funciones se entregan completamente probadas e integradas en el sistema en funcionamiento.

Resultado

La parte buena ahora se ejecuta en un servidor que hace la mayor parte del trabajo por ellos. En la práctica, esto se ve así:

  • Los registros duplicados se detectan y se resuelven antes de que provoquen errores.
  • Los operadores pueden ver la disponibilidad de los conductores de un vistazo y planificar las rutas más rápidamente.
  • Los almacenes y las filiales están correctamente vinculados en el modelo de datos. Los estados de los pedidos se actualizan automáticamente.
  • Ya se puede confiar de nuevo en las marcas de tiempo.
  • Los nuevos pedidos pueden previsualizarse y validarse antes de confirmarse.

El resultado final que ayudamos a conseguir al cliente se resume en menos trabajo manual y menos errores de datos, lo que se traduce en un envío más rápido.

Resultado

¿Necesitas un servicio de desarrollo backend especializado que se entregue en días, no en trimestres?

Hablemos

Tecnologías

Java 17Java 17
Stream APIStream API
PostgreSQLPostgreSQL
Docker
GitHub ActionsGitHub Actions
Spring Boot
Hibernate
LinearLinear
FlywayFlyway
LombokLombok
TestcontainersTestcontainers
MockServerMockServer
AWS Textract/S3AWS Textract/S3
Mistral AIMistral AI
TwilioTwilio
Jakarta MailJakarta Mail
Logistics1Logistics1
Se admiten más de 600entregas diarias
El 100%de las nuevas funcionalidades están cubiertas por pruebas unitarias y de integración
Plazo de entrega inferior a 24horas = 0 retrasos en el sistema

Comentario del equipo Redwerk

Oleh

Oleh
Desarrollador

El proyecto supuso un reto debido a su alcance limitado y a un plazo aún más ajustado. Sin embargo, lo conseguimos. Java funcional mantiene el código limpio y legible, y ejecutar todas las pruebas con una instancia real de PostgreSQL en Docker nos permite confiar en lo que entregamos. En muy poco tiempo, implementamos actualizaciones que se integraron sin problemas y mejoraron el rendimiento general del sistema con funcionalidades optimizadas.

Media
Media
Media
Media

Relacionado en el blog

Lista de comprobación para la revisión del código JavaScript: Todos los pasos incluidos

Lista de comprobación para la revisión del código JavaScript: Todos los pasos incluidos

Explore nuestra completa lista de comprobación de revisión de código JavaScript para mejorar la seguridad, el rendimiento y la capacidad de mantenimiento de sus proyectos de software y obtener una calidad excepcional....

Leer más
Cómo el desarrollo de software personalizado optimiza la gestión de la cadena de suministro automotriz

Cómo el desarrollo de software personalizado optimiza la gestión de la cadena de suministro automotriz

¿Alguna vez has considerado la gestión de la cadena de suministro de la industria automotriz como un motor de alto rendimiento en el negocio automotriz? Es decir, es un componente esencial que te impulsa al éxito a velocidades vertiginosas....

Leer más
Mejores prácticas del ciclo de vida del desarrollo de software: cómo garantizar la seguridad en cada fase

Mejores prácticas del ciclo de vida del desarrollo de software: cómo garantizar la seguridad en cada fase

Equifax, SolarWinds, Yahoo, MOVEit. Estas no son empresas que fueron hackeadas por una superarma de ciencia ficción. Fueron vulneradas debido a fallos evitables y bien documentados en la forma en que su software fue diseñado, probado y mantenido....

Leer más
Planificación presupuestaria para proyectos de software: Qué tener en cuenta

Planificación presupuestaria para proyectos de software: Qué tener en cuenta

¿Teme que su proyecto fracase por culpa de un presupuesto excesivo? Es un temor totalmente legítimo, ya que Statista descubrió que el 47% de los proyectos de planificación de recursos empresariales superan sus presupuestos....

Leer más

¿Impresionado?

Contrátanos

Otros estudios de caso

Orderstep

Orderstep

Denmark

Ayudamos a aumentar los ingresos por suscripciones desarrollando un módulo de tienda web premium

Muskelhirn

Muskelhirn

Germany

Ayudamos a digitalizar los servicios de contratación y a reducir a la mitad el tiempo de las operaciones comerciales

Actualización de la plataforma del Parlamento Europeo

Actualización de la plataforma del Parlamento Europeo

Europe

Actualización de la plataforma de voto electrónico del Parlamento Europeo en menos de un mes