Skip to content

JereBon/tpFundamentosSpringboot

Repository files navigation

Sistema de Gestión de Tareas (To-Do List)

📝 Descripción del Proyecto

Este proyecto es una aplicación Spring Boot que implementa un sistema de gestión de tareas (To-Do List). Demuestra la aplicación de conceptos fundamentales de Spring Boot como la inyección de dependencias, estereotipos, configuración mediante application.properties y gestión de diferentes entornos con profiles.

La aplicación permite:

  • Crear, listar, buscar y eliminar tareas.
  • Marcar tareas como completadas.
  • Obtener estadísticas sobre el estado de las tareas.
  • Adaptar su comportamiento y configuración según el entorno (desarrollo o producción).

⚙️ Tecnologías Utilizadas

  • Java: Versión 17+
  • Spring Boot: Versión 3.x
  • Maven: Herramienta de gestión de proyectos.
  • Lombok: Librería para reducir código boilerplate (getters, setters, constructores, etc.).

🚀 Instrucciones para Clonar y Ejecutar el Proyecto

  1. Clonar el repositorio:

    git clone https://github.com/JereBon/tpFundamentosSpringboot.git
    cd tareas
  2. Compilar el proyecto (usando Maven Wrapper):

    ./mvnw clean install
  3. Ejecutar la aplicación:

    ./mvnw spring-boot:run

    O, si ya compilaste:

    java -jar target/tareas-0.0.1-SNAPSHOT.jar

🔧 Cómo Cambiar entre Profiles (dev/prod)

La aplicación está configurada para usar perfiles de Spring Boot (dev y prod). Por defecto, el perfil activo es dev (definido en application.properties).

Para ejecutar la aplicación con un perfil específico, puedes usar la propiedad spring.profiles.active:

  • Perfil de Desarrollo (dev):

    ./mvnw spring-boot:run -Dspring-boot.run.profiles=dev

    O:

    java -jar target/tareas-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
  • Perfil de Producción (prod):

    ./mvnw spring-boot:run -Dspring-boot.run.profiles=prod

    O:

    java -jar target/tareas-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

Observa cómo cambian los mensajes de bienvenida/despedida, el límite máximo de tareas y la visibilidad de las estadísticas según el perfil activo.

📸 Capturas de Pantalla de la Consola

Ejecución con Perfil dev

Captura de pantalla del perfil dev

Ejecución con Perfil prod

Captura de pantalla del perfil prod

💭 Conclusiones Personales sobre lo Aprendido

Durante el desarrollo de este proyecto, he consolidado mi comprensión sobre:

  • La importancia de la inyección de dependencias por constructor para un código más limpio y testeable.
  • El uso efectivo de estereotipos de Spring (@Repository, @Service) para organizar la arquitectura de la aplicación.
  • La flexibilidad que ofrece la configuración externa con application.properties y la inyección de valores con @Value.
  • La potencia de los perfiles de Spring (@Profile) para adaptar el comportamiento de la aplicación a diferentes entornos sin modificar el código base, lo cual es crucial en entornos profesionales.
  • La implementación de CommandLineRunner para ejecutar lógica al inicio de la aplicación, útil para inicializar datos o realizar tareas de configuración.

Este trabajo práctico ha sido fundamental para aplicar y entender cómo estos conceptos se integran para construir aplicaciones Spring Boot robustas y mantenibles.

👤 Autor

  • Nombre: Jeremias Bontorno Pontis
  • Legajo: 52606

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages