Skip to content

previred/desafio-spring-boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 

Repository files navigation

Desafío Técnico: Gestión de Tareas con Spring Boot y Java

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.

Objetivo:

Crear una API RESTful utilizando Spring Boot que gestione usuarios y tareas, aplicando buenas prácticas, principios SOLID y utilizando las tecnologías especificadas.

Requisitos Técnicos:

Java:

  • 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.

Spring Boot 3.5.x:

  • Construye la aplicación utilizando Spring Boot 3.5.x (última versión disponible).

Base de Datos:

  • 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.

JPA:

  • Implementa una capa de persistencia utilizando JPA para almacenar y recuperar las tareas.

JWT (JSON Web Token):

  • Implementa la autenticación utilizando JWT para validar usuarios.

OpenAPI y Swagger:

  • Documenta la API utilizando OpenAPI.

Funcionalidades:

Autenticación:

  • Implementa un endpoint para la autenticación de usuarios utilizando JWT.

CRUD de Tareas:

  • Implementa operaciones CRUD (Crear, Leer, Actualizar, Eliminar) para las tareas.

Consideraciones:

Seguridad:

  • Asegúrate de que las operaciones CRUD de tareas solo sean accesibles para usuarios autenticados.

Documentación:

  • 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

Buenas prácticas:

  • Escribe código ordenado, aplicando buenas prácticas y principios SOLID.

Creatividad

  • Se espera dada la descripción del problema se creen las entidades y metodos en consecuencia a lo solicitado.

Entregables:

Repositorio de GitHub:

  • 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.

Documentación:

  • Incluye instrucciones claras en un README en formato markdown, sobre cómo ejecutar y probar la aplicación, con ejemplos de requests.

Evaluació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 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors