Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 0 additions & 74 deletions README.en.md

This file was deleted.

11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Recientemente te has unido a un equipo que esta desarrollando una aplicación mo
Esta aplicación esta dirigida a dispositivos de **bajo rendimiento** hasta dispositivos con **gran poder de procesamiento**.
El cliente ya cuenta con un backend establecido que contiene todas las reglas e información de negocio, pero algunos sistemas dependen de **tecnologías legadas** que pueden ser **inestables**.
**Tu** eres responsable de construir la **API** que integrará con estos servicios y proveerá todas las informaciones que Mobile necesita.
Para las próximas iteraciones, el equipo va a trabajar en la **Pantalla de Início** y tu debes construir todo(s) los **endpoint(s)** que se requieran para integrar con los servicios y proveer la información para la pantalla.
Para las próximas iteraciones, el equipo va a trabajar en la **Pantalla de Início** y **Valoración de Cupones**, para ello tu debes construir todo(s) los **endpoint(s)** que se requieran para integrar con los servicios y proveer la información para la pantalla.

### APIs
Necesitarás consumir los siguientes servicios:
Expand All @@ -38,14 +38,19 @@ El equipo Mobile necesita construir una pantalla de inicio que debe mostrar:
- Tabla (Grid) con las categorias **restantes**.
- Mobile **no** necesita de todas las imagenes del modelo de subcategorías, solamente la **imagen más pequeña**. Tu podrías tener que filtrar la respuesta, si tu quieres.

Adicionalmente, se requiere empezar a crear el sistema de valoración de cupones. Para ello Mobile requiere:

- Un endpoint que les permita enviar el cupón seleccionado junto con una valoración del 1 al 5.

### Puntos a Considerar
- La API de Cupones es **inestable** y a veces demora en responder. ¿Qué podemos hacer para que este problema no se replique en otras capas? ¿Habrá algún patrón que nos ayude?
- La API de Categorias responde un modelo complejo de manejar. ¿Qué podríamos hacer para simplificar este modelo y que las integraciones con su aplicación sean más sencillas?
- Negocio nos ha comentado que se espera que la funcionalidad de valoración de cupones sea altamente utilizada, por lo cual se requiere que estas valoraciones sean enviadas a una cola, y que posteriormente sean procesadas y almacenadas en base de datos. Para esto puedes utilizar una cola local y una base de datos en memoria como H2.

## ¿Qué nos Gustaría Ver?
Eres libre para implementar la solución de la forma que consideres mejor,
pero debes considerar el escenario, objetivo, implicaciones de performance y stack/pool de tecnología propuesta abajo.
- Nos enfocamos mucho en la **calidad** de nuestros proyectos y nos gustaría ver alguna estrategia aplicada. Puedes usar, por ejemplo, **Pruebas Unitárias**.
- Nos enfocamos mucho en la **calidad** de nuestros proyectos y nos gustaría ver alguna estrategia aplicada. Puedes usar, por ejemplo, **Pruebas Unitarias**.
- No queremos que la experiencia de usuario se vea afectada por el rendimiento de los servicios;
- **Usted tiene 1 semana para completar el desafio**. Si necesitas mas tiempo, no hay problema, puede hablar con nosotros y veremos que podemos hacer :)
- Documentación de como configurar y ejecutar el proyecto. Puede sobrescribir el **README.md** para eso.
Expand All @@ -56,6 +61,8 @@ pero debes considerar el escenario, objetivo, implicaciones de performance y sta

### Stack/Pool de Tecnologías
- **Java 8** o **superiores**.
- Base de Datos **H2**. [Spring Boot + H2](https://www.baeldung.com/spring-boot-h2-database)
- **JMS**. [Spring Boot + JMS](https://www.baeldung.com/spring-jms)
- Cualquier Framework Web. Sugerencia: [Spring Boot](https://spring.io/projects/spring-boot).
- Cualquier API Client. Sugerencia: [Feign](https://github.com/OpenFeign/feign).
- De preferencia [Gradle](https://gradle.org/) como sistema de compilación.
Expand Down