Software y sistemas

Software para control de eventos, aforo y boletería

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:

Registrar datos de persona para tiempo en 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):

Personas en evento para marcar entrada o salida y contar tiempo. Imprimir ticket y filtrar por número de pulsera

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.

Marcar salida de evento – Cobrar por tiempo

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:

Tickets del sistema de eventos con cobro por tiempo – Impresos con impresora térmica

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:

Reporte de cobros e ingresos a eventos por tiempo – Mostrar entrada, salida y total

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):

Reporte de ventas del día por hora

Finalmente tenemos el reporte de tickets:

Reporte de tickets en software de boletería – Ticket mayor y menor, con cantidad de vendidos y anulados

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.

Ajustes del sistema – Impresora y acceso a través de la LAN

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:

Control de aforo en software para control de eventos por tiempo

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:

Programa de boletería, eventos y control de tiempo en 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:

  1. 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).
  2. Realiza el pago por 2000 pesos mexicanos (MXN) en uno de los métodos de pago listados haciendo clic aquí.
  3. 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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.