Prueba técnica para Amaris Consulting

Descripción

Este repositorio contiene el código fuente para la prueba técnica de Amaris Consulting. El objetivo de esta prueba no es evaluar la "corrección" de tu solución, sino mas bien tu habilidad para escribir código limpio, mantenible y eficiente. Por lo tanto, no hay una solución única, y no hay una solución "correcta" o "incorrecta". Sin embargo, hay algunas cosas que debes tener en cuenta:

  • Se recomienda tener en mente alguna de las denominadas arquitecturas limpias (Clean Architecture, Hexagonal Architecture, Onion Architecture, etc.) al escribir tu código.
  • Se recomienda utilizar patrones de diseño y principios SOLID donde sea apropiado.

Ten en cuenta que la aplicación no tiene que ser completamente funcional. Si no tienes tiempo para implementar una funcionalidad, puedes dejar un comentario en el código explicando cómo lo implementarías.

La aplicación ya funciona como se espera, pero hay mucho espacio para mejorarla. Tu trabajo es mejorar la aplicación y hacerla más mantenible y eficiente. Puedes cambiar cualquier cosa en el código, incluyendo la estructura de la solución, los nombres de las clases, entre otros.

El proyecto está escrito en TypeScript, pero si no estás familiarizado con TypeScript, puedes escribir tu solución en JavaScript.

Instrucciones para ejecutar la aplicación

  1. Clona este repositorio.
git clone https://github.com/krostyle/amaris-code-challenge.git
  1. Navega a la carpeta del proyecto.
cd amaris-code-challenge
  1. Instala las dependencias.
npm install
  1. Ejecuta la aplicación.
docker-compose up -d

Tareas a realizar

1. Mejora la estructura de la solución

La solución actual tiene una estructura muy simple, pero no es muy mantenible. Mejora la estructura de la solución para que sea más mantenible y escalable.

2. Mejora la arquitectura de la aplicación

La aplicación actual no tiene una arquitectura clara. Mejora la arquitectura de la aplicación para que sea más mantenible y escalable.

3. Mejora la calidad del código

El código actual no es muy limpio. Mejora la calidad del código para que sea más limpio y fácil de entender.

4. Implementa una nueva funcionalidad (opcional)

Implementa una nueva funcionalidad que te parezca interesante. Puedes implementar cualquier funcionalidad que quieras, pero ten en cuenta que no tienes que implementar una funcionalidad para completar esta prueba.

5. Implementa pruebas unitarias (opcional)

Implementa pruebas unitarias para la aplicación. Puedes implementar cualquier tipo de prueba unitaria que quieras, pero ten en cuenta que no tienes que implementar pruebas unitarias para completar esta prueba.

Criterios de evaluación

  • Claridad y legibilidad del código
  • Buenas practicas de desarrollo de software
  • Estructura de la solución
  • Arquitectura de la aplicación

Antes de empezar 💪

Entendemos que las pruebas técnicas pueden ser un momento de nerviosismo y presión. Queremos que sepas que el objetivo principal de esta evaluación es entender tu forma de pensar y cómo abordas problemas técnicos, más que juzgar cada línea de tu código.

Recuerda, la perfección es el enemigo de lo bueno. No te preocupes si sientes que hay aspectos que podrían mejorarse; lo más importante es que demuestres tu habilidad para escribir un código limpio y mantenible.

Solo queremos ver cómo abordas este desafío y estamos aquí para responder cualquier pregunta que tengas durante el proceso. ¡Buena suerte!