Primero se prepara un archivo con las preguntas de la encuesta y se generan un archivo de base de datos y un archivo PDF. La base de datos se sube a un servidor web y el archivo PDF se imprime para repartir al alumnado los datos de acceso al servidor web.
En la segunda fase el alumnado accede al servidor y responde a las preguntas de la encuesta. Las respuestas quedan acumuladas en la base de datos, sin que se pueda saber individualmente cuáles fueron.
Por último, se descarga la base de datos del servidor y un programa la lee y genera un PDF con el resumen de las respuestas.
Para la primera y la tercera fases se utilizan programas en Python con las extensiones Another Python SQLite Wrapper para manejar bases de datos SQLite3 y ReportLab para generar PDF.
Para la segunda fase se utiliza un servidor web Apache con PHP5, pero debería valer cualquier otro servidor web que admita PHP5.
Las preguntas
Se comienza trabajando en un ordenador cualquiera con un editor
de textos y se prepara el archivo de preguntas de la encuesta usando
codificación UTF-8. Cada pregunta se separa de la siguiente con una
línea en blanco. En las preguntas se pueden insertar etiquetas HTML
que posteriormente serán copiadas tal cual en la página web. Como muestra
para ilustrar el sistema voy a preparar una encuesta con dos preguntas.
Uso el editor de textos geany y preparo un archivo que llamo
pregunta.txt
:
Creación de la base de datos
Usando el archivo
encuesta.sql
creo la base de datos encuesta.db
con la orden
sqlite3 encuesta.db ".read encuesta.sql"
Generación de los códigos de acceso
El programa
prepara.py
se encarga de rellenar la base de datos y crear los códigos de acceso,
pero antes de ejecutarlo hay que modificar algunas de sus variables para
adaptarlo a tus necesidades; concretamente, es imprescindible modificar
las variables Titulo, Web, Inicio y Final. El resto se pueden dejar
tal como están si se desea. Cuando está preparado, se invoca usando
como parámetro el número de códigos que se desea generar. En principio,
hay que generar tantos códigos como estudiantes vayan a contestar la
encuesta, aunque se puede generar alguno más como reserva por si alguno
lo pierde. Vamos a generar ocho:
./prepara.py 8
Si todo ha ido correctamente, el archivo encuesta.db
ha sido rellenado con nuevos datos y se ha generado el archivo
encuesta.pdf
Preparación del servidor web
El archivo encuesta.db
se sube al servidor web; es
importante comprobar que el usuario que ejecuta el servidor web tenga
permiso de escritura sobre este archivo, porque ha de modificarlo con
las respuestas que se reciban.
En el servidor web hay que instalar varios archivos además de la
base de datos: el archivo
index.php
que dirige la interacción al usuario, el archivo
encuesta.php
que contiene las funciones auxiliares, el archivo
basedato.php
que se encarga de la interacción con la base de datos (incluye más funciones
de las que necesita el sistema, puesto que es un archivo genérico que
voy llevando de proyecto en proyecto), el archivo
encuesta.css
con la hoja de estilos y el pequeño icono encuesta.png
.
También es aconsejable usar el archivo .htaccess
proporcionado, por seguridad.
La función Encuesta_Incrementa() es la principal muestra de la garantía de anonimato del sistema, ya que en ella se aprecia que las respuestas obtenidas se suman globalmente, por lo que no se puede saber qué contestó cada alumno a cada pregunta.
Reparto de los códigos
El archivo encuesta.pdf
se imprime, se cortan las hojas por la mitad y se reparten entre los
estudiantes. Se les puede señalar que cada código es de un solo uso,
que pueden intercambiar sus códigos si lo desean y que la encuesta ha
de ser realizada entre las fechas indicadas.
Contestaciones a la encuesta
Es el turno ahora del alumnado. Teclean en sus navegadores la URL que recibieron en la hoja de papel. Si lo hacen en la fecha correcta (no antes de Inicio ni después de Final), verán que se les pide que introduzcan el código de acceso:
Si lo escriben correctamente, verán la lista de las preguntas con unos botones para contestar cada una:
Pueden contestar a las que deseen y dejar sin contestar cuantas quieran.
Cuando pulsen el botón Enviar respuestas
,
el sistema sumará sus puntuaciones en la base de datos y recibirán
una confirmación:
Generación del informe final
Una vez trascurrido el plazo determinado, se descarga del servidor web
el archivo encuesta.db
y se ejecuta el programa
informe.py
./informe.py
Esto genera el archivo
informe.pdf
con
el resumen de las respuestas obtenidas.