Proyecto de práctica para el curso Programación II. Su propósito principal
no es el código en sí, sino servir como repositorio base para los
ejercicios de control de versiones (fork, commits, ramas, Pull Requests,
merge, squash and merge, rebase and merge y git log) descritos en la hoja
de trabajo del curso.
Es una API REST sencilla para administrar una lista de tareas (to-do list).
- Java 17
- Spring Boot 3.2.5 (Web, Data JPA, Validation)
- Base de datos H2 en memoria
- Maven
- JUnit 5 + Mockito
mvn spring-boot:runLa aplicación inicia en http://localhost:8080. La consola de la base de
datos H2 está disponible en http://localhost:8080/h2-console
(JDBC URL: jdbc:h2:mem:practicadb, usuario: sa, contraseña: vacía).
Para ejecutar las pruebas:
mvn test| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/tareas |
Lista todas las tareas |
| GET | /api/tareas/{id} |
Obtiene una tarea por id |
| POST | /api/tareas |
Crea una nueva tarea |
| PUT | /api/tareas/{id} |
Actualiza una tarea existente |
| PATCH | /api/tareas/{id}/completar |
Marca una tarea como completada |
| DELETE | /api/tareas/{id} |
Elimina una tarea |
Ejemplo de cuerpo para crear una tarea (POST /api/tareas):
{
"titulo": "Practicar rebase",
"descripcion": "Completar la sección 4.7 de la hoja de trabajo",
"completada": false
}- Haga fork de este repositorio hacia su propia cuenta de GitHub.
- Clone su fork y configure el remoto
upstreamapuntando a este repositorio original. - Siga las secciones de la hoja de trabajo del curso, creando ramas como
feature/funcionalidad-a,feature/funcionalidad-byfeature/funcionalidad-cpara practicar, respectivamente, un merge estándar, un squash and merge y un rebase and merge mediante Pull Requests dentro de su propio fork. - Ideas de cambios pequeños para practicar en cada rama:
- Agregar un nuevo endpoint (por ejemplo,
GET /api/tareas/pendientesque devuelva solo las tareas no completadas). - Agregar un nuevo campo a
Tarea(por ejemplo, una fecha límite). - Agregar una prueba unitaria adicional en
TareaServiceTest. - Mejorar este mismo README con ejemplos adicionales.
- Agregar un nuevo endpoint (por ejemplo,
src/main/java/com/plusti/practicagit/
├── PracticaGitApplication.java # Clase principal
├── controller/ # Controladores REST y manejo de errores
├── model/ # Entidades JPA
├── repository/ # Interfaces Spring Data JPA
└── service/ # Lógica de negocio