Sistema integral de gestión para barberías: Agenda de citas, perfiles de clientes, reseñas, reportes financieros y notificaciones automáticas.
Demo • Características • Instalación • Documentación Técnica • Licencia
Las barberías tradicionales enfrentan desafíos operacionales:
- ❌ Gestión manual de citas (libreta, whatsapp)
- ❌ Clientes olvidados sin confirmaciones
- ❌ Imposible saber ingresos mensuales
- ❌ Sin catálogo formal de servicios
- ❌ Difícil recopilar feedback de clientes
Cabigote centraliza todo en una plataforma web moderna:
- ✅ Clientes reservan citas en tiempo real (sin llamadas)
- ✅ Confirmaciones y recordatorios automáticos por email
- ✅ Dashboard de ingresos diarios/mensuales con gráficos
- ✅ Catálogo de servicios con fotos
- ✅ Reseñas de clientes (5 estrellas)
- ✅ Gestión de disponibilidad (días cerrados, horas de almuerzo)
- ✅ Responsive: Funciona en computadora, tablet y teléfono
| Característica | Beneficio |
|---|---|
| 📅 Reserva Fácil | Ver disponibilidad, seleccionar fecha/hora y confirmar en 2 minutos |
| 📧 Confirmaciones | Email automático de confirmación (sin sorpresas) |
| ⏰ Recordatorios | Recordatorio 24h antes de la cita (reducir cancelaciones) |
| 👤 Mi Perfil | Ver mis citas pasadas y próximas en un lugar |
| ⭐ Reseñas | Dejar feedback (ayuda a mejorar) |
| 🔐 Seguridad | Contraseña encriptada, protección contra robots |
| Característica | Beneficio |
|---|---|
| 📊 Reportes | Ver ingresos día a día, mes a mes con gráficos |
| 📋 Gestión de Citas | Crear, editar, cancelar citas desde panel |
| 🚫 Bloqueo de Fechas | Marcar días de vacaciones/cierre (ej: domingos, festivos) |
| ⏱️ Bloqueo Horario | Bloquear rangos de horas (ej: almuerzo 1-2pm) |
| 🛎️ Catálogo de Servicios | Agregar/editar servicios con fotos y precios |
| 📸 Galería de Productos | Mostrar fotos de trabajos realizados o productos a vender |
| 👥 Clientes | Ver historial de cada cliente (citas, gastos) |
| 📨 Notificaciones | Envío automático de emails de confirmación/cambios |
Página Principal: Muestra servicios, testimonios, contador de visitas
Reserva de Cita:
- Cliente selecciona servicio (ej: "Corte regular - $15")
- Sistema muestra fechas disponibles (excluye domingos, vacaciones)
- Cliente elige fecha → sistema muestra horas libres
- Confirma → recibe email de confirmación
Mi Perfil:
- Citas próximas (con opción editar/cancelar)
- Historial de citas pasadas
- Dinero gastado este año
- Botón para editar datos personales
Panel Admin:
- Dashboard: Citas hoy, ingresos hoy, total clientes
- Gráficos: Ingresos mensuales, citas por día
- Tabla: Todas las citas del mes
- Descargar reportes en .txt
Backend: Django 5.1.5 - Framework Python robusto y seguro
Frontend: Bootstrap 5 - Interfaz responsive y moderna
Base de Datos: MySQL 8.0+ - Escalable, confiable
Servidor: Gunicorn + WhiteNoise - Producción optimizada
Autenticación: Django-Allauth - Login tradicional + Google OAuth
Seguridad: Django-Axes + reCAPTCHA v3 - Anti-brute force, anti-bots
Reportes: Matplotlib + Pandas - Gráficos y análisis
Multimedia: Pillow - Procesamiento de imágenes
- Python 3.8+ (recomendado 3.11+)
- MySQL 8.0+ (o MariaDB)
- Git (para clonar el repo)
# 1. Clonar repositorio
git clone https://github.com/tuusuario/cabigote.git
cd cabigote
# 2. Crear entorno virtual
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. Instalar dependencias
pip install -r requirements.txt
# 4. Crear archivo .env
cat > .env << EOF
SECRET_KEY=tu-clave-secreta-aqui
DEBUG=True
DATABASE_URL=mysql://usuario:contraseña@localhost/cabigote_db
EMAIL_HOST_USER=tu-email@gmail.com
EMAIL_HOST_PASSWORD=tu-contraseña-app
RECAPTCHA_PUBLIC_KEY=tu-public-key
RECAPTCHA_PRIVATE_KEY=tu-private-key
EOF
# 5. Crear base de datos
mysql -u usuario -p
mysql> CREATE DATABASE cabigote_db;
mysql> EXIT;
# 6. Migraciones
python manage.py migrate
# 7. Crear admin
python manage.py createsuperuser
# 8. Ejecutar servidor
python manage.py runserverAccede en: http://localhost:8000
Admin en: http://localhost:8000/admin/
Para desarrolladores y equipo técnico:
- DOCUMENTACION_COMPLETA.md - Guía técnica exhaustiva
- Estructura de apps (Users, Appointments, Services, Products, Reviews, Reports)
- Modelos y relaciones de BD
- Flujos de autenticación y reservas
- APIs y endpoints
- Despliegue (Heroku, Railway, Docker)
- Mejoras recomendadas
Heroku (Recomendado para empezar):
heroku create your-app-name
heroku addons:create heroku-postgresql:hobby-dev
heroku config:set SECRET_KEY="..."
git push heroku main
heroku run python manage.py migrateRailway.app: Conecta tu repo GitHub → deploy automático
Docker:
docker build -t cabigote .
docker run -p 8000:8000 -e SECRET_KEY="..." cabigoteDepende del modelo:
- SaaS (cloud): $29-99/mes por barbería
- Licencia única (on-premise): $2,000-5,000 (único pago)
- Customización: Presupuesto según necesidades
Sí. El código es abierto y modular. Puedes:
- Cambiar colores / logo
- Agregar nuevos servicios
- Integrar con otros sistemas
- Agregar funcionalidades
- Documentación técnica completa
- Soporte por email
- Actualizaciones de seguridad
- Acceso a roadmap de features
Sí. Implementa:
- ✅ HTTPS (encriptación en tránsito)
- ✅ Contraseñas hashed (PBKDF2)
- ✅ reCAPTCHA (anti-bots)
- ✅ CSRF protection
- ✅ Content Security Policy
- ✅ Backups diarios
No en la versión actual, pero se puede agregar:
- Twilio (sms/whatsapp)
- Firebase (push notifications)
Contacta para presupuesto.
Cabigote escala sin problemas:
- MySQL maneja 100k+ registros
- Índices optimizados en BD
- Caché Redis (opcional)
- CDN para imágenes (opcional)
Con customización sí. Por defecto es para 1 barbería.
- ✅ Autenticación segura: PBKDF2 password hashing
- ✅ Prevención de ataques: CSRF tokens, CSP headers
- ✅ Anti-bot: reCAPTCHA v3 + rate limiting
- ✅ Anti-fuerza bruta: Bloqueo después de 5 intentos fallidos
- ✅ Cookies seguras: HttpOnly, Secure, SameSite
- ✅ SQL Injection: ORM Django (parametrized queries)
- ✅ XSS Protection: Template escaping automático
- ✅ GDPR compatible (droit à l'oubli, consentimiento)
- ✅ Política de privacidad incluida
- ✅ Términos de servicio (template)
- ✅ Derecho a eliminar cuenta
Abre un Issue en GitHub
📧 Email: josefe59@hotmail.com
🌐 Web: www.portfolioweb.com
v1.0 (Actual)
- ✅ Reserva de citas
- ✅ Perfil de usuario
- ✅ Reportes básicos
- ✅ Notificaciones por email
v1.5 (Próximo)
- 🔄 App móvil (iOS/Android)
- 🔄 Notificaciones SMS/WhatsApp
- 🔄 Integración pagos (Stripe, PayPal)
- 🔄 Multi-idioma (ES/EN/PT)
v2.0
- 🔄 Multi-sucursales
- 🔄 Horarios rotativos (staff)
- 🔄 Dashboard para barberos
- 🔄 Export reportes (PDF, Excel)
© 2026 José Félix Gordo Castaño
Este proyecto está protegido bajo licencia Elastic License 2.0.
Permitido:
- ✅ Uso comercial (bajo acuerdo de licencia)
- ✅ Modificación
- ✅ Redistribución (con permiso)
Prohibido:
- ❌ Venta sin autorización
- ❌ Remoción de créditos de autor
- ❌ Uso para competencia directa
Ver LICENSE.TXT para detalles completos.
José Félix Gordo Castaño
Senior Developer | Django Specialist
📧 contacto@josefelix.dev
🐙 GitHub
💼 LinkedIn
Danos una estrella en GitHub ⭐ y comparte con otros desarrolladores y barberías.
Última actualización: Febrero 2026
Versión: 1.0.0
| Tech | Description |
|---|---|
| 🐍 Django | Robust backend framework. |
| 🎨 Bootstrap | Modern, responsive, and stylish frontend design. |
| 🗄️ MySQL | Scalable database for multiple users. |
| 🖼️ Pillow | Image handling and product gallery management. |
| 🖋️ QRCode | QR code generation for direct links. |
| 🔐 reCAPTCHA | Additional security against bots. |
| 📊 Matplotlib | Graph generation for reports. |
| 📦 Django Suit | Advanced customization of the admin pane. |
| 🔔 Email notifications | Automatic confirmations, modifications, and reminders.. |
The project comprises multiple Django apps, each handling specific functionality:
- Models:
Cita:Represents an appointment, including user, service, date, time, and notes.Represents an appointment, including user, service, date, time, and notes.
- Forms:
CitaForm: Form to create and edit appointments, with date and time validation.
- Views:
reservar_cita: Allows users to book appointments.ver_citas: : Displays upcoming and past appointments.
- Models:
UserProfile: Stores additional user information.
- Forms:
CustomUserCreationForm: Custom registration form Custom registration form.
- Views:
login_view: Login view.register: Register view.perfil_usuario: User profile view.
- Models:
Resena: Allows users to leave reviews about services.
- Forms:
ResenaForm: Form to add reviews.
- Views:
ver_resenas: Displays all reviews and allows new ones.
- Models:
Servicio: Represents services offered at the barbershop.
- Forms:
ServicioForm: Form to create and edit services.
- Views:
ver_servicios: Shows all available services.
- Modelos:
Imagen: Stores product images.
- Views:
ver_imagenes: Displays all product image.detalle_producto: Shows details of a specific product.
- Models:
ReporteMensual: Monthly revenue and appointments reports.ReporteDiario: Daily reports generated on demand.
- Funcyionalities:
- Daily and monthly report generation with graphs.
- Reports downloadable as .txt.
- Option to generate daily reports from the admin panel by selecting a date.
- Automatic cleanup of unnecessary reports.
- Python 3.8 +
- Django 3.2 +
✅ Users - Management:
- Registration/login template, user profile & edit profile.
- Custom register/login forms.
✅ Appointments:
- Create, edit, cancel, and manage appointment history.
- Dynamically disabled blocked dates and occupied time slots.
- Templates for admin booking graph available in admin panel.
✅ Core:
- Email reminders 24hrs before the service. Managment/commnads/.
- Templates home/base.html.
- Templates social login/register & social error validation.
- Context processors to inyect special messages in teh UI & run the visitor count.
- Custom header to serve whitenoise
✅ Reviews:
- Authenticated users can add and view star-rated reviews.
✅ Producto & Service Gallery:
- Detailed information with images and descriptions.
✅ Automated Notifications:
- Confirmations, reminders, and cancellations via email.
✅ Custom Admin Panel:
- Django Suit integration for a modern interface.
- Visualization of appointment charts.
- Improved admin panil to a more modern design
✅ Dynamic Reports:
- Generate daily/monthly reports by selected date.
- Downloadable text reports.
✅ Date blocker:
- Blocksa a specific date or dates to prevent any new booking.
- Blocks a specific range of hours in a specific date to provent any new booking.
✅ Security Features:
-
Environment-based secrets
•SECRET_KEYand all sensitive credentials are read from environment variables (via django-environ).
•DEBUGis disabled by default in production. -
Allowed hosts enforcement
Only your domains (*.example.com) are permitted inALLOWED_HOSTS, preventing HTTP Host header attacks. -
HTTPS & secure cookies
•SESSION_COOKIE_SECURE = True&CSRF_COOKIE_SECURE = Trueensure cookies are only sent over HTTPS.
•SECURE_PROXY_SSL_HEADERtrusts the proxy’sX-Forwarded-Protoheader. -
Password hardening
Django’s built-inAUTH_PASSWORD_VALIDATORSenforce minimum length, complexity and common-password checks. -
Content Security Policy (CSP)
Usingdjango-cspmiddleware to lock down permitted script, style, image and connect domains. -
Static file protection
Whitenoise serves static assets with custom security headers (HSTS, cache-control) viaadd_custom_headers. -
Bot prevention
Integrated Google reCAPTCHA on all public forms (login, signup, appointment booking) to block automated abuse. -
Strict CSRF & clickjacking defenses
•CsrfViewMiddlewareenabled site-wide.
• CSP’sframe-ancestors 'self'prevents embedding in other sites. -
Database constraints
Unique constraints on key models (e.g. appointmentfecha+hora) ensure data integrity even under race conditions.
Run generate_qr.py – ensure you include your site URL.
To install run: pip install -r requirements.txt
This project is licensed under the Elastic License 2.0 (ELv2).
Commercial use, redistribution, or offering this software as a service requires explicit permission from the author.
© 2026 José Félix Gordo Castaño