Desarrollar una aplicación web básica, con funcionalidades mínimas, que permita el registro
de clientes siguiendo una arquitectura de microservicios.
El frontend deberá estar construido
en Angular, y el backend deberá utilizar Hapi o Fastify como framework.
Requisitos Técnicos:
Frontend (Angular)
a.
Crea un formulario en Angular para el registro de clientes.
b.
Al cargar el formulario, realiza una llamada al microservicio de seguridad para
obtener un token de 8 dígitos y muéstralo en pantalla.
Permite que el usuario
lo edite para fines de pruebas.
a.
Implementa un SDK en Angular para manejar la consulta del token y el envío
del registro al backend.
b.
Usa el SDK para realizar las llamadas al microservicio de seguridad y al
microservicio de clientes.
Backend - Hapi o Fastify)
a.
Crea un microservicio que tenga un endpoint para generar un token de
seguridad de 8 dígitos al recibir una solicitud.
Los token deben registrarse en
una tabla, puedes definir las columnas de manera libre según tu criterio.
b.
Implementa otro endpoint para que otros microservicios puedan validar la
autenticidad de un token.
a.
Diseña dos tablas: una para registrar clientes y otra para parámetros globales.
Configurar el parámetro que habilita el envío de correos.
b.
Al iniciar el microservicio de clientes, registra todos los parámetros en Redis.
c.
Implementa una consulta a Redis para consultar el parámetro de envíos de
correos y determinar si se debe enviar el correo de bienvenida o no.
d.
Implementa el envío de mensajes en rabbitmq para solicitar el envío de correo
al microservicio de correos.
e.
Implementa un endpoint para registrar clientes que será usado por el front,
que valide el token con el microservicio de seguridad antes de realizar el
registro.
Guarda en base de datos el registro del cliente y para finalizar
consulta el parámetro de envío de correo en Redis, de estar activo el
Email: Teléfono: Página | 2
parámetro enviar la orden de envío al microservicio de correos por medio de
rabbitmq.
a.
Crea una tabla para registrar todos los envíos de correos en MySQL.
b.
Implementa una función para recibir la orden de envío de correo por medio
de RabbitMQ.
Registra la información en la tabla de correos enviados.
c.
No es necesario implementar el envío real del correo con un servicio de
terceros, solo registrar la información en la base de datos.
Redis y RabbitMQ
a.
Utiliza Redis para almacenar los parámetros y consultalos al inicio del
microservicio de clientes para determinar si se debe enviar el correo.
a.
Configura RabbitMQ para la comunicación entre el microservicio de clientes y
el microservicio de correos.
Envía la orden de envío de correo con los datos
necesarios.
Entregables
• Código fuente subido a Github.
• Hacer una demostración funcional en la entrevista técnica.
Evaluación:
• Cumplimiento de requisitos técnicos (Requerido).
• Estructura y organización del código básico (Requerido).
• Buenas prácticas de programación básicas (Requerido, no determinante).
• Manejo de errores y excepciones (No obligatorio).
• Eficiencia y rendimiento (No obligatorio).