Este proyecto implementa un sistema de gestión de turnos utilizando Spring Boot, MySQL, WebSocket y Docker Compose.
Permite registrar personas, generar tickets de atención, asignarlos a módulos y consultar el tablero de últimos llamados.
- Java 21
- Maven 3.9+
- Docker (opcional, recomendado)
git clone https://github.com/alexandertutoriales19/turnos-system.git
cd sistema-turnos
docker compose up -d
Credenciales por defecto (ver docker-compose.yml
):
- DB:
turnos
- user:
root
- pass:
root_password
docker-compose logs -f
docker-compose down
src/main/resources/application.yml
ya viene listo para usar variables de entorno:
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: turnos
DB_USER: root
DB_PASS: root_password
Si corres la app local sin Docker, se conecta a:
jdbc:mysql://localhost:3306/turnos usuario: root clave: root_password
mvn spring-boot:run
- Tablero (TV): http://localhost:8080/index.html
- Cajero: http://localhost:8080/cajero.html
- Crear Ticket: http://localhost:8080/ticket.html
- Swagger: http://localhost:8080/swagger-ui.html
- Mock RENIEC
POST /api/reniec/lookup/12345678
- Crear ticket
POST /api/tickets
(Body: JSON con los campos delPersonDTO
) - Llamar siguiente
GET /api/tickets/next?module=1
- Terminar atención
GET /api/tickets/2/serve
- Buscar personas por DNI
GET /api/persons/searchByDNI/78019778
- Ver tablero (se actualiza en tiempo real por WebSocket)
person/
entidad y repo de personas (DNI).ticket/
entidad, repo y servicio de tickets.api/
controladores REST + DTOs.config/
WebSocket y CORS.
- El consumo RENIEC es mock para la demo. Implementa un
ReniecClient
real conWebClient
y credenciales si vas a producción. - Si usas Angular, apúntalo a
http://localhost:8080
y habilita CORS (ya está).