EGC 2014/2015

Grupo Creación/administración de votaciones

Jornadas EGC

Interfaz para la creación y administración de votaciones.
Debe ofrecer un formulario con lo necesario para crear una votación (Pregunta, censo implicado...).
Se debe gestionar las votaciones en una base de datos o un almacenamiento similar.
Se puede ofrecer como servicio o API la información de las votaciones para que los diferentes sistemas tengan acceso.\

Miembros

  • De Tena Benzal, Daniel
  • García Padilla, Fernando
  • Guerrero Cubero, Jaime
  • Moreno Martín, Olga Minerva
  • Moreno Soto, José Iván
  • Pérez Domínguez, Francisco José
  • Pérez Reina, María
  • Vallejo Morales, Mercedes

URL del Repositorio en Github

https://github.com/EGC-1415-Repositorio-compartido/repvoting/tree/creacionVotaciones

Formas de comunicación

  • Nuestro principal canal de comunicación es Google Drive, del cual dejamos enlace para ver la evolución del proyecto:

Google Drive

  • El canal de comunicación informal es whatsapp.
  • El canal oficial de comunicación es Projetsii.

Projetsii

  • El canal de comunicación intergrupal es Projetsii.

Subsistemas Relacionados

  • Autenticación: Hacemos uso de un método, disponible gracias a la API que nos facilita, al cual le pasamos por parámetro los datos de la Cookie "usuario:token" y nos devolverá True si está autenticado y False en caso contrario.

  • Creación/Administración de Censos:

    • Al confirmar la creación de una votación, redireccionamos a una URL trasmitiendo el identificador, el nombre y las fechas de la votación.
    • Cuando terminan de añadir un censo, al guardar, redireccionan a la URL con la ID del censo para almacenar la relación con la votación: "vote/saveCensus.do/idSurvey=XXX&idCensus=XXX"
    • Cuando en la lista de votaciones creadas se selecciona la opción de editar su censo, enviamos una URL con el identificador del Censo.
  • Cabina de Votaciones:

    • Cuando quieren responder a una votación, redireccionan a la URL: "vote/survey.do/id=XXX". Para devolver un JSON con la siguiente información: {"id":"XXX","title":"XXX","description":"XXX","startDate":"XXX","endDate":"XXX","questions":[{"id":"XXX","text":"XXX"},{"id":"XXX","text":"XXX"]}
  • Visualización:

    • Cuando quieren realizar visualizaciones,redireccionan a la URL: "vote/allSurveys.do/". Enviamos un JSON con la lista de todas las votaciones: {{"id":"XXX","title":"XXX","description":"XXX","startDate":"XXX","endDate":"XXX","questions":[{"id":"XXX","text":"XXX"},{"id":"XXX","text":"XXX"]}, {"id":"XXX","title":"XXX","description":"XXX","startDate":"XXX","endDate":"XXX","questions":[{"id":"XXX","text":"XXX"},{"id":"XXX","text":"XXX"]},...}
  • Deliberación:

    • Al confirmar la creación de una votación, redireccionamos a una URL trasmitiendo el nombre de la votación.
  • Verificación:

    • Integraremos con nuestro proyecto un .jar (librería compatible con Java)

Interfaz del Sistema

save(Survey) -> Void

Método que dada una encuesta, la almacena en la base de datos.

saveCensus(Census) -> Void

Método que dada dado un censo, lo añade a la encuesta y la almacena en la base de datos.

delete(Survey) -> Void

Método que dada una encuesta, la elimina de la base de datos.

mine() -> list<Survey>

Método que devuelve todas las encuestas que he creado.

allSurvey() -> list<Survey>

Método que devuelve todas las encuestas.

allFinishedSurvey() -> list<Survey>

Método que devuelve todas las encuestas finalizadas.

API del Sistema

  • Guardar una Votación

POST: /vote/save.do

Request Sample:
{"type":"survey",
"usenarmeCreator":"marperrei1",
"title":"survey1",
"description":"survey1Sample",
"startDate":"24/11/2014",
"endDate":"27/11/2014",
"questions":[
{"type":"question",
"text":"question1"},
{"type":"question",
"text":"question2"}
]
}

  • Recuperar una Votación

GET: /vote/survey.do?id=XXX

Response Sample:

{"type":"survey",
"id": "XXX",
"version": "YYY",
"usenarmeCreator":"marperrei1",
"title":"survey1",
"description":"survey1Sample",
"startDate":"24/11/2014",
"endDate":"27/11/2014",
"questions":[
{"type":"question",
"id": "X0X0X0",
"version": "Y0Y0Y0",
"text":"question1"},
{"type":"question",
"id": "X1X1X1",
"version": "Y1Y1Y1",
"text":"question2"}
]
}

  • Recuperar todas las Votaciones

GET: /vote/allSurveys.do

Response Sample:

{{"type":"survey",
"id": "XXX",
"version": "YYY",
"usenarmeCreator":"marperrei1",
"title":"survey1",
"description":"survey1Sample",
"startDate":"24/11/2014",
"endDate":"27/11/2014",
"questions":[
{"type":"question",
"id": "X0X0X0",
"version": "Y0Y0Y0",
"text":"question1"},
{"type":"question",
"id": "X1X1X1",
"version": "Y1Y1Y1",
"text":"question2"}
]
},
{"type":"survey",
"id": "XXX",
"version": "YYY",
"usenarmeCreator":"marperrei1",
"title":"survey1",
"description":"survey1Sample",
"startDate":"24/11/2014",
"endDate":"27/11/2014",
"questions":[
{"type":"question",
"id": "X0X0X0",
"version": "Y0Y0Y0",
"text":"question1"},
{"type":"question",
"id": "X1X1X1",
"version": "Y1Y1Y1",
"text":"question2"}
]
}}

  • Recuperar todas las Votaciones finalizadas

GET: /vote/finishedSurveys.do

Response Sample:

{{"type":"survey",
"id": "XXX",
"version": "YYY",
"usenarmeCreator":"marperrei1",
"title":"survey1",
"description":"survey1Sample",
"startDate":"24/11/2014",
"endDate":"27/11/2014",
"questions":[
{"type":"question",
"id": "X0X0X0",
"version": "Y0Y0Y0",
"text":"question1"},
{"type":"question",
"id": "X1X1X1",
"version": "Y1Y1Y1",
"text":"question2"}
]
},
{"type":"survey",
"id": "XXX",
"version": "YYY",
"usenarmeCreator":"marperrei1",
"title":"survey1",
"description":"survey1Sample",
"startDate":"24/11/2014",
"endDate":"27/11/2014",
"questions":[
{"type":"question",
"id": "X0X0X0",
"version": "Y0Y0Y0",
"text":"question1"},
{"type":"question",
"id": "X1X1X1",
"version": "Y1Y1Y1",
"text":"question2"}
]
}}

Trabajo Realizado

01/10/14

  • Formar el grupo

  • Definir la forma de comunicación dentro del grupo

  • Definir la tecnología que se utilizará

  • Definido el repositorio: Google Drive

  • 06/10/14

  • Definir la interfaz del sistema

  • 07/10/14

  • Preparar el entorno de desarrollo

  • 15/10/2014

  • Analizar el gestor de tareas "Github"

  • 20/10/2014

  • Preparar gestor de tareas

  • Elegir un gestor de tareas para utilizar

  • Realizar las pruebas del gestor de tareas entre los miembros del grupo

  • 10/11/2014

  • Definir como nos relacionamos a nivel de información de código con "La cabina de votación"

  • Iteraciones de código

  • 17/11/2014

  • Integración con el grupo de Censo

  • Puesta en común de código y funcionalidad

  • 23/11/2014

  • Integración con el grupo de Autenticación

  • Puesta en común de código y funcionalidad

  • 30/11/2014

  • Integración con el grupo de Verificación

  • Puesta en común de código y funcionalidad

  • .../12/14

  • Integración con los grupos que usan nuestra funcionalidad

  • Puesta en común de código y explicaciones

  • Trabajo por Realizar

    Terminar pequeños hilos sueltos de integración

    Iteraciones

    • Iteración 1 (06/10/14)_-Grupo_de_Creación/administración_de_votaciones-_14/15 " Iteración 1 (06/10/14)")
    • Iteración 2 (13/10/14)_-Grupo_de_Creación/administración_de_votaciones-_14/15 " Iteración 2 (13/10/14)")
    • Iteración 3 (15/10/14)_-Grupo_de_Creación/administración_de_votaciones-_14/15 " Iteración 3 (15/10/14)")
    • Iteración 4 (20/10/14)_-Grupo_de_Creación/administración_de_votaciones-_14/15 " Iteración 4 (20/10/14)")
    • Iteración 5 (10/11/14)_-Grupo_de_Creación/administración_de_votaciones-_14/15 " Iteración 5 (10/11/14)")
    • Iteración 6 (17/11/14)_-Grupo_de_Creación/administración_de_votaciones-_14/15 " Iteración 6 (17/11/14)")