CentroPlus Connect es una solución de gestión desarrollada para centros educativos que permite administrar usuarios, actividades, reservas e incidencias mediante una aplicación de escritorio desarrollada con JavaFX y una API REST construida con Spring Boot.
El proyecto ha sido diseñado aplicando buenas prácticas de ingeniería del software, utilizando una arquitectura desacoplada, persistencia de datos relacional y documentación automática mediante Swagger/OpenAPI.
✅ Aplicación de escritorio desarrollada con JavaFX
✅ API REST desarrollada con Spring Boot
✅ Arquitectura Hexagonal en el backend
✅ Persistencia mediante SQLite y H2 Database
✅ CRUD completo para usuarios, actividades, reservas e incidencias
✅ Documentación automática con Swagger/OpenAPI
✅ Testing unitario con JUnit 5 y Mockito
✅ Conversión automática de modelos mediante MapStruct
- Alta de usuarios.
- Consulta de usuarios.
- Modificación de usuarios.
- Eliminación de usuarios.
- Creación de actividades.
- Consulta de actividades disponibles.
- Gestión de plazas.
- Actualización de actividades.
- Eliminación de actividades.
- Creación de reservas.
- Consulta de reservas.
- Actualización de reservas.
- Cancelación de reservas.
- Registro de incidencias.
- Seguimiento del estado.
- Modificación de incidencias.
- Resolución y cierre.
El repositorio se encuentra organizado en tres módulos principales:
CentroPlus Connect
│
├── backend-api
│
├── mobile-app
│
├── database
│
├── docs
│
└── imgs
API REST desarrollada utilizando Spring Boot.
Arquitectura:
Controller
↓
Service
↓
Port
↓
Persistence Adapter
↓
Repository
↓
Database
Aplicación de escritorio desarrollada utilizando JavaFX.
Arquitectura:
Controller
↓
Service
↓
Repository
↓
SQLite
Contiene la estructura compartida de la base de datos.
database
├── schema.sql
└── seed.sql
Estos scripts permiten recrear la estructura y los datos iniciales utilizados por la aplicación.
| Tecnología | Función |
|---|---|
| Java 17 | Lenguaje principal |
| JavaFX | Interfaz gráfica |
| Spring Boot | Backend REST |
| Spring Data JPA | Persistencia |
| SQLite | Base de datos local |
| H2 Database | Base de datos en memoria |
| MapStruct | Conversión DTO ↔ Modelo |
| Swagger/OpenAPI | Documentación REST |
| Maven | Gestión de dependencias |
| JUnit 5 | Testing unitario |
| Mockito | Mocking |
| CSS | Personalización visual |
| FXML | Diseño de interfaces |
- Java 17 o superior
- Maven 3.9 o superior
- Git
git clone https://github.com/alejandroDonGar/centroplus-connect.git
cd centroplus-connectcd mobile-app
mvn clean javafx:runLa aplicación iniciará utilizando SQLite como sistema de persistencia local.
cd backend-api
mvn spring-boot:runPor defecto la API estará disponible en:
http://localhost:8080
Una vez iniciada la API REST, la documentación interactiva estará disponible en:
http://localhost:8080/swagger-ui/index.html
Swagger permite:
- Consultar todos los endpoints disponibles.
- Realizar peticiones directamente desde el navegador.
- Visualizar modelos de datos.
- Probar operaciones CRUD sin herramientas externas.
El proyecto incluye pruebas unitarias para garantizar la calidad y estabilidad del sistema.
Ejecutar todas las pruebas:
mvn testCobertura principal:
- DTOs
- Entidades
- Servicios
- Mappers
- Adaptadores de persistencia
- Controladores REST
Tecnologías utilizadas:
- JUnit 5
- Mockito
La documentación detallada del proyecto se encuentra disponible en:
docs/
├── manual-backend-api.md
└── manual-mobile-app.md
🔗 GitHub
https://github.com/alejandroDonGar
IES Puerto de la Cruz
Proyecto Final DAM · CentroPlus Connect
✅ Aplicación JavaFX funcional
✅ API REST funcional
✅ CRUD completo de usuarios
✅ CRUD completo de actividades
✅ CRUD completo de reservas
✅ CRUD completo de incidencias
✅ Arquitectura Hexagonal implementada
✅ Swagger/OpenAPI integrado
✅ Persistencia mediante SQLite y H2
✅ Tests unitarios implementados
✅ Proyecto finalizado


