Primero acepta la siguienta asignación de github classroom para poder trabajar en el repositorio generado pues es allí donde realizarás tu entrega.
El proyecto está conformado de ejercicios y tareas que se van realizando en las sesiones impartidas a lo largo del curso. Cada cierto tiempo se debera realizar un entregable abarcando los siguientes periodos:
- Entregable 1 - Semanas 1 y 2
- Entregable 2 - Semanas 3 y 4
- Entregable 3 - Semanas 5 y 6
Se deberá enviar cada entrega en las fechas indicadas en la siguiente sección y para poder tener revisión
y retroalimentación
se deberá enviar la URL de tu Pull Request
a través del siguiente formulario, lo que nos indicará que está listo tu entregable para revisión.
- Entregable 1: lunes 10 de abril - 6:00pm
- Entregable 2: lunes 24 de abril - 6:00pm
- Entregable 3: lunes 8 de mayo - 6:00pm
- Temas relacionados: Semana 1 y 2
- Github
- Microservicios
- RestAPIs
- Kafka
- MongoDB
- Serverless
Para poder considerar completadas las semanas 1 y 2 de entrenamiento debes contemplar lo siguiente:
Tópico | Puntaje |
---|---|
Screenshots para el flujo commit y push: git status , git branch , git add , git commit y git push |
10 |
Pull Request para el Entregable 1 y archivo README.md en el directorio entregable_1 |
10 |
Dockerfile ejecutable | 10 |
Archivo de Docker Compose que permita levantar el contendor | 10 |
Colección de Postman realizando una petición de cada tipo (GET , POST , PUT , PATCH , DEL ) a una API pública y una captura de pantalla mostrando las variables de ambiente o a nivel de colección |
10 |
Impresiones de pantalla de la Función Lambda creada en la cuenta que permita la ejecución del código y REST Endpoint de la API Gateway asociada a la funcion Lambda | 10 |
Captura de pantalla de logs en Cloudwatch | 10 |
Capturas de pantalla de las terminales de productor y consumidor y del comando --describe del tópico mostrando las particiones |
10 |
Base de datos de MongoDB exportada | 10 |
Impresión de pantalla de operaciones CRUD (find con query selector, update con query selector, insert) en datos reales de MongoDB | 10 |
Total | 100 |
Mínimo Aprobatorio | 80 |
- Temas relacionados: Semana 3 y 4
- Java
- Spring Boot
Para poder considerar completadas las semanas 3 y 4 de entrenamiento debe contemplar lo siguiente:
Tópico | Puntaje |
---|---|
Usar Java 11 como versión del proyecto | 5 |
Herencia en una de sus clases | 5 |
Sobrecarga de al menos uno de los métodos de alguna clase | 5 |
Sobrecarga de al menos uno de los constructores de alguna clase | 5 |
Encapsulamiento de al menos una clase | 5 |
Clase interna dentro de al menos una clase | 5 |
Uso de por lo menos una interfaz de creación propia | 10 |
Uso de por lo menos una expresión regular | 5 |
Uso de por lo menos un arreglo | 5 |
Uso de por lo menos un mapa | 5 |
Uso de por lo menos una lista | 5 |
Uso de API de Fechas y Tiempos en un método | 10 |
Implementación de concurrencia ejecutando hilos y utilizando el resultado generado | 20 |
Uso de por lo menos una excepción de creación propia | 20 |
Uso de al menos tres anotaciones | 5 |
Uso de por lo menos 1 Optional | 10 |
Uso de por lo menos 1 tipos de dato genérico | 10 |
Uso de por lo menos 1 Interfaz Funcional | 10 |
Uso de por lo menos 1 función Lambda y asignada a una Interfaz Funcional | 10 |
Uso de por lo menos 1 Stream de datos | 5 |
Uso de por lo menos 2 operaciones intermedias y 2 tipos de colectores en un Stream | 10 |
Uso de por lo menos 1 algoritmo de cifrado | 10 |
Uso de por lo menos 1 proveedor de cifrado | 10 |
Uso de por lo menos 1 funcionalidad de cifrado | 10 |
Uso de por lo menos 1 llave de cifrado | 10 |
Hacer uso de .gitignore (Se evaluara no tener archivos basura y directorios inecesarios como archivos compilados de Java (bin/ ) o archivos de configuración de editor de texto .vscode o .idea ) |
5 |
Captura de pantalla de proyecto generado por Spring Initializr | 5 |
Archivo desplegable usando Gradle o Maven | 5 |
Consumo de API pública usando RestTemplate | 10 |
Conversión del contenido consumido usando JAXB o Jackson | 10 |
API generada por Spring MVC con un endpoint de cada tipo (GET, POST, PUT, DELETE) | 10 |
Colección de Postman para consumir la API generada | 5 |
Creación de enlace con MongoDB usando Spring Data JPA | 10 |
Lectura de MongoDB | 10 |
Escritura en MongoDB | 10 |
Actualización en MongoDB | 10 |
Borrado en MongoDB | 10 |
Exponer un endpoint que genere un token de autenticación para dos tipos de usuarios (roles) | 10 |
Segurizar dos endpoints con acceso basado en roles protegidos con el token generado | 10 |
Exponer la información del proyecto mediante el endpoint Info de Actuator | 10 |
Exponer tres endpoints de Actuator (e.g. metrics, mappings, loggers) | 10 |
Total | 350 |
Mínimo aprobatorio | 280 |
- Temas relacionados: Semana 5 y 6
- Spring Boot
- Integraciones (Docker, OpenAPI, Kafka)
- Patrones de Diseño
- JUnit
- SonarCloud
Para poder considerar completadas las semanas 5 y 6 de entrenamiento debe contemplar lo siguiente:
Tópico | Puntaje |
---|---|
Implementación de un Job con Spring Batch usando un Reader, un Processor y un Writer | 30 |
Uso de Dockerfile para desplegar la aplicación en un contenedor | 10 |
Creación de contrato de API usando Swagger (OpenAPI) en un controlador | 20 |
Creación de un consumidor de Kafka | 10 |
Creación de un productor de Kafka | 10 |
Configuración de la comunicación entre productor y consumidor de Kafka | 20 |
Implementación de un patrón de diseño de creación | 30 |
Implementación de un patrón de diseño de comportamiento | 30 |
Implementación del patrón de diseño "Throttling" | 10 |
Prueba unitaria de cada endpoint de la API | 20 |
Prueba unitaria de cada operación CRUD | 20 |
Uso de Mockito en cada prueba | 10 |
Generación de logs por prueba | 10 |
Pruebas para Happy Path | 20 |
Pruebas para cada Edge Case | 20 |
Implementación de JaCoCo o SonarCloud (mínimo 70% de cobertura) | 30 |
Total | 300 |
Mínimo aprobatorio | 240 |