Free-Vote es un sistema de consultas electrónicas a través de web, basado en HTML-3.0 , Apache, PHP-3.0 y PostGreSQL-7.0.
Está formado por una serie de scripts que acceden a una base de datos, y que generan al vuelo las diversas páginas web de que consta el sistema
En la introducción se han descrito las posibilidades de Free-Vote. Estas se desarrollan en los diversos menús que se presentan en la pantalla:
El proceso que realiza un usuario normalmente es:
Existe un administrador, que es el responsable absoluto del sistema. A su vez este administrador puede asignar privilegios especiales a los diversos usuarios, de manera que éstos puedan a su vez tener control sobre diversos aspectos del sistema ( dar de alta usuarios y consultas, modificar datos, crear consultas sin necesidad de autorización, etc... )
Para garantizar en la medida de lo posible la correcta autentificación del usuario, se utiliza un sistema de contraseñas, que son notificadas a los usuarios mediante correo electrónico.
Free-Vote Se distribuye bajo Licencia GPL, estándo el código fuente a disposición de los usuarios
La primera operación que un usuario debe hacer es la de registro. En efecto, Free-Vote Necesita que todos sus usuarios estén registrados, para poder proceder a la asignación de privilegios y la comunicación mediante correo electrónico con los usuarios.
El procedimiento de registro es sencillo: basta con acceder al menú correspondiente y rellenar TODOS los datos. La solicitud de registro es almacenada en una tabla temporal, y posteriormente, cuando el administrador ( u otra persona que disponga de suficiente nivel de privilegio ) autorize dicha inscripción, el nuevo usuario recibirá por correo electrónico una Tarjeta de Inscripción donde se le notifican todos los datos, así como un número de identificación, que deberá guardar para todas las operaciones posteriores
Está en proyecto un sistema de envío de datos al usuario mediante correo encriptado con PGP. Para ello ( cuando esté disponible ) aparecerá en el formulario de inscripción un campo para insertar la clave pública del usuario.
Accediendo al menú de consultas, se le ofrece al usuario una lista de las votaciones en curso. Pulsando en cada consulta, aparecen los datos referidos a la consulta seleccionada.
En el caso de que la consulta sea de acceso restringido, se le pedirá al usuario su dirección de correo y su número de identificación del usuario. En dicho caso sólo le aparecerá información sobre la consulta, si está autorizado para ello, esto es, está inscrito en la lista de posibles votantes de dicha consulta.
Si hemos abierto una consulta, el periodo de inscripción está abierto, y tenemos autorización para emitir voto en dicha consulta, nos aparecerá un botón que nos indica la posibilidad de solicitar una Tarjeta de Voto. Encaso de seleccionarla, se nos solicitará el identificador de usuario userid la contraseña, y la dirección de correo. Si los datos son correctos, se nos enviará por correo una Tarjeta de Voto que solo será válida para esta consulta.
Para proceder a la emisión de voto en una consulta, una vez registrados, y obtenida la tarjeta de voto para dicha consulta, Procederemos a seleccionar la consulta deseada. Si el periodo de votación está abierto, se nos ofrecerá la posibilidad de emitir voto. En dicho caso rellenamos el formulario incluyendo los datos de la tarjeta de voto recibida por correo, y pulsaremos "aceptar" para enviar el voto
Se recuerda que un usuario solo puede votar una vez en cada consulta en la que tiene autorización. El programa almacena en el registro de sucesos del sistema la fecha,hora, y host desde el que el usuario emitió su voto. A su vez se envía e-mail al usuario notificándole la operación
Free-Vote Utiliza el correo electrónico para enviar a sus usuarios las tarjetas de registro y de voto. Este método es preferido al de utilizar el servidor web, pues ofrece más garantias de autentificación del usuario ( en teoría el correo es personal... ) Además, esto permitirá en el futuro incluír técnicas de encriptación tipo PGP, para garantizar aún más la autentificación del votante
Cuando el usuario selecciona una consulta, los datos referidos a ésta se hacen visibles:
Una vez caducado el periodo de consulta, ésta será borrada del sistema, y todos sus registros eliminados
Cada consulta lleva aparejada una sección donde los usuarios pueden discutir y enviar mensajes sobre la consulta asociada. Para entrar en los foros de debate basta con seleccionar la opción apropiada en índice, seleccionar una consulta, y en su caso introducir los datos identificativos del usuario. Para poder enviar comentarios al foro de discusión será preciso autentificarse en el sistema. Del mismo modo, si la consulta es privada, para poder acceder al foro de debates se deberá proceder a la autentificación del usuario
Para crear una consulta, seleccionaremos el menú correspondiente, y completaremos los datos. El formulario es auto-descriptivo. Unicamente recordar que es preciso, para poder enviar consultas, tener al menos un privilegio de nivel 2. En dicho caso, la consulta deberá ser autorizada por alguno de los administradores. Si el usuario tiene privilegios de nivel 3 o superior, la consulta será dada de alta de manera automática
En el caso de establecer una consulta privada, será preciso seleccionar alguna de las listas de votantes disponibles. En caso de que el responsable de la consulta quiera crear una lista nueva, deberá ponerse en contacto con el administrador, pues la creación de listas y la asignación de usuarios a listas es tarea exclusiva de los administradores
Es responsabilidad del organizador de la consulta el avisar a estos usuarios para que procedan al registro y a la solicitud de voto en dicha consulta
Conforme a la ley, el usuario tiene en todo momento derecho a conocer sus datos, a modificarlos o suprimirlos. Para ello deberá seleccionar la opción correspondiente en el menú, o bien enviar correo electrónico a la dirección del administrador.
Un procedimiento distinto surge cuando el usuario tiene suficiente nivel de privilegio para modificar los datos de usuarios. En dicho caso basta con acceder al menú correspondiente y proceder
Si el usuario tiene suficiente privilegio, puede modificar los datos de una consulta. Notese que no puede cambiar la contabilidad de la votación, ni los contenidos de las preguntas o respuestas, sino sólo las opciones de visibilidad de los datos y los plazos y fechas
NOTA: en la versión actual del programa la modificación de consultas no está habilitada
Las operaciones que se pueden realizar sobre listas de usuarios son:
Estas operaciones se realizan desde el menú de administración. Las páginas correspondientes son auto-explicativas
El administrador del sistema cuenta con una opción adicional: puede abrir una consola conectada directamente con el intérprete de comandos SQL. Es una opción muy poderosa: tiene acceso total al sistema de consultas; por lo que deberá procederse con precaución
Existen diversas utilidades adicionales para manejo del programa:
El programa install.sh es el que utilizaremos para la mayor parte de las tareas relacionadas con la instalación y configuración del sistema. Es importante recordar que todas las modificaciones que realicemos las debemos efectuar sobre el código fuente original, y nunca sobre los ficheros que se instalen a posteriori
install.sh soporta las siguientes opciones
Proceso de instalación completo. Incluye, en este orden, los comandos --restart-db, --compile-doc, --register-sysop, --install-files
Reinicia la base de datos, borrando todos los datos, y dejando las estructuras "limpias"
Configura e instala los ficheros en sus ubicaciones definitivas, tal y como se especifica en el fichero de configuración
Toma los datos referidos al administrador que figuran en el fichero de configuración y en función de estos crea y registra al administrador en el sistema. Almacena la contraseña y el identificador de usuario en el fichero $BACKUPDIR/evote_config, ajustando los permisos de acceso de este fichero para evitar problemas de acceso no autorizado
Regenera documentacion desde los ficheros LinuxDoc-SGML en que está escrita ésta, generando los ficheros HTML correspondientes
Muestra ayuda y lista de comandos
Al ejecutar el comando install.sh --install-files se genera en el directorio $BACKUPDIR un fichero denominado crontab.evote que contiene los datos a introducir en el fichero crontab del usuario.
Dichos datos hacen referencia a un script, evote_cron.sh, que puede ser dividido en dos partes:
El usuario puede invocar manualmente la ejecución de estos programas sin más que indicarles la opción adecuada
Puesto que el procedimiento de alta individual de usuarios en el sistema es lento si se realiza a través del web, se ha previsto un programa que permite, partiendo de una lista de datos de usuario en formato texto, inscribir a éstos en el sistema de una manera automática
El programa evote_register_list.sh debe recibir como parámetro adicional un fichero de texto con los datos de cada usuario en líneas independientes, y segú el formato:
Apellidos:Nombre:Direccion:telefono:email
Nótese que los espacios son significativos. El separador de campos es el ':', por lo que no puede aparecer dentro de un campo ( no se soportan secuencias de escape )
Como contraseña inicial se le asigna a cada usuario su dirección de correo electrónico, por lo que en cuanto el usuario reciba el e-mail, deberá proceder a su cambio con la mayor brevedad posible, utilizando para ello la página que se le proporciona