slotguard
SlotGuard es un sistema fullstack de reservas de salas con soporte para concurrencia. Utiliza React, FastAPI y PostgreSQL para gestionar reservas de forma segura.
Ficha actualizada 23 sept 2026, 13:36 · upstream 23 sept 2026, 13:19 · release sin release detectada
Qué es slotguard
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
SlotGuard permite que dos personas vean una sala abierta simultáneamente y ambas puedan hacer clic en 'Reservar'. SlotGuard hace visible el éxito, la conflictividad y el siguiente paso del proceso —sin deshabilitar un botón. El sistema utiliza PostgreSQL para proteger las reservas mediante exclusiones de intervalo, no mediante botones inactivos.
El proyecto incluye: tarjetas de salas con agenda semanal y diseño móvil; gestión de reservas, cancelaciones y alternativas de conflicto; sesiones de miembros y administradores con contraseñas encriptadas y cookies HttpOnly revocables; reintentar una solicitud sin crear otra reserva (con registro idempotente); creación de salas por administrador con auditoría transaccional; y el desafío de concurrencia de dos solicitudes concurrentes.
La interfaz actualiza tras mutaciones, al enfocar la ventana o manualmente. No es un feed en tiempo real. Se ofrecen sugerencias basadas en la vista renovada que se revisan antes de enviar. Alternativas a las sugerencias están disponibles y son verificables.
El demo local requiere Docker con Compose. Se pueden configurar usuarios personalizados, variables de entorno y solucionar problemas. El código nativo para Windows PostgreSQL se prueba localmente; el CI build y smoke test Compose se ejecutan separadamente. Verifica los resultados del workflow actual antes de asumir que todo funciona.
La arquitectura y sus tradeoffs están detalladas en docs/architecture.md. No se garantiza exactamente-once para efectos externos.
- Gestionar reservas de salas con concurrencia real
- Proteger contra doble-reserva mediante exclusiones de intervalo en PostgreSQL
- Soporte para múltiples usuarios (miembros y administradores)
- Reintentos idempotentes sin crear reservas duplicadas
- Auditoría transaccional de creación y cancelación de salas
- Demo local con dos solicitudes concurrentes que muestran éxito, conflicto y confirmación en PostgreSQL
- Exclusion constraint en PostgreSQL para evitar intervalos superpuestos sin bloquear botones
- Idempotencia por actor + clave + payload normalizada: mismo resultado para misma solicitud repetida
- Sesión de administrador con roles y transacciones para auditoría
- Reactividad del UI tras mutaciones, enfocamiento o manual
- No ofrece garantía de exactamente-once para efectos externos
- El demo local no incluye sincronización con calendario externo ni pagos
- No hay notificaciones automáticas en segundo plano
- La disponibilidad es advisory: la DB arbitra conflictos, el API devuelve 409
Capturas del proyecto
Imágenes reales detectadas en la documentación del repositorio.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Requiere Docker Compose. Copia .env.example a .env y configura POSTGRES_PASSWORD con valor aleatorio largo. Ejecuta `docker compose up --build`. El demo funciona en localhost:8000. PostgreSQL no tiene puerto publicado ni host. Se recomienda usar un contenedor de base de datos separado o configurar un volumen persistente para persistencia de datos. Para desarrollo local, usa usuarios personalizados y variables de entorno; el CI build y smoke test se ejecutan separadamente.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.


