Sistema de Votación: Software Libre


Sistema de Votación”


Instalación del software de votaciones en LINUX




Contenidos

Objetivos del sistema

Funcionalidades del sistema

Requerimientos del sistema

Pre-requisitos hardware

Pre-requisitos software

Configuración del Servidor Apache2

Obtención del Software y Base inicial

Configuraciones finales

Preguntas frecuentes



Objetivos del sistema


Permitir a los usuarios de una institución votar las publicaciones periódicas que consideren necesarias para sus trabajo de acuerdo a 3 categorías de votos (imprescindibles, necesarias e interesantes) y de esta manera generar un núcleo básico de revistas.

Funcionalidades del sistema























Requerimientos del sistema

    • Ser simple de usar.

    • Permitir una selección cómoda y precisa entre todos los títulos de la base.

    • Permitir pausar/continuar la votación por parte de los usuarios

    • Permitir la votación desde cualquier lado/cualquier hora

    • Contar con privacidad y seguridad en lo que se refiere a los títulos votados

    • Software redistribuible y reutilizable




Pre-requisitos hardware


PC Pentium 166 o mayor

32mb Ram o mayor

Disco rígido de 6GB o mayor

Conexión a la red por placa de 10 Mbits/s o mayor


Pre-requisitos software

Se requiere un Linux instalado con la conexión a la red funcionando y con el siguiente software instalado.


Apache versión 2.x http://httpd.apache.org/

Php 4.3.x o mayor http://www.php.net/

Mysql versión 4.x http://dev.mysql.com/


Si la distribución de Linux esta basada en Debian GNU/Linux (www.debian.org) los pre-requisitos pueden ser satisfechos con la siguiente linea de comando que instala todo el software necesario:


apt-get install libapache2-mod-php4 apache2 php4-mysql mysql-server mysql-client wget


Esto instalara alrededor de 23mb de software en el servidor.



Configuración del Servidor Apache2



Si la distribución en Linux es Debian GNU/Linux, los comandos ingresados para la instalación del software en la sección anterior realizaron todo el trabajo de configuración y este paso puede ser omitido. Ir a la sección “Obtención del software”


En caso contrario:


Configurar el servidor apache para que tome los archivos index.php por default en el


/etc/apache2/apache2.conf


Buscar la linea que empieza con la palabra “DirectoryIndex” y agregarle index.php

La linea quedará como el siguiente ejemplo:


[...]

DirectoryIndex index.html index.cgi index.pl index.xhtml index.php

[...]


Verificar que también funcione el motor PHP4, generalmente (según la distribución de Linux) se agrega la siguiente linea al archivo /etc/apache2/apache2.conf


[...]

AddType application/x-httpd-php .php

[...]


Verificar el el motor PHP4 se conecte apropiadamente a la base MySQL del servidor.

Generalmente (según la distribución de Linux) se agrega la siguiente linea al archivo

/etc/php4/apache2/php.ini


[...]

extension=mysql.so

[...]


Para probar nuestro motor PHP4 ingresar el siguiente comando:


cd /var/www

echo "<? echo "hola"; ?>">hola.php



Y luego ir con el navegador de web a: http://sistemadevotacion/hola.php (donde “sistemadevotación” es el host donde el servidor apache esta prendido)


En nuestra pantalla del navegador debería aparece la palabra “hola” únicamente, para comprobar que esta todo correcto.




Obtención del Software y Base inicial

Bajar el software de:


http://www.bl.fcen.uba.ar/nucleo_basico/software/sistema_votacion-1.0.tar.gz.

Suponiendo que los archivos del sistema irían en la raíz del Apache ubicado en /var/www podemos realizar toda la tarea ingresando los comandos:


cd /tmp

wget -cv http://www.bl.fcen.uba.ar/nucleo_basico/software/sistema_votacion-1.0.tar.gz

cd /var/www

tar zxvf /tmp/sistema_votacion-1.0.tar.gz



Bajar la base de datos de:


http://www.bl.fcen.uba.ar/nucleo_basico/software/base_mysql_sistema_votacion-1.0.tar.gz

