Skip to content
ultraklon edited this page Mar 16, 2013 · 15 revisions

#Entidades

##Usuario

  • cadena: nombre
  • email: email
  • cadena encriptada: contraseña
  • numero: documento de identidad
  • imagen: avatar
  • si/no: es legislador
  • si/no: validado
  • lista Usuario: validados

##Proyecto

  • cadena: titulo
  • texto largo: contenido
  • Usuario: autor
  • si/no: creacion propia
  • lista cadena: links
  • fecha/hora: creacion
  • fecha/hora: cierre edicion
  • fecha/hora: cierre votacion
  • lista Usuario: voto positivo
  • lista Usuario: voto negativo

Mensaje

  • cadena: texto
  • Proyecto: proyecto
  • Usuario: autor

Flujos (ToDo)

Ingreso a la pagina

Cuando un usuario ingrese en la pagina, lo primero que vera es una Portada y la caja de login. Si se loguea con exito, ira entonces a la pantalla Principal Usuario Si se intenta loguear si exito, permanecera en la misma pantalla Si intenta crear una nueva cuenta, ira a Alta Usuario ##Alta Usuario Cuando un usuario ingreese en esta pantalla, si cancela, volvera a la Portada, si crea un usuario de manera exitosa, ira a la pantalla Principal Usuario ##Logout Usuario Si el usuario presiona Salir desde el Panel Usuario, se mostrara la Portada

#Pantallas y eventos

##Portada Portada

Es la primer pantalla que se ve al ingresar al programa, consta de dos partes

  • Noticias: un lugar en donde se mostraran articulos y anuncios (ToDo)
  • Login o Panel Usuario: este lugar mostrara distinto contenido segun si el usuario esta logueado o no:
  • si el usuario no esta logueado, se mostrara la pantalla Login
  • si el usuario esta logueado, se mostrara la pantalla Panel Usuario

##Login Login

El objetivo de esta pantalla, es permitir al Usuario ingresar al sistema con sus credenciales

  • al hacer click en “Hace click aqui...”, se presentara la pantalla “Alta usuario”
  • al hacer click en Ingresar, se verificara en el cliente las siguientes condiciones, mostrando un mensaje de error en caso de no tener exito:
  • que el email no este vacio y tenga formato de email
  • que la contraseña no sea vacia
  • luego de realizar las validaciones del boton “Ingresar” en el cliente, se verificara en el servidor la siguiente condicion, mostrando un mensaje de error en caso de no tener exito:
  • que el par email/contraseña sea valido
  • luego de validar el ingreso:
  • si no es exitoso, se mostrara un mensaje de error en el ingreso
  • si es exitoso, se cambiara el estado del usuario a Logueado y se mostrara la pantalla “Principal Usuario”

Alta Usuario

Alta Usuario

El fin de esta pantalla es permitir la creacion de un Usuario del sistema

  • Al hacer click en “examinar...”, se presentara una ventana de exploracion de archivos, en caso de seleccionar uno valido, el nombre del mismo se establecera a cambio del texto del boton en cuestion; si no es exitosa la seleccion del archivo, se mostrara un mensaje de error; si se cancela la pantalla de exploracion, se cerrara sin afectar nada
  • Si se presiona el boton “Cancelar”, se mostrara nuevamente la Portada
  • Al presionar el boton “Aceptar” se realizaran las siguientes validaciones en el cliente, en caso de no ser exitosas, se mostrara un mensaje de error:
  • Se validara que ningun campo sea vacio
  • Se validara que el formato del campo “Email” sea correcto
  • Se validara que la “Contraseña” coincida con “Confirme”
  • Si las validaciones en el cliente, del boton “Aceptar” son exitosas, se realizaran las siguientes acciones en el servidor, es este orden, mostrando un mensaje en caso de error:
  • se verificara que el Email no exista para otra entidad en la base de datos
  • se verificara que el Documento no exista para otra entidad en la base de datos
  • se guardara la entidad con los nuevos datos en la base de datos
  • se mostrara la Portada

notar que no existe un lugar para el campo “Es Legislador” este se manipulara por sistema en las primeras versiones

Panel Usuario

Panel Usuario

