La empresa NUEVO SPA desea desarrollar una plataforma de gestión de tareas para mejorar la productividad de sus equipos. El sistema debe permitir a los usuarios crear, actualizar, eliminar y listar tareas. Además, se requiere autenticación mediante JWT y documentación de la API utilizando OpenAPI.
Crear una API RESTful utilizando Spring Boot que gestione usuarios y tareas, aplicando buenas prácticas, principios SOLID y utilizando las tecnologías especificadas.
- Utiliza Java 21 para la implementación.
- Utiliza las características de Java 21, como lambdas, records y streams, cuando sea apropiado.
- Utilizar Maven como gestor de dependencias.
- Construye la aplicación utilizando Spring Boot 3.5.x (última versión disponible).
- Utiliza una base de datos H2.
- Crea tres tablas: usuarios, tareas y estados_tarea.
- La tabla usuarios debe contener datos pre cargados.
- La tabla estados_tarea debe contener estados pre cargados.
- Implementa una capa de persistencia utilizando JPA para almacenar y recuperar las tareas.
- Implementa la autenticación utilizando JWT para validar usuarios.
- Documenta la API utilizando OpenAPI.
- Implementa un endpoint para la autenticación de usuarios utilizando JWT.
- Implementa operaciones CRUD (Crear, Leer, Actualizar, Eliminar) para las tareas.
- Asegúrate de que las operaciones CRUD de tareas solo sean accesibles para usuarios autenticados.
- Utiliza OpenAPI 3 para documentar claramente la API.
- Puntos adicionales si se genera el API mediante metodologia API First. Generar el archivo openapi.yml Nota: Ejemplo Plugin Maven groupId org.openapitools, artifactId openapi-generator-maven-plugin
- Escribe código ordenado, aplicando buenas prácticas y principios SOLID.
- Se espera dada la descripción del problema se creen las entidades y metodos en consecuencia a lo solicitado.
- Realiza un Pull request a este repositorio indicando tu nombre, correo y cargo al que postulas.
- Todos los PR serán rechazados, no es un indicador de la prueba.
- Incluye instrucciones claras en un README en formato markdown, sobre cómo ejecutar y probar la aplicación, con ejemplos de requests.
Se evaluará la solución en función de los siguientes criterios:
- Correcta implementación de las funcionalidades solicitadas.
- Aplicación de buenas prácticas de desarrollo, patrones de diseño y principios SOLID.
- Uso adecuado de Java 21, Spring Boot 3.5.x, H2, JWT, OpenAPI.
- Claridad y completitud de la documentación.
- Puntos extras si la generación de la API se realizo mediante API First