Diferencia entre revisiones de «RecuentoDeVotos-G1-2-17-18»

De Wiki de EGC
Saltar a: navegación, buscar
 
(No se muestran 8 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 
[[Página_Principal]] -> [[2017/2018]] -> [[Trabajo - 17/18]] -> [[M6-17 18]] -> [[Zona entrega de proyectos - 17/18]]
 
[[Página_Principal]] -> [[2017/2018]] -> [[Trabajo - 17/18]] -> [[M6-17 18]] -> [[Zona entrega de proyectos - 17/18]]
  
== Documentación ==
+
* [https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1/blob/develop/RECUENTO%20DE%20VOTOS-documeto%20del%20proyecto-G1.pdf Documento del proyecto] (Guardado en [https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1 GitHub])
* [http://1984.lsi.us.es/wiki-egc/images/egc/7/7d/TrabajoEGC_17_18.pdf Documento del proyecto] (ponga aquí el enlace al documento del proyecto)
+
* [https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1/blob/develop/Diario%20de%20Grupo.pdf Diario del grupo] (Guardado en [https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1 GitHub])
* [https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1/blob/develop/Diario%20de%20Grupo.pdf Diario del grupo] (ponga aquí el enlace al diario del grupo)
+
 
 +
 
 +
Aclaraciones:
 +
    La entrega la realizará un subgrupo del grupo de Recuento de Votos del G1. El subgrupo está compuesto por los miembros Ernesto de Tovar Vázquez y
 +
    Francisco Javier Huertas Vera. El proyecto es el mismo de la primera convocatoria solo que se ha realizado unas mejoras para la segunda convocatoria.
 +
   
  
== Aclaraciones ==
 
* El proyecto es el mismo de la primera convocatoria solo que se ha realizado unas mejoras para la segunda convocatoria.
 
  
 
== Participantes en la entrega ==
 
== Participantes en la entrega ==
Línea 20: Línea 23:
 
Mecanismo de encriptación y desencriptación de los votos mediante el cifrado RSA.
 
Mecanismo de encriptación y desencriptación de los votos mediante el cifrado RSA.
 
Desarrollo de los tipos Borda Nauru, Borda Simple y Borda Personalizado.
 
Desarrollo de los tipos Borda Nauru, Borda Simple y Borda Personalizado.
 +
  
 
== Objetivo del subsistema ==
 
== Objetivo del subsistema ==
 
Su objetivo principal es realizar el recuento de los votos una vez haya acabado la votación y entregar los resultados.
 
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.
 
Como objetivos adicionales se añade el hecho de dar soporte a distintos formatos de votaciones.
 +
  
 
== Enlaces ==
 
== Enlaces ==
 
 
Enlaces de interés para acceder a la información sobre nuestro módulo:.
 
Enlaces de interés para acceder a la información sobre nuestro módulo:.
 
<li>El repositorio de GitHub del equipo será accesible en el siguiente [https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1 enlace]</li>
 
<li>El repositorio de GitHub del equipo será accesible en el siguiente [https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1 enlace]</li>
Línea 34: Línea 38:
  
 
== Gestión del trabajo ==
 
== Gestión del trabajo ==
 
 
La gestión del trabajo y la asignación de tareas se realizara mediante el sistema de Issues de Github.
 
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:
 
Se crearan 4 tableros para la organización de las tareas:
Línea 41: Línea 44:
 
     * Done: en este tablero estarán las issues ya terminadas
 
     * 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
 
     * 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 ==
 
== 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.
  
La comunicación se realizará a través de un grupo de Telegram conformado por todos los miembros del equipo.
 
  
 
== Gestión del código ==
 
== Gestión del código ==
 
 
La gestión del código se realizará mediante de GitHub.
 
La gestión del código se realizará mediante de GitHub.
 
Tendremos un repositorio en el cual habrá dos ramas principales, la rama de develop y la rama de master, y las ramas de cada miembro.
 
Tendremos un repositorio en el cual habrá dos ramas principales, la rama de develop y la rama de master, y las ramas de cada miembro.
Línea 56: Línea 59:
  
 
== Gestión de incidencias ==
 
== Gestión de incidencias ==
 +
Usaremos la herramienta que nos ofrece Github para el control de las incidencias que vayan surgiendo en nuestro proyecto.
  
Usaremos la herramienta que nos ofrece Github para el control de las incidencias que vayan surgiendo en nuestro proyecto.
 
  
 
== Herramientas ==
 
== Herramientas ==
 
 
'''Subsistema''': Recuento de votos
 
'''Subsistema''': Recuento de votos
 
  '''Lenguaje/Herramienta''': Python 3;
 
  '''Lenguaje/Herramienta''': Python 3;
Línea 72: Línea 74:
  
 
== API ==
 
== API ==
 
 
Para la adquisición de resultados de accedera con una url con el formato
 
Para la adquisición de resultados de accedera con una url con el formato
 
         -  /recvotes/{pollID}
 
         -  /recvotes/{pollID}
Línea 124: Línea 125:
  
 
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.
 
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 ==
 
== 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.
 
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.
 
La información extraída seran los votos, la pregunta, las opciones de cada pregunta y las OptionPerVote de cada opción de pregunta.

Revisión actual del 12:13 9 sep 2018

Página_Principal -> 2017/2018 -> Trabajo - 17/18 -> M6-17 18 -> Zona entrega de proyectos - 17/18


Aclaraciones:

   La entrega la realizará un subgrupo del grupo de Recuento de Votos del G1. El subgrupo está compuesto por los miembros Ernesto de Tovar Vázquez y 
   Francisco Javier Huertas Vera. El proyecto es el mismo de la primera convocatoria solo que se ha realizado unas mejoras para la segunda convocatoria.
   


Participantes en la entrega

  • Francisco Javier Huertas Vera.
  • Ernesto De Tovar Vázquez.


Repositorio de GitHub

https://github.com/Proyecto-EGC-G1/RecuentoVotos-EGC-G1


Objetivo de la entrega

Mecanismo de encriptación y desencriptación de los votos mediante el cifrado RSA. Desarrollo de los tipos Borda Nauru, Borda Simple y Borda Personalizado.


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.


    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 principales, la rama de develop y la rama de master, y las ramas de cada miembro. 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. En las ramas de cada miembro, que se llamarán como ellos (ernesto o javih), las utilizará cada miembro para desarrollar las mejoras y luego se mergeará con la rama develop mediante Pull Request.


    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
           - order: orden de preferencia