EGC 2017/2018

Recuento de votos - 17 18 - G2

Trabajo

Objetivo del subsistema

Dada una votación el subsistema deberá realizar un recuento de los votos almacenados.

Consideraciones

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:

GEThttp://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:

GEThttp://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.