Esta base viene con alrededor de 2100 títulos de revistas para probar la votación.


Suponiendo que nos conectemos a la base MySql con el usuario root y sin clave, podemos realizar todas las tareas ingresando el comando:


cd /tmp

wget -cv http://www.bl.fcen.uba.ar/nucleo_basico/software/base_mysql_sistema_votacion-1.0.tar.gz

tar zxvf base_mysql_sistema_votacion-1.0.tar.gz

mysqladmin create votaciones

mysql -u root votaciones < votaciones.sql



Configuraciones finales


En el archivo include/mysql_data.php está el nombre de usuario y contraseña que usa el sistema de votación para conectarse a la base mysql. (Default: usuario 'root' y sin clave).

Consulte a su administrador de red de crear un usuario especifico para la base 'votaciones' en caso de buscar una mayor seguridad para el acceso a la base mysql.


En el archivo include/inc_path.php está la ruta donde el sistema buscará sus librerías (subdirectorio “include”). El default es: /var/www/include. Consulte a su administrador de red en caso que sea necesario modificar este archivo. (Ej: /var/www/dominiovirtual/include


En el archivo include/ponderaciones.php están las ponderaciones de cada voto según su categoría. Modificar en caso que sea necesario.


En el archivo votacion/estado/index_contenidos.php en la linea 103 están definidos los departamentos del sistema. Consulte con su administrador de red para modificar/agregar dependencias.


En el archivo votacion/estado/index_contenidos.php en la linea 122 están definidos los cargos que pueden tener los votantes del sistema. Consulte con su administrador de red para modificar/agregar cargos.


En el archivo include/admin_lib.php en la funcion php “cant_posibles_votantes” en la linea 300, están los valores de la cantidades totales de votantes por departamento/dependencia. Consulte con su administrador de red para modificar estos valores.



Preguntas frecuentes


¿Como veo las estadísticas de la votación?


En http://sistemadevotacion/admin/


Donde “sistemadevotacion” se reemplaza por el nombre de la maquina donde esta funcionando el sistema de votación.


Por default el sistema viene con el usuario administrador '123' con clave '123'


¿Como se agrega un nuevo administrador?

Para agregar el usuario administrador “pepe” con la clave “pepe123” crear un archivo /tmp/nuevo_admin.sql con el siguiente contenido:


INSERT INTO `admin` (user,pass) VALUES ('pepe','pepe123');


luego poner el comando:


mysql -u root votaciones < /tmp/nuevo_admin.sql


Por default en el sistema viene el usuario administrador “123” con la clave “123”


¿Como se borra un usuario administrador?


Para borrar el usuario administrador “pepe” crear un archivo /tmp/borrar_admin.sql con el siguiente contenido:


DELETE FROM `admin` where user='pepe';


luego poner el comando:


mysql -u root votaciones < /tmp/borrar_admin.sql


¿Como se agrega un usuarios (votante) al sistema?


Ejemplo:

Apellido: Perez

Nombre: Juan

DNI: 12345678

Clave: 123


Para sumar un usuario (votante) al sistema crear un archivo /tmp/nuevo_usuario.sql con el siguiente contenido:


INSERT INTO `externos`(dni,apellido,nombre,clave) VALUES (12345678,'Perez','Juan','123');


luego poner el comando:


mysql -u root votaciones < /tmp/nuevo_usuario.sql



¿Como ingresar nuevas revistas para que sean votadas?


Crear un archivo /tmp/nuevas_revistas.sql con la estructura de ejemplo que se encuentra en include/ejemplo_nuevas_revistas.sql


y ingresar el comando:


mysql -u root votaciones < /tmp/nuevas_revistas.sql


Cuidado: el archivo nuevas_revistas.sql debe contener la revistas nuevas a ingresar.

No reutilice el archivo. Cree un nuevo cada vez que quiera agregar nuevas revistas.



¿Como modifico datos de las revistas ya ingresadas?

Modificando la tabla revista de la base MySQL con alguna herramienta como “phpmyadmin” (www.phpmyadmin.org)