Se propone centrarse en la parte de cabina de votaciones 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.
Actualmente el proyecto 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 es usar Protractor para realizar los tests de la gui. Ideas para tests pueden ser tests de funcionalidades concretas, o 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 tanto 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).