Diferencia entre revisiones de «Grupo Autenticación (2014-15)»

De Wiki de EGC
Saltar a: navegación, buscar
(Hojas de tiempo)
(Hojas de tiempo)
Línea 92: Línea 92:
 
=== Hojas de tiempo ===
 
=== Hojas de tiempo ===
 
Debido a que la hoja de tiempos del grupo empezaba a tener una longitud casi mayor que el resto del diario del grupo, hemos decidido pasarla a una página independiente. La hoja de tiempos está aquí: [[Hoja de tiempos grupo autenticación 2014-2015 | Hoja de tiempos]]
 
Debido a que la hoja de tiempos del grupo empezaba a tener una longitud casi mayor que el resto del diario del grupo, hemos decidido pasarla a una página independiente. La hoja de tiempos está aquí: [[Hoja de tiempos grupo autenticación 2014-2015 | Hoja de tiempos]]
 
 
{| border="1" style="border-collapse:collapse" class="wikitable sortable"
 
|-
 
! Fecha
 
! Tiempo (m)
 
! Miembro(s) del grupo
 
! Actividad
 
! Comentarios
 
|-
 
| 29/09/14
 
| 30
 
| Todos
 
| Reunión inicial
 
|
 
* Diseño del documento y las actas
 
* Tecnología a usar
 
* Métodos de comunicación
 
|-
 
| 30/09/14
 
| 30
 
| Daniel Ayala Hernández
 
| Redacción de acta
 
|
 
 
* Redacción del acta de la reunión del 29/09/14
 
|-
 
| 01/10/14
 
| 60
 
| Todos
 
| Diseño de la interfaz
 
|
 
* Identificación de subsistemas relacionados
 
* Identificación de servicios ofrecidos y consumidos
 
* Documentación inicial de la interfaz
 
|-
 
| 01/10/14
 
| 30
 
| Juan C. Roldán
 
| Redacción del diario de grupo
 
|
 
* Redacción en formato Wiki del diario de grupo
 
|-
 
| 01/10/14
 
| 30
 
| Juan C. Roldán
 
| Redacción de acta
 
|
 
* Redacción del acta de la reunión del 01/10/14
 
|-
 
| 06/10/14
 
| 20
 
| Todos
 
| Implementación inicial de funciones
 
|
 
* Identificación de las funciones principales del sistema
 
* Implementación de una versión inicial de dichas funciones
 
|-
 
| 07/10/14
 
| 15
 
| Daniel Ayala Hernández
 
| Redacción de acta
 
|
 
* Redacción del acta de la reunión del 06/10/14
 
|-
 
| 08/10/14
 
| 60
 
| Todos
 
| Realización de pruebas con el repositorio
 
|
 
* Realizar pruebas con el repositorio generando conflictos, haciendo merge, etc.
 
|-
 
| 10/10/14
 
| 50
 
| Juan C. Roldán
 
| Redacción de acta
 
|
 
* Redacción del acta de la reunión del 08/10/14
 
|-
 
| 10/10/14
 
| 50
 
| Juan C. Roldán
 
| Reestructuración
 
|
 
* Paso de organización por actas a organización por iterables
 
* Renombrado y pequeñas modificaciones de gran parte del espacio del grupo
 
|-
 
| 14/10/14
 
| 90
 
| Daniel Ayala Hernández
 
| Programación
 
|
 
* Preparación del servidor y la base de datos MySQL con XAMPP
 
* Creación de las primeras funciones de acceso a la base de datos
 
|-
 
| 15/10/14
 
| 90
 
| Todos
 
| Práctica
 
|
 
* Desarrollo de la práctica 1 en clases.
 
|-
 
| 15/10/14
 
| 50
 
| Juan C. Roldán
 
| Reestructuración
 
|
 
* Realización de las tareas de reestructuración realizadas el 10/10/2014 de nuevo, debido al rollback de la wiki
 
|-
 
| 15/10/14
 
| 40
 
| Daniel de los Reyes Leal
 
| Redacción de acta
 
|
 
* Redacción del acta de la reunión del 15/10/14.
 
|-
 
| 15/10/14
 
| 20
 
| Fidel Mazo Delgado
 
| Código
 
|
 
* Realización de register.php
 
|-
 
| 20/10/14
 
| 40
 
| Alejandro Sánchez Medina
 
| Programación
 
|
 
* Corrección de un método de petición a la base de datos.
 
* Preparación de los archivos para soportar una API
 
* Creación de la estructura básica para la gestión de las peticiones a la API
 
* Implementación de un primer método de ejemplo que devuelve un JSON.
 
|-
 
| 20/10/14
 
| 30
 
| Daniel de los Reyes Leal
 
| Redacción de acta
 
|
 
* Redacción del acta de la reunión del 20/10/14.
 
|-
 
| 21/10/14
 
| 25
 
| Daniel Ayala Hernández
 
| Redacción de entregable
 
|
 
* Redacción de las decisiones tomadas como parte del entregable correspondiente al taller del 20/10/14.
 
|-
 
| 22/10/14
 
| 40
 
| Todos
 
| Práctica
 
|
 
* Desarrollo de la práctica 2 en clase.
 
|-
 
| 23/10/14
 
| 60
 
| Juan C. Roldán
 
| Formato
 
|
 
* Adaptación del formato de la wiki al establecido por consenso
 
* Aviso en las páginas perdidas debido al rollback, de que están a la espera de su recuperación
 
|-
 
| 27/10/14
 
| 70
 
| Todos
 
| Planificación de gestión del código fuente
 
|
 
* Decisión de la política de branches del grupo.
 
* Discusión sobre el uso de un repositorio compartido.
 
|-
 
| 27/10/14
 
| 15
 
| Fidel Mazo Delgado
 
| Redacción de acta
 
|
 
* Realización del acta de la reunión del 27/10/14
 
* Actualización de los miembros del grupo.
 
|-
 
| 27/10/14
 
| 60
 
| Todos
 
| Gestión de código
 
|
 
* Creación del apartado de gestión de código del documento final del trabajo
 
|-
 
| 27/10/14
 
| 40
 
| Juan C. Roldán
 
| Organización
 
|
 
* Creación de la página de ProjEtsii a usar como propuesta de modificación
 
* Invitación a la misma a los miembros de cada grupo
 
* Anuncio de los cambios en el [[Espacio_com%C3%BAn_%282014-15%29#Espacio_de_comunicaci.C3.B3n_propuesto | espacio común]]
 
|-
 
| 27/10/14
 
| 20
 
| Alejandro Sanchez Medina
 
| Organización
 
|
 
* Publicación del conflicto en el foro de projETSII
 
* Añadidas las fechas a las actas e iteraciones
 
* Añadidos eventos a la hoja de tiempos
 
|-
 
| 28/10/14
 
| 25
 
| Juan C. Roldán
 
| Formato
 
|
 
* Añadir la fecha a las actas
 
* Redacción del Acta del taller de gestión de código III (24/10/2014)
 
|-
 
| 30/10/14
 
| 10
 
| Daniel de los Reyes Leal
 
| Redacción de acta
 
|
 
* Redacción del acta de la práctica 3 del 30/10/14.
 
|-
 
| 02/11/14
 
| 30
 
| Todos
 
| Elaboración de preguntas
 
|
 
* Elaboración de las preguntas que se harán por chat IRC al equipo de Agora Voting.
 
|-
 
| 01/11/14
 
| 90
 
| Daniel Ayala Hernández
 
| Programación
 
|
 
* Creación de ficheros relacionados con el login.
 
|-
 
| 03/11/14
 
| 80
 
| Todos
 
| Jornadas
 
|
 
* Formación de los grupos de jornadas de EGC.
 
* Planificación del programa de las jornadas.
 
|-
 
| 05/11/14
 
| 40
 
| Alejandro Sánchez Medina
 
| Redacción de actas
 
|
 
* Redacción del acta de la planificación de Jornadas I del 03/11/2014 y de la práctica 4 del 05/11/2014
 
|-
 
| 05/11/14
 
| 25
 
| Daniel Ayala Hernández
 
| Creación de repositorio
 
|
 
* Creación de un nuevo repositorio a compartir por varios grupos.
 
* Traslado del trabajo anterior al nuevo repositorio.
 
|-
 
| 06/11/14
 
| 15
 
| Daniel Ayala Hernández
 
| Creación de branches
 
|
 
* Creación de ramas para la expansión de la API y la creación de la interfaz de autenticación.
 
|-
 
| 09/11/14
 
| 50
 
| Daniel Ayala Hernández
 
| Programación
 
|
 
* Eliminación de bugs relacionados con la sobrecarga de métodos y el acceso a valores del resultado de una consulta.
 
* Expansión de la API. Añadidos métodos relacionados con la validación de un token.
 
|-
 
| 10/11/14
 
| 45
 
| Todos
 
| Integración de subsistemas
 
|
 
* Primer intento de integración de todos los subsistemas desarrollados.
 
|-
 
| 11/11/14
 
| 20
 
| Daniel Ayala Hernández
 
| Redacción de actas
 
|
 
* Redacción del acta de la reunión del 10/11/14.
 
|-
 
| 13/11/14
 
| 10
 
| Daniel de los Reyes Leal
 
| Redacción de actas
 
|
 
* Redacción del acta de la práctica 5 del 12/11/14.
 
|-
 
| 15/11/14
 
| 60
 
| Alejandro Sánchez Medina
 
| Programación
 
|
 
* Creación del formulario de login y corrección de varios bugs.
 
|-
 
| 17/11/14
 
| 180
 
| Juan C. Roldán
 
| Realización de iteración
 
|
 
* Comunicación con el grupo Modificación de resultados para aclarar aspectos de la integración
 
* Propuesta de un plan inicial de integración
 
* Documentación del [[Iteración de propuesta de integración (Autenticación 2014-15)|plan inicial de integración]]
 
|-
 
| 18/11/14
 
| 150
 
| Daniel Ayala Hernández
 
| Integración
 
|
 
* Prueba de uso simultáneo de varios servidores en un mismo ordenador con diferentes puertos.
 
|-
 
| 20/11/14
 
| 30
 
| Todos
 
| Integración
 
|
 
* Toma de decisiones relacionadas con la integración continua.
 
|-
 
| 20/11/14
 
| 40
 
| Alejandro Sánchez Medina
 
| Programación
 
|
 
* Corrección de bugs en el script de creación de base de datos.
 
* Corrección de un bug en el fichero auth.php
 
|-
 
| 21/11/14
 
| 12
 
| Daniel de los Reyes Leal
 
| Redacción de actas
 
|
 
* Redacción del acta de la práctica 6 del 19/11/14.
 
|-
 
| 23/11/14
 
| 60
 
| Alejandro Sánchez Medina
 
| Programación
 
|
 
* Realización de la interfaz de usuario del registro de usuarios
 
* Realización de la comprobación del formulario en cliente
 
|}
 
  
 
=== Actas ===
 
=== Actas ===

Revisión del 18:50 23 nov 2014

Definición

Un subsistema de AGORA@US para autenticar usuarios y controlar quién puede votar y quién ya ha votado para evitar multiples votos de la misma persona. Este sistema tiene que ofrecer una api clara y sencilla para que otras partes del sistema puedan usarlo. Un sistema básico podría ser uno basado en un censo cerrado usando como identificador el correo electrónico. El sistema de autenticación tiene que ofrecer métodos para:

  • Saber si un usuario determinado ha votado ya
  • Realizar una prueba de verificación de identidad
  • Marcar un usuario como que ya ha votado

Miembros

Interfaz del sistema

El sistema de autenticación se encargará de realizar la autenticación del usuario antes de que este acceda al resto de la aplicación. Para que quede constancia de su estado como autenticado, se almacenarán en su navegador 2 cookies:

  • Una con identificador "user", en la que se almacenará el nombre de usuario autenticado.
  • Una con identificador "token", en la que se almacenará un token generado a partir de su nombre de usuario y contraseña.

Siempre que se desee comprobar que el usuario accediendo a una funcionalidad está correctamente autenticado, se debe comprobar que el token almacenado en la cookie es el correcto. Para ello se ofrecen métodos en la APi descrita a continuación:

API

El subsistema de autenticación ofrecerá una API REST en una URL todavía por decidir. En esta API, todas las peticiones serán GET, y habrá un único parámetro obligatorio: "method", para indicar el método de la API usado. Los métodos disponibles son los siguientes:

Método(parámetro method) Descripción Parámetros adicionales Respuesta Ejemplo de respuesta
getUsers Obtiene una lista de todos los usuarios del sistema, incluyendo sus datos. - Json con la lista de usuarios. Cada usuario incluye los campos "username", "password" y "email". (Informacióna ser extendida con el resto de datos del modelo) [{"username":"name1","password":"pass1","email":"mail1"}] (Informacióna ser extendida con el resto de datos del modelo)
checkToken Comprueba si un token es válido. Para ello, se obtiene el usuario correspondiente al token (indicado al comienzo del token), se genera el token del usuario y se comprueba si es igual que el pasado como parámetro.
  • token: token a validar.
Json con el campo "valid" indicando la validez del token (true/false). {"valid"=true}
checkTokenUser Comprueba si un token es válido para un usuario. Para ello, se obtiene el usuario pasado como parámetro, se genera el token del usuario y se comprueba si es igual que el pasado como parámetro.
  • user: nombre del usuario cuyo token se va a comprobar.
  • token: token a validar.
Json con el campo "valid" indicando la validez del token (true/false). {"valid"=true}

Si en una petición no se pasan unos parámetros correctos (métodos que no existen o falta de parámetros necesarios) se devolverá un error de código 400 con el siguiente mensaje: "Bad Request. This method doesn't exist or the necessary paramenters weren't provided"

Subsistemas relacionados

  • Cabina de votación: Comprobará que los usuarios que voten estén autenticados.
  • Censo: Al marcar a un usuario como votado, el sistema de autenticación deberá comprobar si dicho usuario pertenece al censo de la votación.
  • Creación/administración de votaciones: Deberá comprobar que sus usuarios estén logueados en la aplicación.
  • Deliberaciones: Deberá comprobar que sus usuarios estén logueados en la aplicación.

Repositorio de código

Todo el código realizado durante el desarrollo de la asignatura se encuentra en el repositorio del Grupo de Autenticación Gestión de la comunicación

Toda la comunicación se lleva a cabo presencialmente en horario de clase, y de forma remota mediante el uso de herramientas de voz sobre IP (Skype).

El diario de grupo se mantendrá en esta wiki, y las actas se irán publicando como páginas individuales dentro del diario de grupo.

En el caso de compartir código, se mantendrá en un repositorio de ProjEtsii.

Iteraciones

Son susceptibles de entrar en esta categoría aquellos trabajos en clase que tengan un entregable. Para ver las actas de otros entregables, ver el diario de grupo.

Diario de grupo

Hojas de tiempo

Debido a que la hoja de tiempos del grupo empezaba a tener una longitud casi mayor que el resto del diario del grupo, hemos decidido pasarla a una página independiente. La hoja de tiempos está aquí: Hoja de tiempos

Actas