Diferencia entre revisiones de «Recuento de votos - 17 18 - G2»

De Wiki de EGC
Saltar a: navegación, buscar
(Obtener el recuento de una encuesta)
 
(No se muestran 22 ediciones intermedias de 2 usuarios)
Línea 35: Línea 35:
 
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.
 
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/ajba/Proyecto-EGC---Recuento-De-Votos
+
Enlace al repositorio de código en '''GitHub''':https://github.com/EGC-G2-Trabajo-1718/recuento-de-votos
  
 
== Tecnologías elegidas ==
 
== Tecnologías elegidas ==
 
  '''Subsistema''': Recuento de votos.
 
  '''Subsistema''': Recuento de votos.
 
  '''Lenguaje/Herramienta''': <php/phpstrom 2017.2.4>
 
  '''Lenguaje/Herramienta''': <php/phpstrom 2017.2.4>
  '''Sistema de gestión de bibliotecas''': <Herramienta que se usa para añadir bibliotecas/dependencias> (Ej: Java->Maven, Python->pip)
+
  '''Sistema de gestión de bibliotecas''': php -> Composer
  '''Bibliotecas''': <Listado de bibliotecas usadas en el desarrollo.>
+
  '''Bibliotecas''':  
     '''Nombre_Biblioteca1''': <versión>
+
     '''Eloquent (ORM de laravel para gestión de la base de datos)''': 5.1.8
 
  '''Necesita Base de datos''': Sí (mysql)
 
  '''Necesita Base de datos''': Sí (mysql)
 
  
 
== Formato general para detallar incidencias ==
 
== Formato general para detallar incidencias ==
Línea 65: Línea 64:
 
En primer lugar estableceremos cuales van a ser las dependencias de nuestro módulo con otros.
 
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 (cifrados) para realizar el recuento.
+
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.
 
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.
  
== Obtención de recuento ==
+
== 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.
 
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:'''  
 
'''URL:'''  
     http://egc-recuento1718.es/api/get/recuento.json
+
     http://egc-recuento1718.es/api/
  
 
'''Ejemplo:'''
 
'''Ejemplo:'''
     GET http://egc-recuento1718.es/api/get/recuento.json
+
     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:'''
 
'''Formato JSON:'''
 
   {
 
   {
      "votacion": {
+
["1":179,"2":176,"3":156,"4":141,"5":168,"6":179, "total_votes", "998" ]
      "id": "1",
+
      
      "titulo": "Recuento final",
 
      "resultados": "resultados del recuento"
 
      "fecha_ini": "31/07/2017 07:07",
 
      "fecha_fin": "31/08/2017 07:07"
 
     }
 
 
   }
 
   }
 +
 +
'''Códigos de estado'''
 +
 +
<table border="1" style="border-collapse:collapse">
 +
 +
<tr>
 +
<th> Nombre
 +
</th>
 +
<th> Tipo
 +
</th>
 +
<th> Descripción
 +
</th></tr>
 +
<tr>
 +
<td> result
 +
</td>
 +
<td> JSON
 +
</td>
 +
<td> Objetos votos
 +
</td></tr>
 +
<tr>
 +
<td> msg
 +
</td>
 +
<td> String
 +
</td>
 +
<td> 200 OK
 +
</td></tr>
 +
<tr>
 +
<th> Nombre
 +
</th>
 +
<th> Tipo
 +
</th>
 +
<th> Descripción
 +
</th></tr>
 +
<tr>
 +
<td> result
 +
</td>
 +
<td> Boolean
 +
</td>
 +
<td> Código de error
 +
</td></tr>
 +
<tr>
 +
<td> msg
 +
</td>
 +
<td> String
 +
</td>
 +
<td> 404 NOT FOUND
 +
</td></tr>
 +
<tr>
 +
<th> Nombre
 +
</th>
 +
<th> Tipo
 +
</th>
 +
<th> Descripción
 +
</th></tr>
 +
<tr>
 +
<td> result
 +
</td>
 +
<td> Boolean
 +
</td>
 +
<td> Código de error
 +
</td></tr>
 +
<tr>
 +
<td> msg
 +
</td>
 +
<td> String
 +
</td>
 +
<td> 400 Bad Request.
 +
</td></tr></table>
 +
 +
== 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'''
 +
 +
<table border="1" style="border-collapse:collapse">
 +
 +
<tr>
 +
<th> Nombre
 +
</th>
 +
<th> Tipo
 +
</th>
 +
<th> Descripción
 +
</th></tr>
 +
<tr>
 +
<td> result
 +
</td>
 +
<td> JSON
 +
</td>
 +
<td> Objetos votos
 +
</td></tr>
 +
<tr>
 +
<td> msg
 +
</td>
 +
<td> String
 +
</td>
 +
<td> 200 OK
 +
</td></tr>
 +
<tr>
 +
<th> Nombre
 +
</th>
 +
<th> Tipo
 +
</th>
 +
<th> Descripción
 +
</th></tr>
 +
<tr>
 +
<td> result
 +
</td>
 +
<td> Boolean
 +
</td>
 +
<td> Código de error
 +
</td></tr>
 +
<tr>
 +
<td> msg
 +
</td>
 +
<td> String
 +
</td>
 +
<td> 404 NOT FOUND
 +
</td></tr>
 +
<tr>
 +
<th> Nombre
 +
</th>
 +
<th> Tipo
 +
</th>
 +
<th> Descripción
 +
</th></tr>
 +
<tr>
 +
<td> result
 +
</td>
 +
<td> Boolean
 +
</td>
 +
<td> Código de error
 +
</td></tr>
 +
<tr>
 +
<td> msg
 +
</td>
 +
<td> String
 +
</td>
 +
<td> 400 Bad Request.
 +
</td></tr></table>

Revisión actual del 20:02 13 ene 2018

Objetivo del subsistema

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

Consideraciones

Miembros del equipo

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.