23 Barber Studio
Sistema integral de gestión para una barbería real
Problema: Centralizar en una sola plataforma la operación de la barbería: reservas, agenda, clientes, caja, stock, ventas y comunicación comercial.
Plataforma full stack con API REST en Spring Boot y frontend en Next.js. Combina la gestión administrativa con reservas online en tiempo real, verificación por SMS y campañas comerciales con segmentación de clientes asistida por IA.
- endpoints REST
- 100endpoints REST
- casos de prueba
- 560+casos de prueba
- entidades de dominio
- 34entidades de dominio
Mis aportes
- Reserva pública online con disponibilidad en tiempo real mediante WebSockets e integración del envío de SMS (Twilio) en el flujo de reserva.
- Módulos de productos y stock con alertas de bajo inventario, ventas manuales y reportes de balance, ingresos por período y demanda, con pruebas unitarias en JUnit y Mockito.
- Frontend en Next.js: gestión de servicios y usuarios, landing y configuración del despliegue en Netlify.
- Mantenimiento de colecciones de Postman para probar la API.
Clientes
- Reserva online pública
- Login de cliente con 2FA
Panel interno
- Agenda, caja, stock, ventas
- Dashboard, reportes, campañas
API · Spring Boot
- Controllers → Facades → Services
- Spring Security · JWT · roles · 2FA
- Schedulers y auditoría de operaciones
Datos
- SQL Server
Mensajería
- Twilio SMS / Verify
IA
- Gemini 2.5 Flash
- Segmentación de clientes
Funcionalidades del sistema
- Reserva online con disponibilidad en tiempo real (WebSockets)
- Autenticación JWT, roles y permisos, 2FA por SMS
- Agenda de turnos, reasignaciones y control de asistencia
- Clientes con historial y mensualidades
- Caja, ventas manuales y control de stock con alertas
- Dashboard y reportes de balance, ingresos y demanda
- Campañas SMS con segmentación asistida por IA (Gemini)
- Auditoría de operaciones
- Java 21
- Spring Boot 3
- Spring Security
- JPA
- SQL Server
- WebSockets
- Twilio
- Gemini API
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- Docker
- Netlify
Código privado del cliente. Las cifras corresponden al backend completo del equipo.