Este proyecto es un ejemplo educativo que demuestra la implementación de una aplicación Java utilizando Spring Boot y JavaFX, siguiendo las mejores prácticas de diseño y arquitectura de software.
El sistema implementa una aplicación de gestión de usuarios con las siguientes funcionalidades:
- Agregar usuarios al sistema
- Listar usuarios existentes
- Gestión de grupos de usuarios
- Interfaz gráfica desarrollada con JavaFX
El proyecto sigue una arquitectura en capas:
- Presentación: Implementada con JavaFX para la interfaz de usuario
- Negocio: Servicios que implementan la lógica de negocio
- Datos: Repositorios para la persistencia de datos
- Java JDK 11 o superior
- Maven 3.6 o superior
- IDE compatible con Spring Boot (recomendado: Eclipse, IntelliJ IDEA o VS Code)
- Clonar el repositorio:
git clone [URL_DEL_REPOSITORIO]
cd AnalysisYDiseno
- Compilar el proyecto:
mvn clean install
- Desde la línea de comandos:
mvn spring-boot:run
- Desde un IDE:
- Importar el proyecto como proyecto Maven
- Ejecutar la clase
ProyectoApplication
como aplicación Java
src/
├── main/
│ ├── java/
│ │ └── mx/uam/ayd/proyecto/
│ │ ├── datos/ # Capa de persistencia
│ │ ├── negocio/ # Lógica de negocio
│ │ │ └── modelo/ # Entidades de dominio
│ │ └── presentacion/ # Interfaces de usuario
│ └── resources/ # Configuración y recursos
└── test/ # Pruebas unitarias
- Arquitectura en capas bien definida
- Implementación de patrones de diseño
- Pruebas unitarias con JUnit y Mockito
- Persistencia con JPA/Hibernate
- Interfaz gráfica moderna con JavaFX
El proyecto está estructurado siguiendo las mejores prácticas de diseño:
- Inversión de Control (IoC)
- Inyección de Dependencias
- Principios SOLID
- Pruebas unitarias
El proyecto utiliza una base de datos H2 en memoria para desarrollo:
- Console H2: http://localhost:8080/h2-console
- JDBC URL: jdbc:h2:mem:testdb
- Usuario: sa
- Password: (vacío)
Para ejecutar las pruebas unitarias:
mvn test
El proyecto incluye diagramas y documentación adicional en la carpeta docs/
:
- Diagramas de secuencia
- Diagramas de paquetes
- Documentación de la arquitectura
- Fork del repositorio
- Crear una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit de tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abrir un Pull Request
Este proyecto es un ejemplo educativo y está disponible bajo la licencia MIT.
Humberto Cervantes Maceda - UAM Iztapalapa