El objetivo de este panel es darle al usuario la posibilidad de modificar su estado de sesion y configuraciones. La visualizacion de este panel, indica que el usuario ha ingresado al sistema con su contraseña

  • En “Nombre Usuario” se mostrara siempre el nombre del usuario logueado
  • Si se presiona “Salir” se cambiara el estado del usuario a No Logueado y se mostrara la Portada

Principal Usuario

Principal Usuario

Esta pantalla tiene como fin reunir 3 partes importantes y servir como layout para la interaccion con el sistema; las opciones seleccionadad en “Menu Navegacion” por lo general tendran efecto en “Area Contenido”, este area no es una pantalla en si entonces, si no un contendedor de pantallas.

Menu Navegacion

Menu Navegacion

La pantalla tiene como funcion, permitir al Usuario la navegacion por el sitio, el presionar un boton de los presentados, implica un cambio en el contenido del Area Contenido los botones son:

  • Mis Proyectos: muestra la pantalla Mis Proyectos
  • Proyectos Creados: muestra la pantalla Proyectos Creados
  • Proyectos a votar: muestra la pantalla Proyectos a Votar
  • Crear Proyecto: solo se muestra si el usuario es un usuario Validado, muestra la pantalla Crear Proyecto en modo CreacionN
  • Subir Proyecto a votacion: este boton solo es visible si el usuario Es Legislador, al presionarlo, muestra la pantalla Crear Proyecto en modo CreacionV

Listado Proyectos

Listado Proyecto

Esto es una plantilla (template) para las pantallas que contengan listados de proyectos, siempre se va a llegar a una implementacion de esta pantalla, nunca a ella en si misma

  • Si se hace click en “Buscar”, el listado de proyectos mostrados, se sustituira con el resultado de los tres conjuntos siguientes en el orden mencionado, sin repetir entidades en la lista:
  • Proyectos que coincidan con lo ingresado en la caja de busqueda, en su totalidad o en parte en el campo Autor
  • Proyectos que coincidan con lo ingresado en la caja de busqueda, en su totalidad o en parte en el campo Titulo
  • Proyectos que coincidan con lo ingresado en la caja de busqueda, en su totalidad o en parte en el campo Contenido
  • Si se presiona Titulo, se ordenaran los proyectos listados por orden alfabetico ascendente, si se presiona una segunda ve, se cambiara el orden alfabetico a descendente
  • Si se presiona Autor, se ordenaran los proyectos listados por orden alfabetico ascendente, si se presiona una segunda ve, se cambiara el orden alfabetico a descendente
  • El listado mostrara como maximo 30 resultados de busqueda, siendo los mismos paginados en caso de superar el numero
  • Al hacer click en el titulo de algun proyecto, se mostrara en Area Contenido:
  • si puedo editar el proyecto, la pantalla Crear Proyecto en modo EdicionN
  • si lo subi para votacion, la pantalla Crear Proyecto en modo EdicionV
  • si lo puedo votar al proyecto, la pantalla Ver Proyecto modo V
  • si solo puedo ver el resultado del proyecto, Ver Proyecto modo R

Mis proyectos

Pantalla basada en Listado Proyectos, solo se listaran proyectos que cumplan con al menos una de estas condiciones, en este orden y sin repetir proyectos

  • haya creado el usuario actual
  • haya subido para votacion el usuario actual
  • haya comentado el usuario actual
  • haya votado el usuario acutal

Proyectos creados

Pantalla basada en Listado Proyectos, solo se listaran proyectos que haya creado el usuario actual o lo haya subido para votacion

Proyectos a votar

Pantalla basada en Listado Proyectos, solo se listaran proyectos que esten subidos para votacion y en etapa de ser votados

Crear Proyecto

Crear Proyecto

El proposito de esta pantalla, es brindar la posibilidad de crear o modificar un proyecto. La misma va a tener 4 modos CreacionN, CreacionV, EdicionN y EdicionV; el modo habilita o deshabilita funcionalidades y campos

  • En modo CreacionN, el boton “Ver proyecto en modo publico” no se mostrara
  • En modo CreacionV, el campo Cierre Edicion no esta presente y el boton “Ver proyecto en modo publico” no se mostrara
  • En modo EdicionN, los campos Cierre Edicion y Cierre Votacion, son inmodificables
  • En modo EdicionV, el campo Cierre Edicion no esta presente, el resto de los campos son visibles y habilitados

