
SALUS
Plataforma de gestión de turnos para profesionales de la salud
Plataforma web donde pacientes encuentran profesionales de salud mental y reservan un turno en minutos, y donde cada profesional administra su agenda desde un panel propio.

El problema
Los profesionales necesitaban administrar sus turnos sin depender de mensajes y planillas, y los pacientes necesitaban una forma simple de encontrar a alguien disponible —según su ubicación, modalidad y cobertura— y reservar sin fricción.
La solución
Diseñé y desarrollé una plataforma completa: un buscador público con filtros, reserva de turnos sin crear cuenta, un panel para que cada profesional gestione disponibilidad y agenda, y un panel de administración. La lógica crítica vive en la base de datos, protegida con Row Level Security y funciones RPC con permisos controlados.
Flujo del paciente
- PacienteSin crear cuenta
- BúsquedaUbicación, modalidad, cobertura
- ProfesionalPerfil y valoraciones
- ReservaHorarios disponibles reales
- AgendaEl turno impacta en la agenda
Flujo del profesional
- ProfesionalAcceso con su rol
- AgendaDisponibilidad y bloqueos
- TurnosReservas del día
- EstadosReservado · Realizado · Cancelado · No asistió
- AdministraciónPanel admin y permisos

Agenda
Turnos del día
- 09:00Paciente A.VirtualRealizado
- 10:00Paciente B.PresencialNo asistió
- 11:00Paciente C.VirtualReservado
- 14:00Paciente D.PresencialCancelado
- 15:00Paciente E.VirtualReservado
Representación ilustrativa · datos de ejemplo
Qué resuelve el sistema
Para pacientes
- Búsqueda de profesionales
- Filtros por provincia, ciudad, modalidad y cobertura
- Reserva de turnos sin crear una cuenta
- Valoración posterior a la consulta mediante un link único
Para profesionales
- Configuración de disponibilidad semanal y bloqueos puntuales
- Administración de la agenda
- Gestión de reservas y cambio de estado de cada turno
- Edición del perfil público
Administración y seguridad
- Panel administrativo para alta, edición y baja de profesionales
- Roles diferenciados (administrador y profesional)
- Control de acceso a la información con Row Level Security
- Operaciones críticas en funciones RPC SECURITY DEFINER
Decisiones técnicas
- 01
Horarios disponibles calculados
Los horarios que ve el paciente se calculan cruzando la disponibilidad del profesional, sus bloqueos y los turnos ya reservados.
- 02
Sin doble reserva
La protección contra reservas duplicadas está tanto a nivel de base de datos como en la función RPC que crea el turno.
- 03
Acceso controlado por datos
Cada rol accede únicamente a lo que le corresponde: las reglas viven en Postgres con RLS, no solo en la interfaz.
Mi rol
- Análisis funcional y definición del alcance
- Modelado de datos y diseño de la arquitectura
- Desarrollo frontend y backend
- Seguridad: RLS, roles y funciones RPC
- Deploy y puesta en producción
Stack
- Next.js 15
- App Router
- React 19
- TypeScript
- Supabase
- PostgreSQL
- Supabase Auth
- Supabase Storage
- Row Level Security
- RPC / SECURITY DEFINER
- Tailwind CSS
- shadcn/ui
- Vercel
Resultado
- Plataforma en producción en salusprofesionales.com.ar.
- Profesionales con perfil publicado y valoraciones registradas por pacientes después de la consulta.
