Este proyecto es un apoyo docente de la asignatura. Cada release liberada corresponde al código utilizado en clase del curso indicado
Java
Maven
GitHub
Travis-ci
Sonarcloud
Better Code Hub
Slack
Spring-boot
Heroku
OpenAPI
- Clonar el repositorio en tu equipo, mediante consola:
> cd <folder path>
> git clone https://github.com/miw-upm/apaw
- Importar el proyecto mediante IntelliJ IDEA
- Import Project, y seleccionar la carpeta del proyecto.
- Marcar Create Project from external model, elegir Maven.
- Next … Finish.
🎥 Videos (www.youtube.com/miw-upm)
- Lista de reproducción: APAW (Curso 2020-21). Arquitectura y Patrones para Aplicaciones Web
La practica consiste en ampliar de forma colaborativa una aplicación: https://github.com/miw-upm/apaw-practice.
NOTA. Todo el software deberá estar en ingles.
Por ejemplo: story:sport
, story:team
... no puede haber repetidas. En todos los issues# creados, se deberá asociar dicha etiqueta,
además de la etiquite de estimación (puntos).
Crear un 1️⃣ issue# (por ejemplo: Team entities model) para resolverlo y una vez finalizado e incorporado a develop y añadido el tiempo consumido, se debe avisar al profesor mediante Slack, si es correcto el profesor cerrará la tarea y se podrá continuar, sino, se resolverá mediante el foro del issue en GitHub.
- Crear 4 documentos. No puede haber 2 documentos con el mismo nombre en toda la aplicación.
- Cada documento: >=2 atributos + [id:String].
- Total >= 16 atributos, con al menos LocalDateTime, Boolean y uno numérico (Integer, Double, Long o BigDecimal).
- Los atributos para manejo de dinero deben ser BigDecimal.
- Relaciones necesarias: 1..n, n..1 y n..n.
- Crear los DAOs (Repositorios).
- Crear una clase para poblar las BD: Seeder<Story>Service e integrarlo con DatabaseSeederService.
3. Crear 5 end-points (mediante 2️⃣..6️⃣ issue#): GET, POST, PUT, PATCH Y DELETE repartidos entre los documentos (PATCH: 1 pto, resto: 0,75 ptos)
4. Una vez finalizado los cinco issues anteriores, se debe avisar al profesor por Slack, y el profesor añadirá (5 ptos):
- 7️⃣..8️⃣ issues# para realizar end-points de búsquedas.
- 9️⃣..🔟 issues# con la aplicación de dos patrones.
- Uso correcto del flujo de trabajo ramificado. Hasta -3 ptos.
- Adecuación de la temporalidad de desarrollo según el enunciado. Hasta -3 ptos.
- Mantenimiento de calidad del código según Travis-CI y Sonar. Cobertura >= 80%. Hasta -3 ptos. Todos los aspectos vistos en teoría, y poniendo espeacial enfásis en:
- Formatear.
- Herramienta del IDE.
- Líneas en blanco.
- Ordenar métodos.
- Repasar nombres de clases, métodos, atributos, parámetros y variables.
- Sencillez del código.
- Simplificar el código.
- Eliminar comentarios.
- Estructuras anidadas: <3.
- Complejidad ciclomática: <8-12.
- Métricas.
- Paquete: <20 clases.
- Clases: <500-200 líneas, <20 métodos.
- Métodos: <3-4 parámetros, <15 líneas.
- Eliminar redundancias (copy & paste).
- Eliminar código muerto.
- Tratamiento de errores.
- Calidad de la arquitectura (GRASP, SOLID, patrones...).
- Formatear.
- Gestión adecuada, completa y equilibrada (estimación, tiempo real...) durante el desarrollo. Hasta -3 ptos.
- Uso del ingles. Hasta -1 pto.
Indicar como texto en la subida en nombre de la historía y la cuenta de GitHub.
NOTA. Acordarse de dar al botón de envío.