Grupo Creación/administración de votaciones(2014-15)
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.
Contenido
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: [Drive]
- Definir la interfaz del sistema
- Preparar el entorno de desarrollo
- Analizar el gestor de tareas "Github"
- Preparar gestor de tareas
- Elegir un gestor de tareas para utilizar
- Realizar las pruebas del gestor de tareas entre los miembros del grupo
- Definir como nos relacionamos a nivel de información de código con "La cabina de votación"
- Iteraciones de código
- Integración con el grupo de Censo
- Puesta en común de código y funcionalidad
- Integración con el grupo de Autenticación
- Puesta en común de código y funcionalidad
- Integración con el grupo de Verificación
- Puesta en común de código y funcionalidad
- Integración con los grupos que usan nuestra funcionalidad
- Puesta en común de código y explicaciones
06/10/14
07/10/14
15/10/2014
20/10/2014
10/11/2014
17/11/2014
23/11/2014
30/11/2014
.../12/14
Trabajo por Realizar
Terminar pequeños hilos sueltos de integración