Entries Tagged 'Documentación' ↓

Prototipo: Listado de listas

Listado de listas

He estado pensando cómo podría diseñar la interfaz de forma que:

  • fuera fácil de usar
  • muestre suficiente información como para saber el estado de las listas

teniendo en cuenta que en esta vista se deberá de poder:

  • crear nuevas listas
  • editar las listas
  • eliminar listas
  • compartir una lista
  • buscar sobre las listas
  • ver información sobre ellas

A la hora de ponerme con esta vista,  tengo claro que habrá un listado con las distintas listas y que al lado de ella se indicará si está o no completa. Para eso son los circulos que hay junto a cada lista. Este será de color X cuando esté completa y de color Y cuando no (no se qué color usar para cada caso por eso pongo X e Y).

También tengo claro que la edición tiene que ser “inline”, es decir, al hacer doble click sobre el título de la lista, esta podrá editarse. Hasta aquí todo claro,  pero ¿cómo proporciono la posibilidad de borrar y compartir una o varias entradas?, se me ocurre que permitiendo seleccionar varias listas y teniendo un botón/icono que lance la acción de borrar/compartir (en la imagen de arriba se contempla esta idea).

Ahora me pregunto, ¿realmente va a merecer la pena hacer borrados y comparticiones simultáneas de grupos de listas cuando a lo sumo se van a tener 10 en pantalla (en cada página)? ¿Tan incómodo puede ser hacerlo una a una?

Con estas dudas en la cabeza  he planteado un prototipo en el que no se puedan realizar acciones a grupos de listas de forma que todas las listas tengan un icono para cada acción. Esto iconos aparecerían cuando se pasara el ratón por encima del título de la lista.

Listado de listas 2De esta forma se podría añadir la opción de indicar a qué categoría pertenece una lista, añadiendo un campo más, debajo del campo para indicar el título de la nueva lista.

Finalmente, me quedo con el segundo prototipo porque lo veo más limpio.

Check 6: Árbol de navegación

El árbol de navegación, es una forma de representar las opciones que el usuario tiene a la hora de navegar por el site/aplicación. Para este caso he optado por un diagrama de árbol hecho con la herramienta XMind

El nodo raiz representa la página de inicio, en la que se dará la opción de iniciar una sesión o registrarse en la aplicación. Por este motivo los hijos del nodo raiz son register y <username>, donde register representa el formulario de registro y <username> la página de inicio del usuario.

En la aplicación sólo los usuarios logados tendrán permisos para crear, editar y modificar las listas y sus elementos y por ello todas las urls caen por debajo del nodo <username>.

Una vez estamos en la página <username> a.k.a página de inicio del usuario logado, este podrá:

  • editar su  datos referentes a la cuenta registrada en la aplicación, para ello deberá acceder a la ruta /<username>/edit.
  • configurar la compartición de listas con otros usuarios a través de la ruta /<username>/share.
  • ver sus listas, borrarlas, crear nuevas  y buscar sobre ellas a través de las rutas  /<username>/lists/add/<username>/lists ,  /<username>/lists/<list name>/edit y /<username>/lists/<list name>/delete
  • ver los elementos de una lista, editarlos, eliminarlos y añadir nuevos a través de las rutas /<username>/lists/<list name> ,  /<username>/lists/<list name>/<item>/edit , /<username>/lists/<list name>/<item>/delete y /<username>/lists/<list name>/add

Hay que tener en cuenta que  este esquema no se recoge los posibles saltos en la navegación, como por ejemplo el ir desde la ruta  /<username>/lists/<list name> a la página de inicio. Estas relaciones se darán en la aplicación pero añadirlas al esquema provocaría un poco de ruido, por este motivo solo pongo la navegación más relevante de cara al usuario y a las acciones que este puede realizar en la aplicación.

Todavía no he cerrado el prototipo del listado de listas (valga la redundancia), pero está la posibilidad que desde esa vista sea desde la que se creen las entradas. Si es así, el usuario no vería que cambia de url en el momento de creación de una lista, por lo que este esquema estaría mal, ¿no?. Pués desde mi punto de vista no lo estaría  ya que  Django necesita de una url para realizar una acción de forma que para poder añadir una lista habría que hacer la petición a través de la url definida en el esquema, pero sin que esta muestre un nuevo contenido HTML.

Check 5: Documento de análisis

He subido al repositorio el documento de análisis funcional en el que describo los siguientes puntos:

  • Finalidad y objetivos
  • Usuarios del sistema
  • Análisis de requisitos
  • Modelo de datos
  • Integración de Couchdb y Django

El documento no es muy extenso, ya que el desarrollo no requiere el uso de extensiones de Django que estén fuera de lo normal,  funcionalmente no es complejo (salvo la gestión de listas compartidas) y en el catálogo de requisitos se definen con detalle lo elementos que entran en juego en cada sección de la aplicación, aportando una descripción funcional suficiente como para afrontar el proyecto.

De los puntos mencionados anteriormente, hay uno que no tengo claro , Integración de Couchdb y Django, ya que no se con certeza cómo va a funcionar Django junto a CouchDB y lo que es más importate, nunca he afrontado un proyecto usando CouchDB ni bases de datos no relacionales.

A medida que vaya peleándome con CouchDB iré actualizando el documento con las decisiones que vaya tomando  en lo relacionado al modelo de datos y la integración con Django.

Prototipo: Formulario de registro

Pués eso, el nuevo prototipo para el formulario de registro:

Formulario de registro

Formulario de registro

Un formulario con los datos básicos para poder registar usuario y poder enviarles correos.

Prototipo: Página de inicio

