Que es el demo publico
Es la opcion "Pruebe el sistema en tiempo real" que aparece en la pagina inicial de la ayuda. Cualquier visitante puede dar un clic, verificar su correo y entrar al sistema con datos reales (de prueba) en cuestion de segundos.
Esta orientado a:
- Prospectos que quieren conocer el sistema antes de cotizar
- Clientes existentes que quieren probar un modulo nuevo
- Capacitaciones sin tener que crear usuarios temporales
Empresas demo disponibles
| Empresa | Slug | Base de datos | Rubro |
|---|---|---|---|
| Demo Ferreteria | ferre |
demoferre |
Ferreteria / Retail con inventario, bodegas, lotes y datafono |
| Demo Restaurante | rest |
demorest |
Restaurante / Bar con mesas, comandas, modificadores y recetas |
Cada slug se accede por URL: https://invefacon.net/demo/iniciar.php?e=ferre o ?e=rest.
Flujo de ingreso (3 pasos)
- Click en la card del panel de ayuda. Abre una pestana nueva con el formulario de verificacion.
-
Paso 1 - Email: el visitante ingresa su correo y presiona "Enviar codigo". El sistema:
- Genera un codigo de 6 digitos (valido 15 min)
- Genera un token interno de 64 caracteres hex (valido 30 min, un solo uso)
- Inserta el registro en
dbcontrol.demo_accesos - Envia un correo desde
noreply@soportereal.comcon el codigo
-
Paso 2 - Codigo: el visitante ingresa los 6 digitos. El sistema:
- Valida el codigo (5 intentos maximos)
- Marca
codigo_validado = 1 - Redirige a
/weblogin/demo_entrar.php?t=<token>
-
Auto-login:
demo_entrar.phpconsume el token (lo marcausado=1), busca/crea el empleado del visitante por su correo, valida la clave interna y arma la sesion. Al instante el visitante esta dentro del subdominio (demoferre.factupos.comodemorest.factupos.com).
Cada lead = un usuario distinto
Cada correo verificado se convierte en un empleado y una estacion exclusivos dentro de la empresa demo. Esto evita que dos visitantes simultaneos se desconecten entre si y permite trazabilidad por correo.
| Visitante | Cod_Usuario | Estacion creada | Clave |
|---|---|---|---|
| juan@empresa1.com | D0001 | "Demo - juan@empresa1.com" | 1234 |
| maria@empresa2.com | D0002 | "Demo - maria@empresa2.com" | 1234 |
| pedro@empresa3.com | D0003 | "Demo - pedro@empresa3.com" | 1234 |
El prefijo D#### esta reservado para usuarios generados por el flujo demo. El sistema nunca toca empleados reales de la empresa demo (filtro WHERE Cod_Usuario LIKE 'D%').
D#### y la misma estacion. La clave se restablece a 1234 en cada ingreso por si se le olvido.
Seguridad
- Verificacion por correo obligatoria - filtra bots y emails inventados (no se puede continuar sin recibir y leer el correo)
- Rate limiting por IP (25/hora) y por email (15/hora) en la solicitud de codigo
- Token de un solo uso (64 hex) firmado por la BD - se invalida en el primer uso aunque siga vigente
- Codigo de 6 digitos con maximo 5 intentos antes de pedir nuevo codigo
- Whitelist de slugs - solo
ferreyrestson aceptados; ninguna otra empresa - Validacion real de clave via
SP_VerificaPasswordUsuario- el demo pasa por la misma puerta de auth que un login normal - Filtro defensivo de empleados (
Cod_Usuario LIKE 'D%') impide que el flujo modifique usuarios reales
Login manual posterior
Una vez que el visitante completa el flujo demo, puede tambien entrar por el login regular sin volver a verificar correo:
- Ir a
/weblogin/login.phpde la empresa demo (demoferre.factupos.comodemorest.factupos.com) - Email: el correo verificado
- Empresa: ya seleccionada por subdominio
- Usuario:
D####(el que se le asigno en su primer ingreso) - Clave:
1234
Cod_Usuario al crear el empleado para que pueda entrar manualmente despues.
Tabla de control: dbcontrol.demo_accesos
Toda solicitud queda auditada en dbcontrol.demo_accesos. La tabla se auto-crea con IF NOT EXISTS al primer uso.
| Campo | Significado |
|---|---|
id | PK identidad |
slug / server_db | Empresa demo (ferre/rest) |
email | Lead capturado |
codigo / token | Codigo 6-dig y token 64-hex |
codigo_expira / token_expira | +15 min / +30 min |
codigo_validado | 1 cuando paso 2 OK |
usado / usado_fecha | 1 al consumirse el token |
intentos_codigo | Contador (max 5) |
ip / user_agent | Trazabilidad del visitante |
Detalles tecnicos
Archivos
| Archivo | Funcion |
|---|---|
/demo/helpers.php | Whitelist, ensure_table, layout, envio email |
/demo/iniciar.php | UI 2 pasos (email -> codigo) |
/demo/solicitar.php | POST: genera y envia codigo |
/demo/validar.php | POST: valida codigo, retorna URL final |
/weblogin/demo_entrar.php | Consume token, busca/crea empleado, arma sesion |
/factupos/ayuda/index.php | Panel inicial con cards (en soportereal.com) |
Sesion
Ademas de los campos de sesion estandar, el demo agrega:
$_SESSION['es_demo'] = true$_SESSION['demo_email_lead'] = <email del visitante>
FKs y dependencias
El INSERT del empleado satisface las FKs:
Cod_Departamento→ primer registro deDepartamentos(en demo* es'000'General)HorarioAccesoId→ primer registro deHorarioAcceso(id1)
Limpieza periodica
Si se acumulan muchos D#### abandonados, se puede correr un job que borre empleados con prefijo D y sin actividad reciente (UltimoAcceso > 90 dias).