Recuento de votos - 17 18 - G1

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

Miembros

  • Ronda Lucena, Arturo
  • Roldán Sánchez, Pablo
  • Rodriguez Martin, Javier
  • De Tovar Vázquez, Ernesto
  • Acha Burgos, Alvaro
  • Huertas Vera, Francisco Javier

Consideraciones

  • Debe comunicarse con otros submódulos para obtener los votos almacenados.
  • Debe comunicarse con otros submódulos para entregar los resultados.
  • Repositorio donde puede encontrarse el código:

https://github.com/AgoraUS-G1-1617/Almacenamiento

Objetivo del subsistema

Su objetivo principal es realizar el recuento de los votos una vez haya acabado la votación y entregar los resultados. Como objetivos adicionales se añade el hecho de dar soporte a distintos formatos de votaciones.

Enlaces

Enlaces de interés para acceder a la información sobre nuestro módulo:.

  • El repositorio de GitHub del equipo será accesible en el siguiente enlace
  • Puede acceder a nuestro proyecto en Opera en el siguiente enlace

  • Gestión del trabajo

    La gestión del trabajo y la asignación de tareas se realizara mediante el sistema de Issues de Github. Se crearan 4 tableros para la organización de las tareas:

       * TO DO:en este tablero se añadirán las issues que vayamos creando y que no estén asignadas ni realizadas aún.
       * En progreso:  en este tablero estarán las issues asignadas que están en proceso de ejecución.
       * Done: en este tablero estarán las issues ya terminadas
       * No procede: en este tablero estarán las issues que no proceda que sean realizadas para el desarrollo del trabajo
    

    Gestión de la comunicación

    La comunicación se realizará a través de un grupo de Telegram conformado por todos los miembros del equipo. Las reuniones presenciales se realizarán en aulas habilitadas o salas en la biblioteca.

    Gestión del código

    La gestión del código se realizará mediante de GitHub. Tendremos un repositorio en el cual habrá dos ramas, la rama de develop, y la rama de master. En la rama de develop se actualizara el contenido para el desarrollo de el proyecto conforme vaya siendo realizado por los integrantes. En la rama de master se añadirán versiones estables de proyecto, con las que el equipo de integración deberá trabajar para evitar fallos de la rama de develop.


    Gestión de incidencias

    Usaremos la herramienta que nos ofrece Github para el control de las incidencias que vayan surgiendo en nuestro proyecto.

    Herramientas

    Subsistema: Recuento de votos

    Lenguaje/Herramienta: Python 3;
    Lenguaje/Herramienta: Django 1.11.7;  
    Sistema de gestión de bibliotecas: pip
    Bibliotecas: 
       mysql-connector: 2.1.6
       djangorestframework : 3.7.3
    Base de datos:  MariaDB
    


    API

    Para la adquisición de resultados de accedera con una url con el formato

           -  /recvotes/{pollID}
    

    Esta petición get nos devolvera un json con el siguiente formato

            [
     {
       "title": "title1",
       "description": "description1",
       "optional": (true or false),
       "multiple": (true or false),
       "questionoption_set": [
         {
           "description": "description1",
           "result": x
         }
         {
           "description": "description2",
           "result": x
         }
       ]
     },
      {
       "title": "title2",
       "description": "description2",
       "optional": (true or false),
       "multiple": (true or false),
       "questionoption_set": [
          {
           "description": "description1",
           "result": x
         }
         }
       ]
     },
    .
    .
    .
      {
       "title": "titlen",
       "description": "descriptionn",
       "optional": (true or false),
       "multiple": (true or false),
       "questionoption_set": [
          {
           "description": "description1",
           "result": x
         }
         }
       ]
     },
    

    La Api es susceptible de cambiar en el futuro, para añadir distintos modelos de conteo o nuevas funcionalidades, en caso de actualización, sera reflejado aquí en cuanto el modelo de conteo se encuentre estable.

    Modelado de datos

    Recogeremos los datos necesarios para el recuento de la base de datos principal a través de la Id de la votación, extraeremos la información y se almacenara en la base de datos Django que utilizaremos para realizar el recuento. La información extraída seran los votos, la pregunta, las opciones de cada pregunta y las OptionPerVote de cada opción de pregunta.

    - Tabla poll:

           - id:  identificador de la encuesta
           - title: titulo o nombre de la encuesta
           - description: descripción de la encuesta
         
    

    - Tabla pregunta:

           - id:  identificador de la pregunta
           - title: titulo o nombre de la pregunta
           - description: descripción de la encuesta
           - optional: descripción de la encuesta
           - multiple: descripción de la encuesta
           - poll: la encuesta a la que hace referencia
       
    

    - Tabla optionPerVote:

           - id:  identificador de la optionPerVote
           - question_option: opción elegida para pregunta
           - vote: voto que ha elegido esa opción
       
    

    Dependencias

    Este módulo tiene dependencias con los siguientes subsistemas:

    • Almacenamiento de votos: el modulo de almacenamiento deberá proporcionarnos los votos e información sobre el modelo de votación una vez haya acabado la votación para poder realizar el recuento.
    • Visualización: el modulo de visualización necesitara que le proporcionemos los resultados e información sobre el modelo de votación una vez haya acabado el recuento.


    Repositorio de GitHub

    El repositorio de GitHub del equipo será accesible en este enlace