Skip to content

Latest commit

 

History

History
149 lines (130 loc) · 13 KB

Proyecto Final Capstone Project.md

File metadata and controls

149 lines (130 loc) · 13 KB

Proyecto Final

Espacio de trabajo

Primero acepta la siguienta asignación de github classroom para poder trabajar en el repositorio generado pues es allí donde realizarás tu entrega.

Asignación

Definición del Proyecto

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.

Entregables

Fechas de Entrega

  • Entregable 1: lunes 10 de abril - 6:00pm
  • Entregable 2: lunes 24 de abril - 6:00pm
  • Entregable 3: lunes 8 de mayo - 6:00pm

Entregable 1

  • Temas relacionados: Semana 1 y 2
    • Github
    • Microservicios
    • RestAPIs
    • Kafka
    • MongoDB
    • Serverless

Requerimientos y Criterio de Evaluación

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

Entregable 2

  • Temas relacionados: Semana 3 y 4
    • Java
    • Spring Boot

Requerimientos y Criterio de Evaluación

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

Entregable 3

  • Temas relacionados: Semana 5 y 6
    • Spring Boot
    • Integraciones (Docker, OpenAPI, Kafka)
    • Patrones de Diseño
    • JUnit
    • SonarCloud

Requerimientos y Criterio de Evaluación

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