Grupo Creación/administración de votaciones(2014-15)

De Wiki de EGC
Saltar a: navegación, buscar

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

Relaciones.png

Diagramabueno.png

   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: [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