Se propone centrarse en la parte pública que ve el votante para los proyectos. La cabina de votaciones es implementado por 4 librerías:
Interfaz de la web pública de la votación, donde entre otras cosas se pueden consultar los resultados de la votación una vez terminada. Desarrollada en Javascript con AngularJS, Bootstrap, Grunt.
Interfaz web de la cabina de votaciones. Desarrollada en Javascript con AngularJS, Bootstrap, Grunt.
Librería usada por agora-gui-booth, agora-gui-admin, y agora-gui-elections. Desarrollada en Javascript con AngularJS, Boothstrap, Grunt.
Servidor de autenticación/autorización. Realizado en Python con Django y Celery.
Respecto de la cabina de votaciones, registra los votos a modo de urna de votaciones. Realiza otras tareas más generales, como manejar todas las etapas de la votación, y guardar los datos relativos al estado de dicha votación en la bbdd. Desarrollado en Scala con Play.
Para realizar los proyectos es necesario hacer un despliegue de todo el sistema, cosa que se detalla aquí y aquí.
Actualmente el proyecto prácticamente carece de tests de interfaz gráfica. Debería existir una cobertura mínima de tests de interfaz gráfica de la cabina de votaciones(agora-gui-booth), como la parte de autenticación (en agora-gui-common) como la vista de los resultados (agora-gui-elections).
Puesto que la cabina está creada con AngularJS, lo ideal probablemente es usar Protractor para realizar los tests de la gui.
Pueden testearse funcionalidades concretas, pero también es importante tener tests de experiencia completa (por ejemplo simular toda la experiencia de un usuario desde que se loguea hasta que vota).
Hacer que la interfaz sea más accesible para las personas con discapacidades haciendo uso de Accessible Rich Internet Applications (ARIA). Se pueden mejorar de:
- la cabina de votaciones (agora-gui-booth)
- la parte de autenticación y registro (en agora-gui-common)
- la vista de los resultados (agora-gui-elections).
La interfaz gráfica que muestra la configuración de una votación (antes de que haya resultados) y los resultados (cuando son públicos) es demasiado básica. De cada opción de una pregunta, sólo muestra el título de cada opción, pero no muestra la imagen, url, descripción de la opción si es que los hubiera, y sólo hay un modo de visualización. Todo lo anterior podría mejorarse.