- Frontend React (SKEEN Brand) con Vite, TypeScript, Tailwind - Frontend Homenest (versión alternativa) - Módulos Odoo 17 custom (citas, pacientes, monedero, pagos, ventas, inventario, whatsapp) - WACRM fork (Next.js 16 + Supabase) - Hermes + Bridge + Skills (Qwen3.6 via Nan Builders) - Scripts de migración y operación - Documentación extensiva en docs/
290 lines
11 KiB
Markdown
290 lines
11 KiB
Markdown
# Análisis del Sistema Actual de SKEEN Derma Experts
|
|
## URL analizada: https://sistema.skeenmx.app/
|
|
|
|
**Fecha:** 6 de julio de 2026
|
|
**Usuario de análisis:** JoseSkeen
|
|
**Restricción:** Solo lectura, sin modificaciones en el sistema original.
|
|
|
|
---
|
|
|
|
## 1. Tecnología base
|
|
|
|
- **Framework:** Laravel (PHP) — se identifican tokens `_token`, cookies `laravel_session`, estructura de rutas RESTful.
|
|
- **Frontend:** jQuery 1.12 + Bootstrap/AdminLTE 2.3.5 + CSS propio (`panel.css`, `app.css`).
|
|
- **Iconos:** Font Awesome 6.2.0 (regular, solid, brands).
|
|
- **Componentes UI:** DataTables, datepickers, modales Bootstrap, bxslider (comentado).
|
|
- **No es SPA:** cada sección recarga la página; el layout es sidebar izquierdo + header superior + contenido central.
|
|
|
|
---
|
|
|
|
## 2. Identidad visual
|
|
|
|
### Paleta de colores predominante
|
|
| Color | Uso |
|
|
|-------|-----|
|
|
| `#1abc9c` / `#16a085` | Acento principal (botones, iconos, estados activos) |
|
|
| `#BED4AD` | Verde pastel secundario (usado en badges / categorías) |
|
|
| `#34495e` / `#2c3e50` / `#222f3d` | Textos oscuros, sidebar, header |
|
|
| `#f1c40f` | Amarillo alerta / metas |
|
|
| `#e74c3c` | Rojo error / cancelaciones |
|
|
| `#2ecc71` | Verde éxito |
|
|
| `#3498db` / `#48c9b0` | Azules informativos |
|
|
| `#ffffff` / `#f5f5f5` | Fondos claros |
|
|
| `#bdc3c7` / `#ccc` / `#999` | Grises de borde y texto secundario |
|
|
|
|
### Tipografía
|
|
- **Principal:** `Lato`, Helvetica, Arial, sans-serif.
|
|
- **Iconos:** Font Awesome (versión 6.2).
|
|
- **Logo:** `logo_skeen.png` — tipografía sans-serif negra, letras mayúsculas, registro ®.
|
|
|
|
### Layout
|
|
- **Sidebar izquierdo** con menú principal + submenús desplegables (`treeview`).
|
|
- **Header superior** fijo con:
|
|
- Contactos rápidos (teléfono, WhatsApp, Facebook, Instagram, email, sitio web).
|
|
- Tipo de cambio (TC: 16.50).
|
|
- Selector de sucursal (Rosarito / Tijuana).
|
|
- Meta de ventas con progress bar (ej. "Noviembre 2020 — 60% Complete — 600 USD / 1000 USD").
|
|
- Perfil de usuario, notas y chat interno.
|
|
- **Contenido central** con breadcrumb "Inicio / Sección", título de página, filtros, tablas DataTables y modales para acciones.
|
|
|
|
---
|
|
|
|
## 3. Mapa de navegación
|
|
|
|
### Menú principal (top-level)
|
|
| Ruta | Sección |
|
|
|------|---------|
|
|
| `/dashboard` | Inicio / Movimientos diarios |
|
|
| `/agenda` | Agenda de citas |
|
|
| `/visitas` | Visitas registradas |
|
|
| `/expedientes` | Expedientes de pacientes |
|
|
| `/medicos` | Médicos |
|
|
| `/cosmetologos` | Cosmetología |
|
|
| `/consultas` | Consultas Médicas |
|
|
|
|
### Configuración
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/usuarios/consulta/activados` | Usuarios del sistema |
|
|
| `/recetas` | Catálogo de recetas |
|
|
| `/diagnosticos` | Catálogo de diagnósticos |
|
|
| `/procedimientos` | Catálogo de procedimientos médicos |
|
|
| `/servicios` | Catálogo de servicios |
|
|
| `/etiquetas` | Etiquetas |
|
|
| `/productos` | Productos |
|
|
| `/inventarios` | Inventarios de productos |
|
|
| `/tipo_cambio` | Tipo de cambio USD/MXN |
|
|
|
|
### Reportes
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/reportes/diario` | Mov. diario |
|
|
| `/reportes/medicos` | Mov. diario por médico |
|
|
| `/reportes/recepcion` | Mov. diario por recepcionista |
|
|
| `/reportes/cortes` | Cortes de caja |
|
|
| `/reportes/ingresos` | Ingresos |
|
|
| `/reportes/comisiones` | Comisiones |
|
|
|
|
### Administrativo
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/reportes/adeudos` | Adeudos clientes |
|
|
| `/reportes/pagos` | Pagos por servicios |
|
|
| `/reportes/clientes` | Pagos por clientes |
|
|
| `/reportes/visitas` | Visitas |
|
|
| `/reportes/devoluciones` | Devoluciones |
|
|
| `/reportes/vendedores` | Vendedores |
|
|
| `/reportes/recomendaciones` | Recomendaciones |
|
|
| `/reportes/concentrado` | Concentrado |
|
|
| `/reportes/top/clientes` | Top ventas |
|
|
| `/reportes/agenda` | Horas agenda |
|
|
| `/reportes/paquetes` | Paquetes |
|
|
|
|
### Monedero
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/monederos/consulta` | Monederos electrónicos |
|
|
| `/reportes/monedero` | Reporte de puntos |
|
|
| `/configuracion/monedero` | Lista de precios y % de puntos |
|
|
|
|
### Comunicación
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/reportes/cumple` | Cumpleañeros |
|
|
|
|
### Consumibles
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/consumibles/inventario` | Inventario actual |
|
|
| `/consumibles/ventas/consulta` | Comprobantes de consumibles |
|
|
| `/consumibles/compras/consulta` | Compras |
|
|
| `/consumibles/bajas` | Bajas |
|
|
| `/consumibles/consulta` | Consumibles |
|
|
|
|
### CRM
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/crm` | Inicio CRM (prospectos, clientes potenciales, expedientes) |
|
|
| `/crm/medio/{id}` | Filtrar por medio (llamada, WhatsApp, Facebook, Instagram, email, sitio web) |
|
|
|
|
### Ventas / Pedidos
|
|
| Ruta | Función |
|
|
|------|---------|
|
|
| `/admin/pedidos/dia` | Ventas del día |
|
|
| `/admin/pedidos/factura` | Factura |
|
|
| `/admin/pedidos/anticipo` | Anticipo |
|
|
| `/admin/pedidos/clientes` | Clientes con adeudos |
|
|
|
|
---
|
|
|
|
## 4. Funcionalidades clave identificadas
|
|
|
|
### Agenda
|
|
- Filtro por sucursal (Rosarito / Tijuana).
|
|
- Filtro por médico.
|
|
- Tabs: Citas, Nueva cita, Lista de espera.
|
|
- Estados de cita: Pre-consulta, Link enviado, Aprobación, Asignar expediente, Agendar.
|
|
- Medio: Videollamada / Consultorio.
|
|
- Acciones: Forma de pago, agendar, enviar WhatsApp.
|
|
|
|
### Expedientes
|
|
- Filtros: VIP, visitó en últimos 6 meses, no ha visitado en 6 meses.
|
|
- Columnas: ID, folio, nombre, motivo, médico, cosmetología, estatus, cabina, consentimientos, ticket.
|
|
- Estados: Nueva visita, visita recurrente.
|
|
|
|
### Médicos / Cosmetología
|
|
- Directorio de personal con nombre, apellidos, celular, WhatsApp.
|
|
- Últimos 30 días de actividad.
|
|
- Roles: médico, cosmetología, recepción, administrador.
|
|
|
|
### Servicios
|
|
- Catálogo con: ID, Categoría, Concepto, Precio, Activado, Favoritos, Color, Grupo, Etiquetas.
|
|
- Ordenar favoritos.
|
|
|
|
### Productos
|
|
- Catálogo con: ID, Línea/Categoría, Producto, Descripción, Precio, Activado, Favoritos.
|
|
|
|
### Monedero
|
|
- Configuración de porcentajes de puntos por forma de pago y moneda.
|
|
- Transferencia USD: 0%
|
|
- Transferencia M.N.: 0%
|
|
- Tarjeta USD: 1.5%
|
|
- Tarjeta M.N.: 1.5%
|
|
- Efectivo USD: 2%
|
|
- Efectivo M.N.: 2%
|
|
- Lista de precios con flags: Otorga puntos, Canjeable por puntos.
|
|
|
|
### Movimientos diarios / Ventas
|
|
- Tabla de ventas con: ID, Expediente, Dr. principal, Concepto, Subtotal, Desc., Pagado, Adeudo, Pendiente.
|
|
- Formas de pago: Efectivo M.N./USD, Tarjeta M.N./USD, Transferencia M.N./USD, Saldo a favor M.N./USD, Monedero electrónico M.N./USD.
|
|
- Acciones: Cancelar venta, paquete terminado, devolución.
|
|
- Modal "Valoración Express" para captura rápida de prospectos.
|
|
|
|
### Cortes de caja
|
|
- Histórico por día.
|
|
- Totales por médico, recepcionista, productos entregados.
|
|
- Modal para establecer corte con monto M.N., dólares, observaciones.
|
|
|
|
### Adeudos
|
|
- Separación: adeudos activos (1 año y medio a la fecha) vs pasivos (anteriores).
|
|
- Agrupación por médico.
|
|
- Totales por clínica y por doctor.
|
|
|
|
### Inventarios
|
|
- Productos: stock, niveles (óptimo, bajo, crítico, sin existencias).
|
|
- Consumibles: valor de inventario, niveles, caducidad, último conteo físico.
|
|
- Ajustes, compras, bajas.
|
|
|
|
### CRM
|
|
- Prospectos por medio de contacto.
|
|
- Ficha de prospecto con:
|
|
- Datos personales (nombre, teléfonos, WhatsApp, correo).
|
|
- Historial de visitas.
|
|
- Citas futuras.
|
|
- Saldo / adeudo.
|
|
- Notas internas.
|
|
- Perfil, mensajes, settings.
|
|
- Botones rápidos: llamada, WhatsApp, Facebook, Instagram, email, sitio web.
|
|
|
|
### Comunicación
|
|
- Cumpleañeros: lista de pacientes con fecha de cumpleaños, edad, concepto, subtotal, promo, pagado, adeudo.
|
|
|
|
---
|
|
|
|
## 5. Flujos de negocio identificados
|
|
|
|
1. **Captación de prospecto**
|
|
- Medio: WhatsApp / llamada / FB / IG / email / sitio web.
|
|
- Registro en CRM → seguimiento → agenda de valoración.
|
|
|
|
2. **Agendamiento**
|
|
- Agenda con médico, sucursal, tipo de cita (videollamada/presencial).
|
|
- Estados: pre-consulta, aprobación, link enviado, asignar expediente.
|
|
|
|
3. **Visita / Expediente**
|
|
- Llegada del paciente → creación de visita → expediente médico.
|
|
- Diagnóstico, procedimiento, receta.
|
|
|
|
4. **Venta**
|
|
- Concepto (servicio/producto), subtotal, descuento, pagado, adeudo.
|
|
- Múltiples formas de pago y monedas.
|
|
- Acumulación de puntos según forma de pago.
|
|
|
|
5. **Pago / Adeudo**
|
|
- Pagos parciales, saldo a favor, monedero electrónico.
|
|
- Reportes de adeudos por edad y por médico.
|
|
|
|
6. **Corte de caja**
|
|
- Cierre diario con totales por recepcionista y médico.
|
|
|
|
7. **Inventario**
|
|
- Entradas (compras), salidas (ventas/bajas), ajustes, niveles de stock.
|
|
|
|
---
|
|
|
|
## 6. Gaps y oportunidades de mejora
|
|
|
|
| # | Gap actual | Oportunidad en nuevo sistema |
|
|
|---|-----------|------------------------------|
|
|
| 1 | UI antigua (jQuery/Bootstrap 2015) | Migrar a React 19 + Tailwind con diseño moderno y responsive |
|
|
| 2 | Sin chatbot / IA | Integrar WACRM + Hermes (Sofía) para atención 24/7 vía WhatsApp |
|
|
| 3 | CRM básico | Usar WACRM pipelines + contactos + automatizaciones no-code |
|
|
| 4 | Agenda manual sin recordatorios automáticos | Heartbeat/cron de Hermes para recordatorios 24h y follow-ups |
|
|
| 5 | No hay inbox multi-agente | WACRM shared inbox con asignación, notas internas, handoff |
|
|
| 6 | Pagos no integrados con Stripe/MP | Módulo `skeen_pagos` + skills de Hermes para links de pago |
|
|
| 7 | Monedero sin reglas claras de redención | Reglas: 1 punto = $1 MXN, máx 50% redimible, vencimiento 12 meses |
|
|
| 8 | Reportes estáticos | Dashboards interactivos con Recharts en frontend |
|
|
| 9 | Sin unificación Odoo ↔ frontend | API REST propia en Odoo (`skeen_whatsapp/controllers/frontend.py`) |
|
|
| 10 | Login propio, sin single sign-on | Evaluar Supabase Auth para WACRM + Odoo (opcional) |
|
|
| 11 | Dependencia de sistema legacy | Replicar funcionalidad en Odoo 17 + módulos custom |
|
|
| 12 | No hay broadcasting de campañas | WACRM broadcasts con templates aprobados por Meta |
|
|
|
|
---
|
|
|
|
## 7. Datos maestros a migrar
|
|
|
|
- **Pacientes/Clientes:** nombre, apellidos, teléfonos, WhatsApp, correo, fecha de nacimiento, médico principal, etiquetas, VIP.
|
|
- **Expedientes médicos:** diagnósticos, procedimientos, recetas, visitas, consentimientos.
|
|
- **Servicios:** categoría, concepto, precio, favorito, color, grupo, etiquetas.
|
|
- **Productos:** línea/categoría, producto, descripción, precio, stock, inventario mínimo.
|
|
- **Médicos / Cosmetólogos / Usuarios:** datos de contacto, roles, comisiones.
|
|
- **Monederos:** saldo, historial de puntos, reglas de acumulación/redención.
|
|
- **Adeudos / Pagos:** saldo pendiente, historial de pagos, formas de pago.
|
|
- **Consumibles:** inventario, caducidad, compras, bajas.
|
|
- **Agenda:** citas históricas y futuras.
|
|
|
|
---
|
|
|
|
## 8. Notas técnicas
|
|
|
|
- El sistema original usa Apache + Laravel + PHP.
|
|
- Algunas imágenes están rotas (`img_logo_derma_blanco.png` devuelve 404).
|
|
- El login expone el logo en blanco (`logo_skeen_white.png`) sobre fondo oscuro.
|
|
- Hay chat interno (`chat_conversaciones`, `chat_usuarios`) implementado en el frontend.
|
|
- El header muestra "TC: 16.50" como tipo de cambio dinámico.
|
|
- La meta de ventas es visible en el header con progress bar.
|
|
|
|
---
|
|
|
|
*Documento generado para análisis. No se realizaron modificaciones en https://sistema.skeenmx.app/*
|