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 y Swagger.
Crear una API RESTful utilizando Spring Boot 2.7.x que gestione usuarios y tareas, aplicando buenas prácticas, principios SOLID y utilizando las tecnologías especificadas.
- Utiliza Java 17 para la implementación.
- Utiliza las características de Java 17, como lambdas y streams, cuando sea apropiado.
- Utilizar Maven como gestor de dependencias
- Construye la aplicación utilizando Spring Boot 2.7.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 y Swagger.
- 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 y Swagger para documentar claramente la API.
- 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 sobre cómo ejecutar y probar la aplicación.
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 17, Spring Boot 2.7.x, H2, JWT, OpenAPI y Swagger.
- Claridad y completitud de la documentación.