Recuento de votos - 17 18 - G2
Contenido
Objetivo del subsistema
Dada una votación el subsistema deberá realizar un recuento de los votos almacenados.
Consideraciones
- Los votos están encriptados.
- Se realizan principalmente consultas. No se modifican datos de las votaciones.
- Repositorio del año pasado: https://github.com/AgoraUS-G1-1617/Recuento-y-modificacion
Miembros del equipo
- Juan Carlos Cansino Suárez Coordinador - Ingeniero Software
- Daniel Rodríguez López Ingeniero Software
- Alfonso Soldado Caro Ingeniero Software
- Mario Sanchez Rodríguez Ingeniero Software
- María Inmaculada Martín Galván Ingeniero Software
- Antonio Jesus Barrera Roldán Ingeniero Software
Definición del proyecto
La realización de este proyecto consta de la realización del módulo de "Recuento de votos" del sistema Agora Voting.
Código heredado
Hemos acordado no utilizar código heredado de años anteriores, por supuesto se consultará el mismo para posibles dudas pero desarrollaremos el nuestro propio.
Gestión de la comunicación
Para tener una comunicación lo más fluida y correcta posible, y asegurarnos que el flujo sea el adecuado, utilizaremos varias herramientas como son:
- Reuniones Presenciales: Para llevar a cabo diferentes aspectos del proyecto y tomar decisiones sobre el mismo.
- Skype: Para reuniones telemáticas, cuando no sea posible realizar una reunión presencial lo haremos a través de este medio.
- Telegram: Para la realización de comunicaciones cortas y cosas puntuales que tengamos que comentar, así como dudas que se nos planteen.
Gestión de las tareas
Gestión del código
Para la gestión del control de versiones y del código usaremos Git, así como GitHub como repositorio de código para nuestro proyecto.
Enlace al repositorio de código en GitHub:https://github.com/EGC-G2-Trabajo-1718/recuento-de-votos
Tecnologías elegidas
Subsistema: Recuento de votos. Lenguaje/Herramienta: <php/phpstrom 2017.2.4> Sistema de gestión de bibliotecas: php -> Composer Bibliotecas: Eloquent (ORM de laravel para gestión de la base de datos): 5.1.8 Necesita Base de datos: Sí (mysql)
Formato general para detallar incidencias
Las incidencias pueden emplearse no solo para fallos.
Título: <breve título sobre la incidencia> Descripción: <descripción detallada del error> La descripción puede incluir imagenes o la salida emitida por el fallo. Etiquetas: <etiquetas de GitHub para clasificar las incidencias> enhancement: propuesta de mejora bug: fallos encontrados en el sistema help wanted: incidencia que puede ser resuelta por un miembro del equipo pero que ha sido atendida previamente por otro question: (a usar solo entre miembros del equipo) dudas sobre un commit en concreto, hay que referenciar el commit en cuestión
Las incidencias pueden incluirse en Proyectos de GitHub.
API
Las funcionalidades aquí descritas y especificadas no son finales. Debido a la diversidad de funcionalidades y necesidades de los otros grupos, éstas pueden variar a lo largo del desarrollo.
Dependencias
En primer lugar estableceremos cuales van a ser las dependencias de nuestro módulo con otros.
Dependemos totalmente de la API del módulo de Almacenamiento de datos del cual tendremos que obtener los resultados de la votación (encriptados) para realizar el recuento.
Para terminar, nuestro módulo deberá poder ofrecer la información completa del recuento al módulo de "Visualización de datos" para que se lleve a cabo. Para ello, ofreceremos una API que procedemos a definir.
Obtener el recuento de una encuesta
Se hace una petición GET con los parámetros siguientes y se devolverá un JSON con la siguiente información. El id de votacion estará encriptado
URL:
http://egc-recuento1718.es/api/
Ejemplo:
GET http://egc-recuento1718.es/api/vote/{token_bd}/{id_votacion}/{id_pregunta}
Parámetros:
token_bd: Token para verificar que el usuario que realiza la petición tiene permiso de acceso a nuestra base de datos (String) id_votacion: Identificador de la votación id_pregunta: Identificador de la pregunta
Formato JSON:
{
["1":179,"2":176,"3":156,"4":141,"5":168,"6":179, "total_votes", "998" ]
}
Códigos de estado
Nombre | Tipo | Descripción |
---|---|---|
result | JSON | Objetos votos |
msg | String | 200 OK |
Nombre | Tipo | Descripción |
result | Boolean | Código de error |
msg | String | 404 NOT FOUND |
Nombre | Tipo | Descripción |
result | Boolean | Código de error |
msg | String | 400 Bad Request. |
Obtener las opciones disponibles a votación para una encuesta
URL:
http://egc-recuento1718.es/api/
Ejemplo:
GET http://egc-recuento1718.es/api/optionspoll/{token_bd}/{id_votacion}/{id_pregunta}
Parámetros:
token_bd: Token para verificar que el usuario que realiza la petición tiene permiso de acceso a nuestra base de datos id_votacion: Identificador de la votación id_pregunta: Identificador de la pregunta
Formato JSON:
{
[{"option":"1"},{"option":"2"},{"option":"3"},{"option":"4"},{"option":"5"},{"option":"6"}]
}
Códigos de estado
Nombre | Tipo | Descripción |
---|---|---|
result | JSON | Objetos votos |
msg | String | 200 OK |
Nombre | Tipo | Descripción |
result | Boolean | Código de error |
msg | String | 404 NOT FOUND |
Nombre | Tipo | Descripción |
result | Boolean | Código de error |
msg | String | 400 Bad Request. |