forked from wizelineacademy/BAZJAVASR5-2023
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update Proyecto Final Capstone Project.md
- Loading branch information
1 parent
f26e6d4
commit 29ddd5e
Showing
1 changed file
with
0 additions
and
148 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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** | |