Información técnica del sistema
Cómo funciona técnicamente la consulta
La consulta utiliza Shopify como plataforma de publicación y Google Firebase / Firestore como infraestructura para almacenar y gestionar los registros de votación.
El sistema está desarrollado en JavaScript y se ejecuta desde la página de la iniciativa.
1. Registro de los votos
La votación contempla dos opciones:
-
Sí — «Sí, se lo merece»
-
No — «No es necesario»
Cada participación modifica automáticamente el contador correspondiente en la base de datos de Firebase.
Los contadores de ambas opciones se almacenan en un documento específico de Firestore, correspondiente a esta consulta.
El sistema identifica las opciones mediante dos contadores:
-
votos_opcion_1: votos a favor. -
votos_opcion_2: votos en contra.
2. Cómo se actualiza el recuento
Cuando se registra un voto, el sistema utiliza una transacción de Firestore.
El sistema recupera los valores actuales de los contadores, incrementa el correspondiente a la opción elegida y guarda nuevamente los resultados mediante una operación transaccional.
Este mecanismo permite que las operaciones de voto se procesen como una transacción de base de datos, evitando que actualizaciones concurrentes simplemente sobrescriban el resultado anterior.
3. Control de participación
El sistema utiliza el almacenamiento local del navegador (localStorage) para recordar que desde ese navegador ya se ha registrado una participación.
Antes de permitir un nuevo voto, comprueba si existe el identificador:
guisito_voto
Después de registrar correctamente la participación, el sistema crea dicho identificador en el navegador.
Por tanto, actualmente la consulta limita la participación a un voto por navegador mediante almacenamiento local.
Este mecanismo no constituye una identificación personal del participante y no permite garantizar por sí solo que una misma persona no pueda votar utilizando otro navegador, otro dispositivo o eliminando los datos almacenados localmente en el navegador.
4. ¿Se utiliza la dirección IP para controlar el voto?
No.
La dirección IP no se utiliza para determinar si una persona puede votar ni para bloquear una segunda participación.
Para obtener la procedencia geográfica del apoyo, el sistema utiliza primero la función de geolocalización del dispositivo proporcionada por el navegador.
Cuando esta información no está disponible o no puede obtenerse, el sistema utiliza como alternativa una ubicación geográfica aproximada obtenida mediante la dirección IP.
Por tanto, la IP funciona únicamente como mecanismo alternativo para obtener una ubicación aproximada y no interviene en la validación del voto.
5. Procedencia geográfica de los apoyos
Cuando una persona vota Sí, el sistema registra de forma independiente información geográfica aproximada del lugar desde el que se realiza la participación.
El sistema registra:
-
País
-
Estado o región
-
Fecha y hora del registro
La ubicación se obtiene mediante el siguiente procedimiento:
-
El navegador solicita la ubicación geográfica del dispositivo.
-
Si esta información está disponible, se utiliza para determinar el país y el estado o región.
-
Si no es posible obtener la ubicación del dispositivo, el sistema utiliza una ubicación aproximada basada en la dirección IP.
-
Si ninguno de los dos métodos permite obtener la ubicación, el registro se almacena como «Desconocido».
La fecha y hora del registro se generan mediante una marca temporal del servidor de Firebase.
Estos datos se almacenan en una colección independiente denominada:
apoyos
Posteriormente, estos registros se agrupan para mostrar públicamente la procedencia geográfica de los apoyos por países y regiones.
La información que se muestra públicamente es agregada por ubicación. No se muestran públicamente direcciones IP individuales ni coordenadas geográficas individuales.
6. Visualización de los resultados
Los resultados de la consulta se obtienen directamente desde Firebase y se muestran en la página.
El sistema recupera los contadores correspondientes a las opciones Sí y No y calcula automáticamente el porcentaje correspondiente sobre el total de votos registrados.
Los resultados mostrados incluyen:
-
Número de votos a favor + porcentaje correspondiente.
-
Número de votos en contra + porcentaje correspondiente.
La información sobre la procedencia de los apoyos se presenta de forma agrupada por países y, dentro de cada país, por estados o regiones.
La página muestra inicialmente los cuatro países con mayor número de apoyos. Cuando existen más países registrados, el usuario puede desplegar el resto mediante la opción «Ver más países».
7. Tecnología utilizada
Shopify
La página de la iniciativa y la interfaz de votación están integradas en Shopify.
JavaScript
La lógica que conecta la interfaz de votación con Firebase, gestiona la participación, obtiene la ubicación geográfica y actualiza la visualización de los resultados está desarrollada en JavaScript.
Google Firebase / Firestore
Firebase funciona como infraestructura de base de datos.
Firestore almacena:
-
Los contadores generales de la consulta.
-
Los registros asociados a los apoyos.
-
La información geográfica agregada utilizada posteriormente para mostrar la procedencia de los apoyos.
Documentación oficial de Google Firebase:
BigDataCloud
El sistema utiliza el servicio de geocodificación inversa de BigDataCloud para transformar las coordenadas geográficas obtenidas del dispositivo en información de país y región.
ipapi
Cuando no es posible obtener la ubicación mediante la función de geolocalización del navegador, el sistema utiliza ipapi como mecanismo alternativo para obtener una ubicación geográfica aproximada a partir de la dirección IP.
8. Sobre la automatización del sistema
El registro y el recuento de las participaciones se realizan mediante procesos automáticos.
No existe una intervención manual para introducir votos o modificar el contador desde la interfaz de la consulta.
El proceso se realiza mediante el código de la aplicación y la base de datos de Firebase.
Cuando una persona participa:
-
El sistema comprueba si el navegador ya tiene registrado un voto.
-
Obtiene la ubicación geográfica cuando corresponde.
-
Registra el voto mediante una transacción de Firestore.
-
Actualiza automáticamente los resultados mostrados.
-
En el caso de un voto a favor, registra además la procedencia geográfica aproximada del apoyo.
-
Impide nuevas participaciones desde ese navegador mientras permanezca el identificador de participación almacenado localmente.
9. Cierre de la consulta
La consulta está prevista para permanecer abierta hasta las:
00:00 horas del 31 de marzo de 2027 (hora de Ciudad de México).
En esa fecha y hora se deberá activar el mecanismo de cierre que impedirá nuevas participaciones.
El mecanismo de cierre automático se encuentra pendiente de implementación.
Una vez implementado y cerrado el sistema, el resultado final permanecerá visible públicamente en la página de la iniciativa.
10. Qué información técnica se hace pública
Esta documentación tiene como objetivo explicar de manera comprensible cómo funciona el sistema de consulta y cómo se registran y procesan las participaciones, sin exponer información que pueda comprometer su seguridad.
La documentación describe el funcionamiento técnico actualmente implementado.
La información podrá actualizarse si antes del cierre de la consulta se incorporan nuevos mecanismos de validación, seguridad, control de participación o cierre automático.
Tecnología
Google Firebase / Firestore
Infraestructura utilizada para almacenar los contadores de la consulta y los registros asociados a los apoyos.
Shopify
Plataforma utilizada para publicar la página de la iniciativa e integrar la interfaz de participación.
BigDataCloud
Servicio utilizado para obtener información geográfica a partir de las coordenadas del dispositivo cuando la geolocalización del navegador está disponible.
ipapi
Servicio utilizado como mecanismo alternativo para obtener una ubicación geográfica aproximada mediante la dirección IP cuando no es posible obtener la ubicación del dispositivo.