Historias de usuario - manolo5535/MyInvicibleLibrary GitHub Wiki

Usuario

  • Yo como usuario quiero una interfaz tal que pueda subir imágenes con su metadata a un servidor.
    • Construir una pantalla donde se permita seleccionar las acciones que desea.
    • Habilitar espacios de escritura en la pantalla de ingreso de imagen.
    • Diseñar un botón que guarde los datos escritos en esa pantalla.
  • Yo como usuario quiero que la metadata contenga: nombre de la imagen, autor, año de creación, tamaño y descripción.
    • Insertar un campo de texto donde se pueda escribir el nombre de la imagen.
    • Insertar un campo de texto donde se pueda escribir el nombre del autor.
    • Insertar un campo de texto donde se pueda escribir el año de creación.
    • Insertar un campo de texto donde se pueda escribir el tamaño de la imagen.
    • Insertar un campo de texto donde se pueda escribir una descripción de la imagen.
    • Diseñar un botón donde al presionar se envíe la metadata.
  • Yo como usuario quiero las imágenes se guarden en galerías tal que pueda abrir una galería y ver las fotos que tiene dentro.
    • Diseñar una estructura llamada galería.
    • Relacionar imágenes con alguna estructura de estas.
    • Habilitar una pantalla donde escoja la galería a la que está relacionada la imagen.
    • Mostrar las galerías existentes.
    • Hacer que las galerías puedan seleccionarse desde el menú.
    • Cuando se abra una galería mostrar una lista de las imágenes asociadas.
  • Yo como usuario quiero que el sistema contra fallos tenga las funciones “read”,”write” y “seek”.
    • Implementar un arreglo de discos o una estructura que lo represente.
    • Implementar una forma de escritura de discos.
    • Implementar una forma de lectura de datos en un arreglo de discos.
    • Implementar una forma de buscar bits de información en un arreglo de discos.

Administrador

  • Yo como administrador quiero que la gestión de metadata se realiza mediante la sintaxis de SQL.
    • Estructurar un comando "SELECT" llamar los datos guardados en las base de datos.
    • Estructurar un comando "UPDATE" habilitar un campo donde se puedan actualizar la metadata de una imagen.
    • Estructurar un comando "DELETE" eliminar la imagen o metadata referida en el comando.
    • Estructurar un comando "INSERT" agregar metadata a una imagen que ya en el arreglo de discos.
    • Diseñar comandos que sigan las reglas de la sintaxis de SQL.
  • Yo como administrador quiero que las imágenes tengan un sistema contra fallos de discos RAID 5 para que en el caso de que se pierda la parte de la información esta se pueda recuperar en el momento.
    • Diseñar un RAID 5.
    • Realizar una estructura que me permita tener una simulación de un arreglo de discos.
    • Ordenar los discos para que funcionen en conjunto.
    • Implementar una función que me permita recuperar información aunque un disco no funcione.
  • Yo como administrador quiero administrar la metadata de las imágenes en una base de datos no SQL.
    • Escoger una estructura de datos para guardar la metadata.
    • Diseñar esa estructura de datos para guardar los datos.
  • Yo como administrador quiero establecer un servidor sockets entre el cliente, sistema de discos y la base de datos para la comunicación entre las diferentes partes.
    • Implementar un servidor que abra un socket.
    • Abrir el socket en un puerto especifico y conectar a una petición.
    • Implementar una aplicación cliente que abra un socket y solicite una conexión.
  • Yo como administrador quiero que la comunicación entre cliente-servidor sea por medio de JSON para que todo la información sea trasmitida en un formato especifico.
    • Configurar los objetos JSON para mandarlo.
  • Yo como administrador quiero que la información de la metadata sea enviada de forma comprimida mediante el algoritmo de Huffman.
    • Diseñar un algoritmo de compresión.
    • Utilizarlo para los bits de las imágenes.