Skip to content

Commit

Permalink
Update Proyecto Final Capstone Project.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Violetabaltazar authored May 19, 2023
1 parent f26e6d4 commit 29ddd5e
Showing 1 changed file with 0 additions and 148 deletions.
148 changes: 0 additions & 148 deletions Proyecto Final Capstone Project.md
Original file line number Diff line number Diff line change
@@ -1,149 +1 @@

# Proyecto Final
- [Proyecto Final](#proyecto-final)
- [Definición del Proyecto](#definici%C3%B3n-del-proyecto)
- [Entregables](#entregables)
- [Fechas de Entrega](#fechas-de-entrega)
- [Entregable 1](#entregable-1)
- [Requerimientos y Criterio de Evaluación](#requerimientos-y-criterio-de-evaluaci%C3%B3n)
- [Entregable 2](#entregable-2)
- [Requerimientos y Criterio de Evaluación](#requerimientos-y-criterio-de-evaluaci%C3%B3n)
- [Entregable 3](#entregable-3)
- [Para poder considerar completadas las semanas 5 y 6 de entrenamiento debe contemplar lo siguiente:](#para-poder-considerar-completadas-las-semanas-5-y-6-de-entrenamiento-debe-contemplar-lo-siguiente)
- [Criterio de Evaluación](#criterio-de-evaluaci%C3%B3n)

# 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](https://classroom.github.com/a/6Tv73W6t)

# 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 una `revisión` y `retroalimentación` se deberá enviar la URL de tu `Pull Request` a través del siguiente [formulario](https://forms.gle/DEq1q92mVTRTPMBg6), 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 debe 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** |

0 comments on commit 29ddd5e

Please sign in to comment.