Administración de votaciones - 17 18 - G2

De Wiki de EGC
Revisión del 19:13 25 nov 2017 de Jesmarale (discusión | contribuciones) (Página creada con «== Miembros y contacto == * Pablo Tinoco Castillo, ''ptinococastillo@gmail.com'' '''Coordinador''' * Francisco Fernández Angulo * Jesús Martos Alé * Miguel Medrano Gil...»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Miembros y contacto

  • Pablo Tinoco Castillo, ptinococastillo@gmail.com Coordinador
  • Francisco Fernández Angulo
  • Jesús Martos Alé
  • Miguel Medrano Gil
  • Gonzalo Trabado García

Objetivo del subsistema

  • Gestionar la creación de una votación
  • Gestionar la edición de una votación
  • Gestionar el borrado de una votación

Consideraciones

Tecnología usada

Subsistema: Administración de votaciones
Lenguaje/Herramienta: PHP -> PHPStorm
Sistema de gestión de bibliotecas: ¿?
Bibliotecas: 
   Larabel framework: versión 5.5
Necesita Base de datos: Sí (Ninguna empleada actualmente, a la espera de directrices)

Estructura de datos

Haremos uso de la tablas votación, pregunta y respuesta:

   Votación:
       - id: (int) identificador de la votación [pk, autoincrementable]
       - id_censo: (int) identificador del censo [fk, not null]
       - id_grupo: (int) identificador del grupo que puede votar en la votación [fk, not null]
       - titulo: (string/varchar) titulo de la votación a crear [blank, not null]
       - descripcion: (string/varchar) descripción de los objetivos de la votación [blank, not null]
       - fecha_ini: (datetime) fecha de inicio de la votación [not null, default=fecha_actual]
       - fecha_fin: (datetime) fecha de fin de la votación[not null]
   Pregunta:
       - id: (int) identificador de la pregunta [pk, autoincrementable]
       - id_votacion: (int) identificador de la votación a la que pertenece [fk, not null]
       - texto_pregunta: (string/varchar) texto de la pregunta que se realiza [blank, not null]
       - tipo_pregunta: (string/varchar ?) parametro para establecer el tipo de pregunta (Abierta, cerrada) [blank, not null]
       - id_dependencia: (int) identificador para definir dependencias entre preguntas [fk]
   Respuesta:
       - id: (int) identificador de la respuesta [pk, autoincrementable]
       - id_pregunta: (int) identificador de la pregunta [fk, not null]
       - id_pregunta: (int) identificador de la pregunta [fk, not null]
       - texto_pregunta: (string/varchar) texto de la respuesta [blank, not null]
       - seleccionada: (boolean) parámetro para establecer la selección de la respuesta


Esta sería la estructura de las tablas sobre las que trabajaríamos, una votación tendrá varias preguntas que podrán ser abiertas o cerradas, y estas a su vez podrán depender de otras preguntas. Las preguntas podrán tener una o más respuestas.

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 (sea debido al despliege, conflictos, etc).


Obtención de una votación


Se hace una petición GET con los parámetros siguientes y se devolverá un JSON con la siguiente información.

URL:

   http://egc-votacion1718.es/api/get/votacion.json

Parámetros:

   * id: Identificador de la votación.

Ejemplo:

   GET http://egc-votacion1718.es/api/get/votacion.json?id=1

Formato JSON:

 {
     "votacion": {
     "id": "1",
     "id_censo": "288",
     "id_grupo": "31",
     "titulo": "Votación sobre consolas",
     "descripción": "En esta votación comprobaremos si hay mas gamers de PC o consolas",
     "fecha_ini": "31/07/2017 07:07",
     "fecha_fin": "31/08/2017 07:07"
   }
 }


Edición de una votación


Se hace una petición POST (a través del formulario descrito en su correspondiente vista) con los parámetros siguientes y se devolverá un JSON con la siguiente información.

URL:

     http://egc-votacion1718.es/api/get/votacion.json

Parámetros:

       * id: identificador de la votación
       * id_censo: identificador del censo
       * id_grupo: identificador del grupo que puede votar en la votación
       * titulo: titulo de la votación a crear
       * descripcion: descripción de los objetivos de la votación
       * fecha_ini: fecha de inicio de la votación
       * fecha_fin: fecha de fin de la votación
   Aquellos parámetros que no se introduzcan no se modificarán.

Ejemplo:

   POST http://egc-votacion1718.es/api/get/votacion.json?id=1&titulo=Titulo_modificado

Formato JSON:

 {
   "exito": true,
   "mensaje": "Editado con éxito",
  "votacion": {
     "id": "1",
     "id_censo": "288",
     "id_grupo": "31",
     "titulo": "Votación sobre consolas",
     "descripción": "En esta votación comprobaremos si hay mas gamers de PC o consolas",
     "fecha_ini": "31/07/2017 07:07",
     "fecha_fin": "31/08/2017 07:07"
   }
 }

Eliminación de una votación


Se hace una petición GET (a través del formulario descrito en su correspondiente vista) con los parámetros siguientes y se devolverá un JSON con la siguiente información.

URL:

   http://egc-votacion1718.es/api/get/votacion.json

Parámetros:

   * id: Identificador de la votación a eliminar.

Ejemplo:

   GET http://egc-votacion1718.es/api/delete/result.json?id=1

Formato JSON:

 {
   "exito": true,
   "mensaje": "Eliminado con éxito"
 }