You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Proyecto Integrador de Programación Java Autor: Juan David Laverde Ochoa
TecnologÃas: Java · SLF4J · Log4j2 · JUnit 5 · Maven
1. Descripción General
TaskLand es una aplicación de consola desarrollada en Java que permite administrar una lista de tareas pendientes desde la lÃnea de comandos, aplicando buenas prácticas de programación profesional:
✅ Manejo adecuado de errores y excepciones
✅ Registro de eventos mediante logging profesional (SLF4J + Log4j2)
✅ Pruebas unitarias con JUnit 5
Funcionalidades
Agregar una tarea con ID automático, nombre, descripción y estado (pendiente/completada)
Listar todas las tareas registradas
Marcar una tarea como completada
Marcar una tarea como incompleta
Eliminar una tarea por ID
Exportar la lista de tareas a un archivo .txt
Salir del sistema correctamente
2. Arquitectura y Estructura del Proyecto
src/
main/java/org/example/
model/ → Clase Tarea (entidad de datos)
service/ → TareaService, ValidarTareaService (lógica de negocio)
exception/ → Excepciones personalizadas
Main.java → Punto de entrada, menú de consola
main/resources/
log4j2.xml → Configuración de logging
test/java/org/example/service/
TareaServiceTest.java
TareaMainTest.java
ValidarTareaServiceTest.java
Descripción de Capas
Capa
Clase / Archivo
Responsabilidad
Modelo
Tarea.java
Entidad con ID, nombre, descripción y estado
Servicio
TareaService.java
Lógica de negocio: agregar tarea, listar tarea, completar tarea, tarea incompleta, eliminar tarea y exportar tarea
Validación
ValidarTareaService.java
Centraliza validaciones de datos de entrada
Excepciones
exception/*
Excepciones personalizadas para errores de negocio
Entrada
Main.java
Menú interactivo, manejo global de excepciones y logging
Configuración
log4j2.xml
Define appenders y niveles de log por paquete
3. Modelo de Datos
Clase Tarea
La clase Tarea es la entidad principal. Usa un contador estático para generar IDs únicos y autoincrementales.