Diferencia entre revisiones de «Grupo Creación/administración de votaciones(2014-15)»

De Wiki de EGC
Saltar a: navegación, buscar
(Subsistemas Relacionados)
(Interfaz del Sistema)
 
(No se muestran 48 ediciones intermedias de 5 usuarios)
Línea 1: Línea 1:
Interfaz para la creación y administración de votaciones. Debe ofrecer un formulario con lo necesario para crear una votación y 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.
+
Interfaz para la creación y administración de votaciones.<br>
 +
 
 +
Debe ofrecer un formulario con lo necesario para crear una votación (Pregunta, censo implicado...).<br>
 +
Se debe gestionar las votaciones en una base de datos o un almacenamiento similar. <br>
 +
Se puede ofrecer como servicio o API la información de las votaciones para que los diferentes sistemas tengan acceso.<br>
  
 
===Miembros===
 
===Miembros===
Línea 12: Línea 16:
 
<li> Vallejo Morales, Mercedes </li>
 
<li> Vallejo Morales, Mercedes </li>
 
</ul>
 
</ul>
 +
 +
=== URL del Repositorio en Github===
 +
https://github.com/EGC-1415-Repositorio-compartido/repvoting/tree/creacionVotaciones
  
 
===Formas de comunicación===
 
===Formas de comunicación===
Nuestro principal canal de comunicación es Google Drive, del cual dejamos enlace para ver la evolución del proyecto:
+
*Nuestro principal canal de comunicación es Google Drive, del cual dejamos enlace para ver la evolución del proyecto:
  [[https://drive.google.com/folderview?id=0BzxlwTn_WPpGZDhSOW1aS0xUQ2s&usp=sharing|Google Drive]]
+
  [[https://drive.google.com/folderview?id=0BzxlwTn_WPpGZDhSOW1aS0xUQ2s&usp=sharing| Google Drive]]
 +
*El canal de comunicación informal es whatsapp.
 +
*El canal oficial de comunicación es Projetsii.
 +
[[https://projetsii.informatica.us.es/projects/jylkv9e6xxh2vj3c3nq  Projetsii]]
 +
*El canal de comunicación intergrupal es Projetsii.
  
El canal de comunicación para asuntos de reuniones es whatsapp.
+
=== Subsistemas Relacionados ===
  
No se ha decidido todavía un modo de comunicación con el resto de los grupos.
+
*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.
Una propuesta sería una plataforma donde los representantes
 
de los diferentes grupos puedan comunicarse, por ejemplo Google Drive.
 
  
=== Subsistemas Relacionados ===
+
*Creación/Administración de Censos:
[[Grupo Autenticación (2014-15)|Autenticación]], [[Grupo Creación/Administración de censos(2014-15)|Creación/Administración de censos]] y [[Grupo de Cabina de votación (2014-15)|Cabina de votación]]
+
**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"]}
  
*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.
+
*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"]},...}
  
*Creación/Administración de Censos: Hacen uso de un método, disponible gracias a la API que les facilitamos, al cual le pasan por parámentro el censo que puede votar en la votación y se guarda.
+
*Deliberación:
 +
**Al confirmar la creación de una votación, redireccionamos a una URL trasmitiendo el nombre de la votación.
  
*Cabina de Votación:
+
*Verificación:
 +
**Integraremos con nuestro proyecto un .jar (librería compatible con Java)
  
 
===Interfaz del Sistema===
 
===Interfaz del Sistema===
  
[[Archivo:Untitled (1).png]]
+
[[Archivo: relaciones.png]]
  
    create() -> Survey
+
[[Archivo: diagramabueno.png]]
Método que crea una encuesta.
 
  
     addQuestion(Survey) -> Question
+
     save(Survey) -> Void
 +
Método que dada una encuesta, la almacena en la base de datos.
  
Método que, dada una encuesta crea una pregunta. Una pregunta está compuesta por el enunciado, la lista de opciones de respuestas, el número de opciones que se puede seleccionar, el número de opciones que pueden ganar y el tipo de pregunta.
+
    saveCensus(Census) -> Void
 +
Método que dada dado un censo, lo añade a la encuesta y la almacena en la base de datos.
  
     save(Survey,Question,Census) -> Void
+
     delete(Survey) -> Void
Método que dada una encuesta, la almacena en la base de datos.
+
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.
  
  edit(Survey) -> Survey
+
  allSurvey() -> list<Survey>
Método que permite editar y finalizar la encuesta.
+
Método que devuelve todas las encuestas.
  
   allFinishSurvey() -> list<Survey>
+
   allFinishedSurvey() -> list<Survey>
 
Método que devuelve todas las encuestas finalizadas.
 
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===
 
===Trabajo Realizado===
Línea 70: Línea 221:
 
<li> Elegir un gestor de tareas para utilizar</li>
 
<li> Elegir un gestor de tareas para utilizar</li>
 
<li> Realizar las pruebas del gestor de tareas entre los miembros del grupo</li>
 
<li> Realizar las pruebas del gestor de tareas entre los miembros del grupo</li>
 +
10/11/2014
 +
<li> Definir como nos relacionamos a nivel de información de código con "La cabina de votación"</li>
 +
<li> Iteraciones de código</li>
 +
 +
17/11/2014
 +
<li>Integración con el grupo de Censo</li>
 +
<li>Puesta en común de código y funcionalidad</li>
 +
 +
23/11/2014
 +
<li>Integración con el grupo de Autenticación</li>
 +
<li>Puesta en común de código y funcionalidad</li>
 +
 +
30/11/2014
 +
<li>Integración con el grupo de Verificación</li>
 +
<li>Puesta en común de código y funcionalidad</li>
 +
 +
.../12/14
 +
<li>Integración con los grupos que usan nuestra funcionalidad</li>
 +
<li>Puesta en común de código y explicaciones</li>
 
</ul>
 
</ul>
  
 
===Trabajo por Realizar===
 
===Trabajo por Realizar===
<ul>
+
Terminar pequeños hilos sueltos de integración
15/10/2014
 
<li> Realizar las pruebas con otros grupos </li>
 
<li> Definir la gestión de ramas intergrupal </li>
 
</ul>
 
  
 
== Iteraciones ==
 
== Iteraciones ==
Línea 85: Línea 251:
 
* [[Iteración 3 (15/10/14) - Grupo de Creación/administración de votaciones - 14/15 | Iteración 3 (15/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 4 (20/10/14) - Grupo de Creación/administración de votaciones - 14/15 | Iteración 4 (20/10/14)]]
 +
* [[Iteración 5 (3/11/14) - Grupo de Creación/administración de votaciones - 14/15 | Iteración 5 (10/11/14)]]
 +
* [[Iteración 6 (10/11/14) - Grupo de Creación/administración de votaciones - 14/15 | Iteración 6 (17/11/14)]]

Revisión actual del 18:22 19 dic 2014

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