En este post te mostraré otro sistema que he realizado recientemente. Se trata de un programa para llevar el control de eventos por tiempo, en donde se cobra por el tiempo que la persona ingresa al evento.
Esto está pensado para controlar el acceso a eventos como parques, piscinas, juegos, etcétera; ya que se registra el tiempo de entrada y de salida a partir de un número de pulsera.
Cuando la persona sale del evento se realiza el cobro del mismo y se imprime un ticket. Las características del software son:
- Control de aforo: Indica cuántas personas están dentro del establecimiento o evento
- Registro de datos con número de pulsera para tener un identificador
- Posibilidad de acceder desde el teléfono o cualquier dispositivo para que una persona esté en la entrada y otra en la salida del evento a través de la LAN
- Opción para anular los tickets
- Reporte de ventas en donde se incluyen filtros por fecha y hora, así como un reporte que indica la cantidad de tickets vendidos o anulados.
- Reporte de ticket con mayor costo y ticket con menor costo
- Impresión de tickets en impresora térmica
Realmente este programa fue pensado para llevar el control de eventos a donde asisten niños acompañados con sus padres (en donde dependiendo del tiempo de la estancia, se realiza el cobro) pero se puede adaptar a cualquier circunstancia.
Registro de persona
Comencemos viendo lo que pasa cuando una persona quiere ingresar al evento. En este caso se registran todos sus datos.
Te recuerdo que en este caso es para niños, así que solicitamos los datos del padre o tutor, así como de la persona que ingresa al evento:
Es importante mencionar que en este caso el DNI o documento de identidad sirve para dos cosas: para registrar los datos, y para completar los datos si ese DNI ya está registrado.
Como puedes ver, el acceso al evento se controla con un código de pulsera o número de pulsera. Hasta este entonces todavía no empieza a contar el tiempo, se hace después.
Personas dentro de evento
Veamos el siguiente módulo. En este caso tenemos las personas registradas, mismas que podemos filtrar ya sea por número de pulsera o por fecha.
Ahí se muestra la entrada y salida. Si el niño o persona ya han salido del evento entonces se muestra el tiempo transcurrido (ahí dice 0 minutos porque inicié y terminé casi al instante):
De este modo podemos filtrar por día, o en un período de fechas. Además, por cada persona tenemos distintas opciones que son:
- Marcar entrada: inicia el conteo del tiempo
- Marcar salida: una vez que la persona ha entrado, se marca su salida
- Imprimir tickets: imprimir el ticket (en impresora térmica) de entrada y de salida.
Marcar salida
Cuando el usuario sale del evento es cuando se detiene el tiempo y se le cobra al mismo. En este caso el cálculo del costo es: los primeros 30 minutos se cobran por 20 pesos, y después cada minuto adicional se cobra en 1 peso.
Y una vez que se ha pagado, ya se pueden imprimir los tickets o comprobantes.
Tickets en impresora térmica
Como lo dije, el ticket se imprime automáticamente en la impresora térmica seleccionada. Aquí una foto con varios tickets de ejemplo:
Por cierto, ahí también puedes ver un ejemplo de cómo se ve un ticket anulado.
Reporte de ingresos
Más adelante vemos el módulo del reporte de ingresos en donde se muestra el total recaudado en determinado período. Primero vemos el reporte por fechas:
Y luego tenemos ese mismo reporte pero por horas (internamente es un componente de Vue que recibe un período de fechas y horas, así que el componente se usa para los dos reportes pero con distintos seleccionadores):
Finalmente tenemos el reporte de tickets:
Ajustes
El último módulo del sistema tiene que ver con los ajustes del mismo. En este caso tenemos dos cosas principales: la configuración de la impresora térmica y el acceso al sistema a través de la red.
En este caso el software está pensado para ser usado en la red, por ello es que se proporciona la dirección y también un código QR que apunta a la misma.
Control de aforo
Como bien sabes, en estos tiempos el control del aforo es muy importante. Por ello es que se muestra la cantidad de personas en el evento en la barra superior:
Ahí a la izquierda se muestra “En evento”. Y cuando se registra un niño, ese valor cambia, así como cuando sale. Ese valor se refleja en todos los dispositivos.
Responsivo para teléfono y tabletas
Este programa funciona en una computadora, pero también (en modo cliente) para dispositivos móviles como un iPad, teléfono con Android, tableta, etcétera. Aquí una captura de cómo se vería en un iPhone X:
Vídeo de presentación
Puedes ver una demostración en el siguiente vídeo: https://www.youtube.com/watch?v=ausICgPYDM4
Apartado técnico
El programa está hecho con Vue y Buefy del lado del cliente, usando obviamente JavaScript. He separado algunos componentes como el del reporte por rangos de fechas.
Ya en el lado del servidor utilizo Go con SQLite3 para el almacenamiento de datos, y la comunicación de estos dos lenguajes se hace por HTTP.
Por cierto, es muy parecido al software para estacionamiento.
Descargar programa
En este caso el programa para controlar el aforo y conteo de tiempo en eventos no es gratuito ni open source. Si quieres obtener el programa:
- Lee este post y verifica si el programa es lo que quieres. Te entrego el programa que ves en las capturas (solo el programa, no el código).
- Realiza el pago por
2000
pesos mexicanos (MXN) en uno de los métodos de pago listados haciendo clic aquí. - Envíame un mensaje haciendo clic aquí, yo verificaré el pago y te enviaré el programa.
Finalmente te dejo con más programas que he creado y con más posts sobre programación en Go y JavaScript.
ME INTERESA, ALGUN NUMERO DE CONTACTO?
Hola. Claro que sí, envíeme un mensaje en https://parzibyte.me/#contacto
No será mejor tarifa fija
El cliente puede solicitar una adaptación del sistema a la medida, se puede cambiar fácilmente