las acciones son las siguientes

  • al carga la pagina, en modo Edicion
  • se decidira si es EdicionN o EdicionV en base al proyecto que se este abriendo, si el proyecto tiene en positivo o no el campo “creacion propia”, decidira esto respectivamente
  • el campo Contenido, sera habilitado solo si la fecha en Cierre Edicion es menor o igual que la fecha actual
  • al hacer click en “Ver proyecto en modo publico”, se pasara a la pantalla Ver Proyecto en modo N o V segun se este en modo EdicionN o EdicionV respectivamente, las modificaciones en la pantalla no se guardaran
  • al hacer click en “Nuevo Link” una caja de link nueva se presentara
  • al hacer click en “Cancelar”, se volvera a la Portada
  • al hacer click en Guardar, se realizaran los siguientes chequeos
  • Que los campos Titulo, Contenido, Cierre Votacion y Cierre Edicion (si esta presente), no sean vacios
  • Que el campo Titulo no contenga mas de 100 caracteres
  • Que el formato del campo Cierre Edicion, si es que esta presente, sea una fecha y sea mayor al dia actual
  • Que el formato del campo Cierre Votacion, sea una fecha y sea mayor al dia actual
  • Que el formato de todos los campos Link sea una URL valida o el campo este vacio
  • Que la fecha en Cierre Edicion, sea menor o igual a la fecha Cierre Votacion
  • si las validaciones en el cliente son exitosas al hacer click en “Guardar”, se enviaran los datos ingresados al servidor, omitiendo los Links vacios y los campos que no se esten presentando y se guardaran los datos. En caso de error, se debe mostrar un mensaje en el cliente, en caso de exito, se retornara a la pantalla Mis Proyectos

Ver Proyecto

Ver Proyecto

El objetivo de esta pantalla es poder ver el proyecto, votarlo y discutir sobre el mismo. Esta pantalla va a tener dos modos, N y V, que va a mostrar u ocultar campos

  • en el modo N, se mostraran todos los campos
  • en el modo V, se ocultara el campo Cierre Edicion

Los campos mostrados en la pantalla son:

  • Titulo: el Titulo del proyecto
  • Autor: el creador del proyecto en el sistema
  • Contenido: el Contenido del proyecto
  • Link1, Link2, etc: los links asociados al proyectos
  • Creacion: la fecha de alta del proyecto en el sistema
  • Cierre Edicion: La fecha de cierre de edicion para el proyecto
  • Cierre Votacion: La fecha de cierre de votacion para el proyecto
  • Usuario: el usuario autor del comentario siguiente
  • Comentario: el texto de un comentario
  • Resultado Votacion: este campo solo se presentara si la fecha actual es mayor a la fecha de Cierre de Votacion, en caso contrario, se mostraran los botones para votar (“Votar Positivamente” y “Votar Negativamente”)

Las acciones de la pantalla son:

  • al cargar la pantalla, se mostraran en los campos presentados los datos del proyecto en cuestion, adaptados al usuario (es decir, tambien se cargara el estado de votacion relacionado con el usuario actual)
  • al hacer click en “Comentar”, si el campo previo al boton esta vacio, no se efectuara ninguna accion, si tiene contenido, el mismo se agregara como un nuevo comentario en el thread relacionado con el proyecto y con el Usuario actual como autor
  • al hacer click en “Votar Positivamente”, si el boton esta habilitado, se guardara un voto positivo por parte de este Usuario para este Proyecto y el boton quedara “presionado”, de manera que se pueda votar solo una vez Positivamente, en caso de estar previo a esta accion, el boton “Votar Negativamente”, dicho boton debe quedar no presionado (con la correspondiente sustraccion del voto negativo al Proyecto)
  • al hacer click en “Votar Negativamente”, se efectuara la accion opuesta a la descrita en el items anterior
  • Al hacer click en un Link, se debe abrir el mismo en una ventana/tab nueva