Plataforma para gestionar tareas domésticas en hogares compartidos utilizando arquitectura hexagonal (Hexagonal Architecture).
Esta aplicación permite organizar y distribuir tareas domésticas en hogares compartidos, facilitando la asignación, seguimiento y cumplimiento de responsabilidades entre los miembros del hogar.
- Registro de usuarios y grupos familiares
- Creación y asignación de tareas domésticas
- Definición de fechas límite y prioridades
- Registro del estado de cada tarea
- Historial de cumplimiento por usuario
- Reportes sobre distribución de responsabilidades
El proyecto sigue los principios de Hexagonal Architecture, separando las preocupaciones en capas claramente definidas:
- Domain: Entidades de negocio, reglas de negocio y interfaces de repositorio
- Application: Casos de uso y servicios de aplicación
- Infrastructure: Implementaciones de repositorio y adaptadores externos
- Presentation: Controladores REST y DTOs
- Java 21
- Spring Boot 3.2.0
- Spring Data JPA
- PostgreSQL
- Maven
-
Base de Datos: Configurar PostgreSQL y actualizar
application.propertiescon las credenciales correctas. -
Dependencias: Ejecutar
mvn installpara instalar las dependencias. -
Ejecución: Ejecutar
mvn spring-boot:runpara iniciar la aplicación.
POST /api/users- Crear usuarioGET /api/users/{id}- Obtener usuario por IDGET /api/users- Obtener todos los usuariosPUT /api/users/{id}- Actualizar usuarioDELETE /api/users/{id}- Eliminar usuario
POST /api/hogares- Crear grupoGET /api/hogares/{id}- Obtener grupo por IDGET /api/hogares- Obtener todos los gruposPUT /api/hogares/{id}- Actualizar grupoDELETE /api/hogares/{id}- Eliminar grupo
POST /api/tareas- Crear tareaGET /api/tareas/{id}- Obtener tarea por IDGET /api/tareasgroup/{groupId}- Obtener tareas por grupoGET /api/tareas/user/{userId}- Obtener tareas por usuarioPUT /api/tareas/{id}- Actualizar tareaPATCH /api/tareas/{id}/status- Actualizar estado de tareaDELETE /api/tareas/{id}- Eliminar tareaPOST /api/tareas/hogares/{hogarId}/asignacion-semanal- Asignar tareas
src/
└── main/
└── java/com/tareasdomesticas/
├── hogar-service/
│
├── HogarServiceApplication.java
│
├── common
│ └── domain
│ └── model
│ ├── Usuario.java
│ └── RolUsuario.java
├── hogares
│ ├── domain
│ │ ├── model
│ │ │ └── Hogar.java
│ │ └── port
│ │ └── out
│ │ └── HogarRepository.java
│
│ ├── application
│ │ ├── port
│ │ │ └── in
│ │ │ └── CrearHogarUseCase.java
│ │ └── service
│ │ └── CrearHogarService.java
│
│ └── infrastructure
│ └── adapter
│ ├── in
| | └── DTO
| | | └── CrearHogarRequest.java
| | | └── CrearHogarResponse.java
│ │ └── HogarController.java
│ └── out
│ └── InMemoryHogarRepository.java
├── tareas
│ ├── domain
│ │ ├── model
│ │ │ └── Tarea.java
| | | ├── DificultadTarea.java
| | | ├── PrioridadTarea.java
| | | └── EstadoTarea.java
│ │ └── port
│ │ └── out
│ │ └── TareaRepository.java
│
│ ├── application
│ │ ├── port
│ │ │ └── in
│ │ │ ├── CrearTareaUseCase.java
│ │ │ └── AsignarTareaUseCase.java
│ │ └── service
│ │ ├── CrearTareaService.java
│ │ └── AsignarTareaService.java
│
│ └── infrastructure
│ └── adapter
│ ├── in
| | └── DTO
| | | └── CrearTareaRequest.java
| | | └── CrearTareaResponse.java
│ │ └── TareaController.java
│ └── out
│ └── InMemoryTareaRepository.java
└── config
└── BeanConfig.java
- Implementar autenticación y autorización
- Agregar frontend web
- Implementar reportes y estadísticas
- Agregar notificaciones
- Tests unitarios e integración