Este proyecto implementa un sistema completo para gestionar salas de estudio, reservas, participantes, sanciones y reportes, utilizando un backend en FastAPI, frontend en React, y una base de datos MySQL en Docker.
- Docker
- Docker Compose
- Node.js 18+
- npm 8+
git clone <URL_DEL_REPO>
cd Obligatoriodocker-compose builddocker-compose updocker-compose up -ddocker-compose down- API base → http://localhost:8000
- Swagger UI → http://localhost:8000/docs
cd frontendnpm installnpm run devObligatorio
├── backend
│ ├── models # Modelos Pydantic
│ ├── routes # Endpoints FastAPI
│ ├── services # Lógica negocio + DB
│ └── utils # Validaciones, helpers, hashing
│
├── database
│ └── docker-entry # Scripts SQL e inicialización
│
├── docs # Informe y documentación
│
└── frontend
├── app
├── components
│ └── ui
├── hooks
├── lib
└── src
├── components
├── hooks
├── pages # Pantallas del sistema
└── utils
└── styles # Estilos globales
...
El sistema permite:
- Altas, bajas y edición
- Asignación de turnos
- Control de capacidad
Incluye validaciones de negocio como:
- No superposición de horarios
- Máximo 2 horas por día por participante
- Máximo 3 reservas por semana
- La sala no puede estar ocupada
- Reserva fija de 1 hora
- Finalizar, cancelar y administrar participantes
- CRUD completo
- Vinculado al sistema de login
- Sanciones manuales
- Sanciones automáticas por inasistencia (duración: 2 meses)
- Contraseñas hasheadas con bcrypt
- Login básico
Consultas estadísticas sobre:
- Uso de salas
- Ocupación
- Reservas
- Asistencias
- Cancelaciones