Projecte Vota - Especificacions

De Wiket
Salta a la navegació Salta a la cerca
Vota3.jpeg

En aquest projecte crearem un portal per a organitzacions que requereixin votacions, típicament (però no només) partits polítics, ajuntaments, etc.

Introducció

Alguns referents:

  • loomio.org


Requeriments

Es vol un sistema de votació que compleixi amb els següents requeriments mínims:

  • Ha de permetre crear consultes.
  • Les consultes poden ser binàries (Si/No), binàries amb abstenció, o amb un nombre finit de respostes tancades.
  • Ha de permetre convidar persones a una consulta via correu electrònic.
  • L'usuari ha de poder veure el vot que ha emès per una consulta, i si vol, canviar-ho.
  • Per seguretat, els administradors poden veure els vots totals però no poden veure qui emet cada vot, ni tan sols si tenen accés a la base de dades. Cal un sistema de protecció de la privacitat.

Requeriments optatius:

  • Implementar un sistema de delegació de vot. Els usuaris convidats a una consulta poden delegar el seu vot en una tercera persona de confiança. El vot del convidat serà, doncs, el mateix que el de la persona sobre la que es delega.


Especificacions funcionals

  1. Els usuaris administradors poden:
    1. Crear consultes (pregunta, opcions de resposta i les dates d'obertura i tancament)
    2. Convidar votants via correu electrònic
    3. Publicar o amagar els resultats de les consultes
    4. Esborrar consultes
    5. Crear agendes de votants (llistes d'emails)
  2. Els usuaris votants:
    1. Rebran una invitació via email quan un administrador els convidi a una consulta
    2. Quan accedeixin per primer cop se'ls crearà un compte de votant associat al correu electrònic
    3. Tindran l'opció de recuperar contrasenya via email
    4. Poden veure les consultes obertes pendents
    5. Poden veure un historial de les consultes a les que se'ls ha convidat
    6. Poden verificar el vot efectuat
    7. Poden modificar el seu vot sempre i quan no s'hagi tancat la consulta
  3. Extra (afegits)
    1. Es podran visualitzar estadístiques de les votacions: % de votació de cada opció, nombre de vots, etc.
    2. L'administrador podrà publicar o amagar els resultats de les votacions.
    3. Home page: llistat de les votacions públiques en curs i/o finalitzades (l'administrador decideix si la seva votació és pública o no)


Especificacions no-funcionals

El projecte es realitzarà amb PHP i llibreries PDO.


Valoració

Recordeu que part de la nota d'aquest projecte es entregar la documentació asociada a la gestió del projecte amb SCRUM.

  1. Actes de les Daily Scrum Meeting (reunions diaries per respodre a les preguntes: ¿Què he fet el dia anterior?, ¿Què faré avui?, ¿Quins problemes em puc trobar?
  2. Taula de representació del moviment dels post-its que representen les tasques i les persones
  3. Retrospectiva, explicació y valoració global del projecte. Coses que hem fet bé, coses que hem fet malament, que hem de fer per millorar.

Sprint 1

  • M6 : programació client (prohibit utilitzar jQuery)
    • En l'apartat creació de consulta s'han d'implementar les validacions següents:
      • La pregunta no pot ser buida
      • Al menys han d'existir 2 opcions de resposta
      • Cap opció de resposta pot ser buida
      • La data de obertura no pot ser buida
      • La data de tancament no pot ser buida
      • La data d'obertura ha de ser posterior al dia actual
      • La data d'obertura ha de ser anterior a la data de tancament
      • El temps de votació ha de ser com a mínim d'un dia
      • Les dates només tindrán en compte dies (no hores, ni minuts)
    • En accedir a la pàgina creació d'una consulta mitjançant un botó crearem un label i una caixa de text per la pregunta i uns labels i caixes de text per introduir la data d'obrtura i de tancament de la consulta
    • Una vegada existeixi el label i la caixa de text de la pregunta es crearà un botó per crear respostes
    • Es creará un botó per esborrar totes les respostes
    • Es creará un botó per enviar les dades al servidor
    • Cada resposta consta de:
      • Label amb la informació resposta "num de la resposta", caixa de text per introduir la resposta
    • Si qualsevol caixa de text en perdre el focus es buida s'ha de enmarcar en vermell amb un text indicatiu
    • En l'apartat de votació:
      • La pregunta ha d'apareixer directament pero les respostes han d'apareixer amb un efecte de deslliçament
  • M7 : programació servidor
    • Veure les especificacions funcionals (més amunt)
    • Per començar a treballar en equip, es recomana començar per aquestes tasques:
      • Fer login/logout i que ens mostri en tot moment quin usuari som
      • Crear consultes i votar
  • M9 : disseny d'interfície
    • Afegir un "logo" fet per vosaltres (gràfic vectorial o no).
    • Crear un "banner" dissenyat per vosaltres.
    • Afegir un efecte dinàmic a la pàgina (neu que cau, etc. Indicar si s'ha fet amb CSS3 o amb Javascript).
    • NOTA: recordeu anar desant els diferents fitxers en format original .xcf, .svg, etc). Es valorarà positivament l'ús d'un disseny responsive en aquest sprint.

Sprint 2

  • M6 : programació client (prohibit utilitzar jQuery)
    • Crear botó de esborrar resposta / Crear botó de esborrar TOTES les respostes
    • Crear botó per pujar una resposta
    • Crear botó per baixar una resposta
    • Les dates d'obertura i tancament ara han de contemplar hores
    • Un consulta como a mínim ha de durar 4 hores
  • M7 : programació de servidor
    • Crear usuaris standart (només poden votar a les consultes. Crear usuaris admin que poden crear consultes i veure el resultat de les votacions
    • Crear una pàgina on es mostrin totes les consultes que te disponibles l'usuari, en clicar a una consulta accedirem a l'apartat per realitzar la votació
    • En la pàgina de visualització de consultes diferenciar les consultes en les que l'usuari ha realitzat la votació i les que no
    • Encriptació de dades
  • M9 : disseny d'interfície

...

  • Extras
    • Permitir crear consultes amb respostes múltiples o respostes úniques
    • Botón extra ++