He estado dándole algunas vueltas al prototipo de la página de inicio y lo he dejado así:

Página de inicio

Página de inicio

La página de inicio quiero que sea clara, que te diga para qué sirve la aplicación y cómo comenzar a usarla. Para ello

se me ha ocurrido mostrar varios casos de uso a través de historietas usando el formato de tiras cómicas. Se que puede ser un poco complicado, porque puede llegar a confundir al usuario si no lo hago bien, pero creo que puede ser una forma divertida de mostrar su uso, así que  lo voy a intentar.

A continuación de las historietas quiero indicar los distintos pasos que hay que seguir para que un usuario pueda usar la aplicación  usando un formato de lista de tareas(el que use la aplicación para mostrar una lista). Este listado indicará los siguientes pasos

  • Registrarse en la aplicación
  • Activar la cuenta para usar la aplicación
  • Iniciar sesión en la aplicación
  • Crear una lista
  • Añadir entradas a la lista

En la página habrá un enlace para acceder al formulario de registro y otro para iniciar sesión. Este último desplegará el formulario de login (como el que se usa en twitter).

Página de inicio con login

Página de inicio con login

¿Qué dudas/inseguridades tengo?

Pués algunas como por ejemplo:

  • Los espacios: No se si la disposición de los componentes de la vista son los mejores para una aplicación. ¿Es mejor aprovechar el ancho completo de la pantalla o por el contrario definir unos márgenes?
  • ¿Habrá suficiente información en esta página como para que el usuario comprenda su uso? Hay que tener en cuenta que esta aplicación no está pensada para usuarios expertos/avanzados, esta aplicación tiene que poder ser usada por todos.

¿Este proyecto sigue abandonado?….que no tron!!!

¿Este proyecto sigue abandonado?…es la pregunta que ha rondado por mi cabeza el tiempo que no he ausente del proyecto. No porque lo fuera a abandonar sino porque la gente que sigue este proyecto lo pensara.

Creo que ha sido un mes, más o menos, lo que he estado sin escribir por aqui, ni publicar nada en la forja. Los motivos han sido varios, desde tener que apagar fuegos (véase apagar fuegos como el tener que resolver tareas contrarreloj en el curro), hasta estar enfermo durante una semana con uno de esos virus que la gente dice “todo el mundo lo tiene ahora”.

En la oficina hemos tenido varios cierres de proyectos simultáneos y hemos tenido que apretar un poco el cinturón para que todo fuera, como solemos decir en la ofi, peeeeerfe XD. A esto se le ha juntado un par de viajes a Ceuta como formador de Drupal, en los que durante 7 días he impartido un curso en el que explicaba un poco de  metodología para el desarrollo de sites en Drupal, así como también desarrollar módulos para Drupal. La experiencia fue muy buena pero también fue agotadora ( no valgo para ir en ferries :S)

Antes de irme a Ceuta, fui a Barcelona unos días  para asistir a la Drupalcamp 2010 y bueno… no pegaba ponerme con Django en mitad de una conferencia.

A pesar de haber estado ausente, avancé un poco en pequeñas tareas como la definición del árbol de navegación y los prototipos de la aplicación. Las tareas están en la forja [1] pero aún no están cerradas, tengo que darles un par de vueltas para estar seguro, sobre todo a los prototipos que no tengo muy claro que sean la mejor solución.

[1] repositorio svn

Versión 1.0 del documento de requisitos finalizada

Un poco tarde pero la vesión 1.0 del catálogo de requisitos ya está lista. En este documento se contemplan los requisitos básicos para esta primera fase( hacer una aplicación muy básica para gestionar listas entre usuarios) a nivel funcional.

A partir de este documento podré generar el documento de análisis y diseño así como también los casos de pruebas para que el proyecto se de por finalizado y sin ningún fallo.

En este mismo instante, que escribo este post estoy pensando que podría dejar de escribir documentos y poner me a programar (que es lo que más me mola) pero creo que estos documento pueden servir a que otros desarrolladores que se interesen por el proyecto sepan de que va y cuales son sus objetivos…..así que toca aguantarse y escribir durante una semana más.

En [1] podeis acceder a la forja y ojear el documento.

[1] catálogo de requisitos

Check 2: Atar todos los cabos

Atar todos los cabos y delimitar el alcance del proyecto es desde mi punto de vista la primera gran tarea de todo proyecto. Al principio no lo hacia, cuando quería hacer algo me ponía y del tirón intentaba implementar las ideas que tenía en la cabeza y bueno, algunas veces las cosas salían como yo quería y no se me escapaba nada pero la dura realidad es que la mayoría de las veces terminaba haciendo otras cosas y el tiempo de desarrollo se alargaba más de la cuenta.

Esta experiencia la viví muchas veces en mi primer trabajo en la empresa privada y perdimos muchísimo tiempo que al final se convirtió en agobios. Hoy día las cosas han cambiado mucho, ya no comienzo un proyecto sin haber hecho un catálogo de requisitos detallado y a ser posible validado por el usuario final (como en este caso yo soy el cliente no hace falta).

Las ventajas que veo a la hora de hacer el catálogo de requisitos son:

  • las idas que uno tiene del proyecto se afinan, incluso se llegan a desechar porque no tienen sentido,
  • de este documento se puede sacar una batería de pruebas para realizar el testeo de la aplicación,
  • limita el alcance del proyecto evitando idas de coco,
  • permite que otras personas vean en pocas páginas tu idea del proyecto,
  • y lo más importante, atas todos los cabos sueltos que puedas tener sobre el proyecto y con el cliente.

La tarea ya está en el track así que en unos días estará disponible.