Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Prueba Técnica - Desarrollador Fullstack
Instrucciones
El tiempo ideal de ejecución de la prueba está entre 3 y 4 horas. Si te toma más
tiempo igual puedes enviar los resultados a la hora que termines, pero eso
afectará la calificación de la prueba.
La prueba debe ejecutarse usando: Node.js, Nest.js, Angular, Mongo DB y
codificando en TypeScript.
¡Buena suerte!
BackEnd
El BackEnd debe tener 2 controladores: gatos e imágenes. Se debe crear un
servicio por cada controlador y los modelos necesarios para el intercambio de
datos a través de REST.
Controlador Imágenes:
● GET /imagenes : Debe retornar una lista de 10 imágenes públicas
aleatorias del API.
● POST /imagenes/favoritos: Debe permitir marcar una de las imágenes
como favorita enviando el id de la imagen en el body.
● GET /imagenes/favoritos: Debe retornar la lista de imágenes marcadas
como favoritas.
1
Información confidencial
Kafka S.A.S - 2020
un intermediario entre el FrontEnd y el API de imágenes. Para más información
sobre el uso del API revisar la documentación de la misma.
Controlador Gatos:
Este controlador debe proveer un CRUD para gestionar gatos y debe usar
MongoDB para el almacenamiento de datos.
● Nombre (texto)
● Raza (texto)
● Edad (numero)
● Foto (texto URL)
La foto del gato debe ser una URL de una de las fotos de TheCatAPI.
● GET /gatos : Debe retornar una lista de todos los gatos existentes
● GET /gatos/:id : Debe retornar el gato con el id enviado en la URL
● POST /gatos : Debe permitir crear un nuevo gato con la información
enviada en el body
● PUT /gatos/:id : Debe permitir actualizar el gato con el id enviado
en la URL usando la información enviada en el body
● DELETE /gatos/:id : Debe permitir eliminar el gato con el id enviado
en la URL
FrontEnd
El FrontEnd debe estar compuesto de 2 módulos (además del módulo base):
gatos e imágenes que deben ser cargados a través de Lazy Loading. Cada
módulo tendrá los componentes que se crean necesarios para cumplir con el
objetivo. Se debe crear un servicio por cada módulo y los modelos necesarios
para el intercambio de datos a través de REST.
La página debe tener una barra de navegación que permita ir a los módulos o
regresar a la página de inicio.
2
Información confidencial
Kafka S.A.S - 2020
Módulo Imágenes:
La única página del módulo de imágenes debe permitir ver 10 imágenes
aleatorias de TheCatAPI y debe permitir marcar cualquiera de esas imágenes
como favorita a través de un botón. Recordar que ya que son aleatorias cada
vez que se recarga la página se mostrarán nuevas imágenes. Los registros de las
imágenes deben ser cargados usando un Resolver de tal manera que la página
no cargue hasta que no se hayan obtenido los datos del servidor.
La presentación de las imágenes se debe hacer en 2 filas de 5 imágenes cada
una.
3
Información confidencial
Kafka S.A.S - 2020
Módulo Gatos:
La página que se debe observar al navegar al módulo debe tener una lista de
todos los gatos que se encuentran en la base de datos con su respectiva foto.
En la parte superior de la página debe haber un botón que permita ir a una
página de creación de un nuevo registro. Cada gato debe tener 2 botones,
uno que permita ir a una página de edición y uno que permita eliminar el
registro. Si elimino un registro se debe reflejar tanto en la página como en el
BackEnd. Los registros de los gatos deben ser cargados usando un Resolver de
tal manera que la página no cargue hasta que no se hayan obtenido los datos
del servidor.
4
Información confidencial
Kafka S.A.S - 2020
En la página de creación debe haber un formulario que permita ingresar el
nombre, raza y edad del gato, además de un botón que permite ver la lista de
imágenes que ha marcado como favoritas y escoger una de ellas cuya URL
será asignada al atributo Foto del gato que está creando (Se sugiere el uso de
un modal para mostrar la lista de imágenes favoritas). Después de seleccionar
la foto, esta se debe mostrar debajo del formulario y debe permitir cambiar la
foto haciendo click en un botón. Esta página debe tener 2 botones: uno que
me permita guardar y regresar a la lista de gatos y otro para cancelar y regresar
a la lista de gatos.
5
Información confidencial
Kafka S.A.S - 2020
hasta que no se hayan obtenido los datos del servidor. Puede reutilizar el mismo
componente para la creación y la edición si lo desea.
Aunque no es necesario se sugiere usar una librería de estilos para la
organización y presentación del contenido (Bootstrap, Material).
6
Información confidencial
Kafka S.A.S - 2020