MontgomeryDisc
Comentarios0
Añadida por BarrosoEspinosaAdolfoMontgomeryDisc es una tienda independiente dedicada a vender discos musicales de autores de la provincia de Cádiz.
En este Wiki realizaremos un Análisis exhaustivo del proceso de creación de la tienda virtual que alojará los discos vendidos por la discográfica.
Cabe destacar que se guardará también información de los cantantes así como de la discográfica que edita el disco.
Roles
Editar sección
Los Roles que desempeñará cada uno de los integrantes del grupo serán los siguientes:
Juan Manuel Chaves Pérez
- Analista/programador.
- Administrador de Sistemas.
- Arquitecto Software.
Adolfo Barroso Espinosa
- Diseñador de la interfaz de usuario.
- Administrador de bases de datos.
- Analista Programador.
Leví Orta Caro
- Jefe de Proyecto.
- Analista/programador.
- Codificador de pruebas.
Planificación.
Editar sección
| Sprint | Descripción del Sprint | Fecha |
|---|---|---|
| 0 | Instalación del Entorno | 9-Nov-2011 |
| 1 | Gestión de Artistas. | 16-Nov-2011 |
| 2 | Gestión de los Discos. | 23-Nov-2011 |
| 3 | Gestión de Discográficas. | 30-Nov-2011 |
| 4 | Búsquedas y vistas personalizadas. | 07-Dic-2011 |
| 5 | Gestión del carrito de la compra. | 14-Dic-2011 |
| 6 | Gestión y administración de foros. | 21-Dic-2011 |
| 7 | Gestión de las etiquetas | 28-Dic-2011 |
| 8 | Gestión de la seguridad. | 04-Ene-2012 |
| 9 | Gestión de la facturación y de los pedidos. | 11-Ene-2012 |
Evaluación
Editar sección
1 - Documentos de análisis:
Editar sección
Historias de usuarios:
Editar sección
Artista/Grupo:
Editar sección
- Añadir artista-grupo: cuando el dueño de la tienda sepa de la existencia de un nuevo artista-grupo, debe poderlo dar de alta en el sitio. Tras hacer un click, teclear los detalles del artista-grupo en un formulario y enviarlo, los datos del artista-grupo deben estar disponibles.
- Listar artistas-grupos: la interfaz de administración debe tener una página principal que funcione como lista de todos los artista-grupo.
- Ver artista-grupo: debe haber páginas que muestren los detalles de cada artista-grupo individual.
- Editar artista-grupo: cambiar los datos de un artista-grupo debe ser tan sencillo como darlo de alta.
- Eliminar artista-grupo: los artista-grupo deben poder ser eliminados del sistema.
Disco:
Editar sección
- Añadir disco: cuando el dueño de la tienda sepa de la existencia de un nuevo disco, debe poderlo dar de alta en el sitio. Tras hacer un click, teclear los detalles del disco en un formulario y enviarlo, los datos del disco deben estar disponibles.
- Subir carátula de libro: el administrador debe poder subir una imagen de la carátula del disco que sea visible a los clientes de la tienda.
- Listar discos: la interfaz de administración debe tener una página principal que funcione como lista de todos los discos.
- Ver disco: debe haber páginas que muestren los detalles de cada disco individual.
- Editar disco: cambiar los datos de un disco debe ser tan sencillo como darlo de alta.
- Eliminar disco: los discos deben poder ser eliminados del sistema.
Discográficas:
Editar sección
- Añadir discográfica: cuando el dueño de la tienda sepa de la existencia de una nueva discográfica, debe poderla dar de alta en el sitio. Tras hacer un click, teclear los detalles de la discográfica en un formulario y enviarlo, los datos de la discográfica deben estar disponibles.
- Listar discográficas: la interfaz de administración debe tener una página principal que funcione como lista de todas las discográficas.
- Ver discográficas: debe haber páginas que muestren los detalles de cada discográfica individual.
- Editar discográfica: cambiar los datos de una discográfica debe ser tan sencillo como darle de alta.
- Eliminar discográfica: las discográficas deben poder ser eliminados del sistema.
Catálogo
Editar sección
- Ojear discos: el cliente debe poder ojear (echar un ojo) a los discos de la tienda, navegando de disco en disco y buscándolos por su título.
- Buscar discos: el cliente debe poder escribir algunos términos y obtener una lista de todos los discos encontrados que encajan con su búsqueda.
- Ver detalles de disco: tras ojear los títulos o buscarlos, el cliente debe poder obtener toda la información específica disponible sobre un disco particular encontrado.
- Últimas adquisiciones: hace falta estar al corriente sobre los discos más recientes adquiridos por la tienda. Esto debe hacerse a través de un simple vistazo al sitio. Se desea tener un canal RSS al que poder suscribirse para notificación sobre las nuevas adquisiciones.
Carrito de la compra
Editar sección
- Añadir al carrito: debe de añadir un disco al carrito.
- Sacar del carrito: debe de sacar un determinado disco del carrito.
- Vaciar el carrito: debe de vaciar el carrito de discos.
Foros
Editar sección
- Ver foro: ver la lista de todos los mensajes del foro en forma de hilos de discusión, ordenados cronológicamente con el más reciente primero.
- Enviar un mensaje al foro: Envía un mensaje al foro.
- Ver un mensaje del foro: Muestra un mensaje determinado del foro.
- Responder a un mensaje del foro: Responde a un determinado mensaje del foro.
Etiquetas
Editar sección
- Asignar etiquetas: el administrador debe poder asignar una serie de etquetas a un disco tecleando una lista delimitada de términos en la página del disco; esta funcionalidad amplía la historia de usuario Añadir disco.
- Editar etiquetas: el administrador debe poder añadir y eliminar etiquetas de un disco editando un campo con tal propósito; esta funcionalidad amplía la historia de usuario Editar disco.
- Listar etiquetas: los clientes de la tienda deben poder ver las etiquetas asignadas a los discos.
- Mostrar etiqueta: Mientras un cliente contempla los detalles de un disco, debe poder pulsar en cada etiqueta para mostrarle todos los disco que comparten esa misma etiqueta.
- Recomendar discos: Mientras el usuario está contemplando un disco, el sistema debe ser capaz de recomendar discos similares al cliente, proporcionando enlaces a discos y etiquetas relacionados con el disco actual.
Seguridad
Editar sección
- Inicio de sesión correcto: cuando un usuario que no ha iniciado sesión intenta acceder a una funcionalidad administrativa, el sistema debe redirigirle a la página de inicio de sesión; si el usuario y contraseña proporcionados son correctos, tras iniciar sesión el usuario debe quedar situado en la página de acceso a la funcionalidad que solicitó.
- Inicio de sesión incorrecto: cuando un usuario que no ha iniciado sesión intenta acceder a una funcionalidad administrativa, el sistema debe redirigirle a la página de inicio de sesión; si el usuario y contraseña proporcionados no son correctos, debe redirigírle al formulario de inicio de sesión junto a un mensaje de error.
- Restaurar contraseña: con un sólo click debe poderse restaurar una contraseña olvidada, enviando una nueva al usuario por e-mail.
Facturación
Editar sección
- Facturar: una vez que el cliente ha terminado de añadir artículos al carrito de la compra, puede proceder a la página de facturación, donde teclea sus datos de contacto, la dirección de envío y la información de la tarjeta de crédito; a continuación se emite el pedido, lo que da inicio a un flujo de procesamiento de pedido que incluye cobrar al clente y enviar los artículos.
- Ver pedidos: el administrador debe poder ver el estado de todos los pedidos, procesados y cerrados. Los pedidos procesados son los que han sido cobrados al cliente pero aún no se han enviado; los pedidos cerrados son los que ya han sido enviados al cliente.
- Ver pedido: Antes de proceder al envío, el administrador debe poder ver los detalles de un pedido; se debe añadir una página que muestre la dirección de envío y la información de facturación junto con la información de contacto del cliente.
- Cerrar pedido: Tras enviar el pedido, éste debe cerrarse; esto se llevará a cabo en la página de detalles del pedido, de forma que con un simple botón se pueda cambiar el estado del pedido a cerrado.
Casos de Uso:
Editar sección
Gestión de Artistas-Grupos
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión de Artistas.
Caso de Uso: Añadir Artista-Grupo.
Descripción: Registra los datos de un nuevo artista o grupo introducidos a partir de un formulario.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- No debe existir un artista o grupo con el mismo nombre artístico registrado en el sistema.
Escenario Principal:
- El administrado selecciona la creación de un nuevo artista o grupo en el sistema.
- Aparece un formulario con los datos en blanco para que el administrador los rellene.
- El administrador inserta los datos del artista o grupo, y pulsa en botón de validar.
- El sistema va validando los datos insertados por el administrador.
- El sistema guarda el nuevo artista o grupo en el sistema.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 4a. Algún dato no ha sido validado correctamente.
- El sistema cancela el alta del nuevo artista o grupo mostrando el mensaje de error correspondiente.
Caso de Uso: Listar Artista-Grupo.
Descripción: Lista los artistas-grupos registardos en el sistema.
Actores: Administrador, Cliente.
Precondiciones:
- Debe de existir al menos un artista o grupo dado de alta en el sistema.
Escenario Principal:
- El administrador o cliente ordena listar los artistas o grupos registrados en el sistema.
- El sistema lista todos los artistas o grupos que han sido registrados.
Escenario Alternativo:
- No existe ningún artista o grupo dado de alta en el sistema.
- El sistema muestra el mensaje de error correspondiente.
- El sistema muestra el mensaje de error correspondiente.
Caso de Uso: Editar Artista-Grupo.
Descripción: Posibilita la edición de un determinado artista o grupo registardo en el sistema.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- El determinado artista o grupo a editar debe de estar correctamente registrado en el sistema.
Escenario Principal:
- El administrador selecciona el artista o grupo a editar.
- El sistema muestra un formulario con los datos rellenos con la información actualmente almacenada en el sistema.
- El administrador introduce los nuevos datos y pulsa el botón de validar.
- El sistema valida uno a uno cada campo del formulario.
- El sistema guarda la nueva información del artista o grupo en el sistema.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 4a. Algún dato no ha sido validado correctamente.
- El sistema cancela la edición del artista o grupo mostrando el mensaje de error correspondiente y dejando su información con los datos anteriormente existente.
Caso de Uso: Ver Artista-Grupo.
Descripción: Muestra los datos registrados en el sistema de un determinado artista o grupo.
Actores: Administrador, Cliente.
Precondiciones:
- El determinado artista o grupo a mostrar debe de estar correctamente registrado en el sistema.
Escenario Principal:
- El administrador o cliente selecciona el artista o grupo a mostrar.
- El sistema muestra la información del artista o grupo seleccionado.
Escenario Alternativo:
- No existe ningún escenario alternativo.
Caso de Uso: Eliminar Artista-Grupo.
Descripción: Posibilita la eliminación de un determinado artista o grupo registardo en el sistema.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- El determinado artista o grupo a eliminar debe de estar correctamente registrado en el sistema.
Escenario Principal:
- El administrador selecciona el artista o grupo a eliminar.
- El sistema muestra la información del determinado artista o grupo que queremos eliminar, y debajo el botón para validar la eliminación.
- El administrador valida la eliminación.
- El sistema elimina el artista o grupo seleccionado.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- El sistema cancela la eliminación del artista o grupo dejando su información en el estado que estaba antes de comenzar el caso de uso.
Gestión de Discográfica
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión de Discográficas.
Caso de Uso: Añadir Discográfica.
Descripción: Registra los datos de una nueva discográfica introducidos a partir de un formulario.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- No debe existir una misma discográfica con el mismo nombre registrada en el sistema.
Escenario Principal:
- El administrado selecciona la creación de una nueva discográfica en el sistema.
- Aparece un formulario con los datos en blanco para que el administrador los rellene.
- El administrador inserta los datos de la discográfica, y pulsa en botón de validar.
- El sistema va validando los datos insertados por el administrador.
- El sistema guarda la nueva discográfica en el sistema.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 4a. Algún dato no ha sido validado correctamente.
- El sistema cancela el alta de la nueva discográfica mostrando el mensaje de error correspondiente.
Caso de Uso: Listar Discográfica.
Descripción: Lista las discográficas registardas en el sistema.
Actores: Administrador, Cliente.
Precondiciones:
- Debe de existir al menos una discográfica dada de alta en el sistema.
Escenario Principal:
- El administrador o cliente ordena listar las discográficas registradas en el sistema.
- El sistema lista todas las discográficas que han sido registradas.
Escenario Alternativo:
- No existe ninguna discográfica dada de alta en el sistema.
- El sistema muestra el mensaje de error correspondiente.
- El sistema muestra el mensaje de error correspondiente.
Caso de Uso: Editar Discográfica.
Descripción: Posibilita la edición de una determinada discográfica registarda en el sistema.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- La determinada discográfica a editar debe de estar correctamente registrada en el sistema.
Escenario Principal:
- El administrador selecciona la discográfica a editar.
- El sistema muestra un formulario con los datos rellenos con la información actualmente almacenada en el sistema.
- El administrador introduce los nuevos datos y pulsa el botón de validar.
- El sistema valida uno a uno cada campo del formulario.
- El sistema guarda la nueva información de la discográfica en el sistema.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 4a. Algún dato no ha sido validado correctamente.
- El sistema cancela la edición de la discográfica mostrando el mensaje de error correspondiente y dejando su información con los datos anteriormente existente.
Caso de Uso: Ver Discográfica.
Descripción: Muestra los datos registrados en el sistema de una determinada discográfica.
Actores: Administrador, Cliente.
Precondiciones:
- La determinada discográfica a mostrar debe de estar correctamente registrada en el sistema.
Escenario Principal:
- El administrador o cliente selecciona la discográfica a mostrar.
- El sistema muestra la información de la discográfica seleccionada.
Escenario Alternativo:
- No existe ningún escenario alternativo.
Caso de Uso: Eliminar Discográfica.
Descripción: Posibilita la eliminación de una determinada discográfica registarda en el sistema.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- La determinada discográfica a eliminar debe de estar correctamente registrada en el sistema.
Escenario Principal:
- El administrador selecciona la discográfica a eliminar.
- El sistema muestra la información de la determinada discográfica que queremos eliminar, y debajo el botón para validar la eliminación.
- El administrador valida la eliminación.
- El sistema elimina la discográfica seleccionada.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- El sistema cancela la eliminación de la discográfica dejando su información en el estado que estaba antes de comenzar el caso de uso.
Gestión de Discos
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión de Discos.
Caso de Uso: Añadir Disco.
Descripción: Registra los datos de un nuevo disco introducidos a partir de un formulario.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- No debe existir un disco con el mismo nombre registrado en el sistema.
Escenario Principal:
- El administrado selecciona la creación de un nuevo disco en el sistema.
- Aparece un formulario con los datos en blanco para que el administrador los rellene.
- El administrador inserta los datos del disco, y pulsa en botón de validar.
- El sistema va validando los datos insertados por el administrador.
- El sistema guarda el nuevo disco en el sistema.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 4a. Algún dato no ha sido validado correctamente.
- El sistema cancela el alta del nuevo disco mostrando el mensaje de error correspondiente.
Caso de Uso: Listar Discos.
Descripción: Lista los discos registardos en el sistema.
Actores: Administrador, Cliente.
Precondiciones:
- Debe de existir al menos un disco dado de alta en el sistema.
Escenario Principal:
- El administrador o cliente ordena listar los discos registrados en el sistema.
- El sistema lista todos los discos que han sido registrados.
Escenario Alternativo:
- No existe ningún disco dado de alta en el sistema.
- El sistema muestra el mensaje de error correspondiente.
- El sistema muestra el mensaje de error correspondiente.
Caso de Uso: Editar Disco.
Descripción: Posibilita la edición de un determinado disco registardo en el sistema.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- El determinado disco a editar debe de estar correctamente registrado en el sistema.
Escenario Principal:
- El administrador selecciona el disco a editar.
- El sistema muestra un formulario con los datos rellenos con la información actualmente almacenada en el sistema.
- El administrador introduce los nuevos datos y pulsa el botón de validar.
- El sistema valida uno a uno cada campo del formulario.
- El sistema guarda la nueva información del disco en el sistema.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 4a. Algún dato no ha sido validado correctamente.
- El sistema cancela la edición del disco mostrando el mensaje de error correspondiente y dejando su información con los datos anteriormente existente.
Caso de Uso: Ver Disco.
Descripción: Muestra los datos registrados en el sistema de un determinado disco.
Actores: Administrador, Cliente.
Precondiciones:
- El determinado disco a mostrar debe de estar correctamente registrado en el sistema.
Escenario Principal:
- El administrador o cliente selecciona el disco a mostrar.
- El sistema muestra la información del disco seleccionado.
Escenario Alternativo:
- No existe ningún escenario alternativo.
Caso de Uso: Eliminar Disco.
Descripción: Posibilita la eliminación de un determinado disco registrado en el sistema.
Actores: Administrador.
Precondiciones:
- El administrador debe de estar debidamente autentificado y autorizado.
- El determinado disco a eliminar debe de estar correctamente registrado en el sistema.
Escenario Principal:
- El administrador selecciona el disco a eliminar.
- El sistema muestra la información del determinado disco que queremos eliminar, y debajo el botón para validar la eliminación.
- El administrador valida la eliminación.
- El sistema elimina el disco seleccionado.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- El sistema cancela la eliminación del disco dejando su información en el estado que estaba antes de comenzar el caso de uso.
Gestión de Catálogo
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión de Catálogo.
Caso de Uso: Ojear Disco.
Descripción: Posibilita mostrar cualquier disco registrado en el catálogo de la tienda.
Actores: Administrador, Cliente
Precondiciones:
- Debe de existir al menos un disco registrado en el catálogo de la tienda.
Escenario Principal:
- El actor desea ver el catálogo de discos de la tienda.
- El sistema muestra el catálogo de los discos de la tienda.
- El actor selecciona el disco que quiere mostrar.
- El sistema muestra el disco selecciando.
- El actor puede cambiar de disco para ojear.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
Caso de Uso: Buscar Disco.
Descripción: Posibilita la busqueda de los discos existentes en el catálogo del sistema.
Actores: Administrador, Cliente.
Precondiciones:
- Debe de existir al menos un disco dado de alta en el sistema.
Escenario Principal:
- El actor selecciona la acción de realizar una busqueda en el catálogo de la tienda.
- El sistema muestra un formulario para insertar el valor con el cual queremos realizar la busqueda.
- El actor introduce el valor con el que desea realizar la busqueda y valida la acción.
- El sistema muestra los discos que coinciden con el valor insertado en la búsqueda.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 4b. No existe ningún disco que cumpla con el valor de la búsqueda.
- El sistema muestra el mensaje de error correspondiente.
Caso de Uso: Ver detalle de Disco.
Descripción: Posibilita ver todos los datos registrados en el sistema de un determinado disco.
Actores: Administrador, Cliente
Precondiciones:
- El determinado disco del que queremos ver los detalles debe de estar correctamente registrado en el sistema.
Escenario Principal:
- El actor selecciona el disco del cual queremos que se nos muestre todos los detalles.
- El sistema muestra una pantalla con todos los detalles del disco seleccionado.
Escenario Alternativo:
- No existe un camino alternativo para este caso de uso.
Caso de Uso: Mostrar últimas actualizaciones.
Descripción: Posibilita que el sistema nos muestre las últimas actualizaciones.
Actores: Administrador, Cliente
Precondiciones: No existe ninguna precondición para este caso de uso.
Escenario Principal:
- El actor selecciona ver las últimas actualizaciones.
- El sistema muestra las últimas actualizaciones.
Escenario Alternativo:
- 2b. No existe ninguna actualización reciente.
- El sistema muestra el mensaje de error correspondiente.
Gestión de Carrito
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión del Carrito.
Caso de Uso: Añadir al carrito
Descripción: Inserta un disco en el carrito, para realizar su posterior compra.
Actores: Cliente
Precondiciones:
- El disco a insertar debe de estar registrado en el sistema.
Escenario Principal:
- El actor selecciona un determinado disco del catálogo y valida la acción de insertar en el carrito.
- El sistema inserta el disco en el carrito, e incrementa el coste de este.
- El actor puede volver a insertar de nuevo otro disco en el carrito.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 2b. El disco no puede ser insertado en el carrito.
- El sistema cancela la insercción en el carrito y devuelve el mensaje de error correspondiente.
Caso de Uso: Sacar del carro.
Descripción: Acción para sacar un disco del carro.
Actores: Cliente
Precondiciones:
- El carrito debe de existir.
- Debe de existir al menos un disco insertado en el carrito.
Escenario Principal:
- El actor indica que desea modificar el contenido del carrito.
- El sistema muestra todos los discos insertados actualmente en el carro.
- El actor selecciona el disco que desea eliminar del carrito. Y acepta la acción de sacar.
- El sistema elimina el disco del carrito y actualiza su coste.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 4b. El sistema no puede eliminar el determinado disco del carrito.
- El sistema muestra el mensaje de error correspondiente.
- El sistema muestra el mensaje de error correspondiente.
Caso de Uso: Vaciar el carrito.
Descripción: Vacia el carrito de todos los discos que hayamos insertado en el.
Actores: Cliente.
Precondiciones:
- El carrito debe de existir.
- Debe de existir al menos un disco insertado en el carrito.
Escenario Principal:
- El actor selecciona la opción de vaciar todos los discos del carrito.
- El sistema elimina todos los discos del carrito.
- El sistema muestra el carrito sin ningún disco.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 2b. El sistema no puede vaciar el carro.
- El sistema cancela el vaciado del carro y muestra el mensaje correspondiente.
Gestión de Foros
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión del Foro.
Caso de Uso: Ver foro
Descripción: Permite ver la lista de mensajes que existe en el foro.
Actores: Cliente
Precondiciones:
- No existe precondiciones para este caso de uso.
Escenario Principal:
- El actor selecciona ver el foro.
- El sistema muestra la lista de mensajes que existe en el foro.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 2b. Si no existe ningún mensaje en el foro la lista estará vacía.
Caso de Uso: Enviar Mensaje
Descripción: Permite crear un nuevo mensaje en el foro.
Actores: Cliente
Precondiciones:
- El cliente debe de estar registrado para poder escribir un nuevo mensaje en el foro.
Escenario Principal:
- El actor selecciona ver el foro.
- El sistema muestra la lista de mensajes que existe en el foro.
- El actor selecciona crear un nuevo mensaje en el foro.
- El sistema muestra un formulario para que el cliente escriba el nuevo mensaje.
- El cliente escribe el mensaje y valida la acción
- El sistema registra el mensaje y lo inserta en la lista de mensajes ya existentes en el foro.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 6b. El sistema no puede registrar el mensaje. Mostrará el consiguiente mensaje de error.
Caso de Uso: Ver Mensaje
Descripción: Permite ver un nuevo mensaje dentro del foro.
Actores: Cliente
Precondiciones:
- Debe de existir al menos un mensaje en el foro.
Escenario Principal:
- El actor selecciona ver el foro.
- El sistema muestra la lista de mensajes que existe en el foro.
- El actor selecciona ver un determinado mensaje en el foro.
- El sistema muestra el mensaje correspondiente, así como la lista de respuestas que contiene.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 6b. El sistema no puede mostrar el mensaje. Mostrará el consiguiente mensaje de error.
Caso de Uso: Responder Mensaje
Descripción: Permite responder a un determinado mensaje dentro del foro.
Actores: Cliente
Precondiciones:
- Debe de existir al menos un mensaje en el foro.
- El cliente debe de estar registrado para poder escribir una nueva respuesta a un mensaje en el foro.
Escenario Principal:
- El actor selecciona ver el foro.
- El sistema muestra la lista de mensajes que existe en el foro.
- El actor selecciona responder a un determinado mensaje en el foro.
- El sistema muestra un formulario para que el cliente escriba una respuesta a un mensaje.
- El cliente escribe la respuesta y valida la acción.
- El sistema registra la respuesta y lo inserta a la lista de respuestas del mensaje ya existentes.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 6b. El sistema no puede registrar la respuesta. Mostrará el consiguiente mensaje de error.
Gestión de Etiquetas
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión de etiquetas.
Caso de Uso: Asignar Etiqueta
Descripción: Permite asignar las diferentes etiquetas que se quieren asociar a un determinado disco.
Actores: Administrador
Precondiciones:
- El disco debe de registrarse correctamente para poder asociarle etiquetas.
- La etiqueta que queremos asociar al disco debe estar correctamente registrada.
Escenario Principal:
- El actor realiza el caso de uso de registrar disco.
- El actor indica las etiquetas que quiere asociar al determinado disco.
- El actor valida la acción
- El sistema registra las etiquedas al nuevo disco creado.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 4b. El sistema no puede registrar las etiquetas en el disco. Se mostrará el mensaje de error correspondiente.
Caso de Uso: Editar Etiqueta
Descripción: Permite modificar las diferentes etiquetas que están asociadas a un determinado disco.
Actores: Administrador
Precondiciones:
- El disco debe de estar registrado correctamente en el sistema
- La etiqueta que queremos asociar al disco debe estar correctamente registrada.
Escenario Principal:
- El actor selecciona el disco al cual quiere editar las etiquetas.
- El sistema muestra el disco con la opcion de modificar las etiquetas.
- El actor introduce el valor de las nuevas etiquetas y valida la acción.
- El sistema registra las nuevas etiquetas.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 4b. El sistema no puede registrar las etiquetas en el disco. Se mostrará el mensaje de error correspondiente.
Caso de Uso: Listar Etiquetas
Descripción: Permite ver todas las etiquetas asociadas a un determinado disco.
Actores: Administrador, Cliente
Precondiciones:
- El disco debe de estar correctamente registrado en el sistema para ver las etiquetas asociadas.
Escenario Principal:
- El actor selecciona el disco del cual quiere ver las etiquetas asociadas.
- El sistema muestra la lista de etiquetas asocidas al disco.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 4b. El disco no tiene ninguna etiqueta asociada. El sistema mostrará la lista de etiquetas vacía.
Caso de Uso: Mostrar Etiquetas
Descripción: Permite ver todos los discos asociados a una determinada etiqueta
Actores: Administrador, Cliente
Precondiciones:
- No existe ninguna precondición para este caso de uso.
Escenario Principal:
- El actor selecciona ver un determinado disco.
- El sistema muestra los detalles del disco, incluídas las etiquetas del mismo.
- El actor selecciona una etiqueta y valida la acción.
- El sistema muestra la lista de discos que tienen en común la etiqueta seleccionada.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 3b. El disco no tiene ninguna etiqueta asociada. No se podrá seleccionar ninguna etiqueta para ver los discos
Caso de Uso: Recomendar Discos
Descripción: Permite ver los discos relacionados con otro disco que ha seleccionado el cliente.
Actores: Administrador, Cliente
Precondiciones:
- No existe ninguna precondición para este caso de uso.
Escenario Principal:
- El actor selecciona ver un determinado disco.
- El sistema muestra los detalles del disco así com las etiquetas asociadas.
- El actor selecciona ver los discos recomendados
- El sistema muestra la lista de discos recomendados con el disco seleccionado.
Escenario Alternativo:
- El actor puede cancelar la operación en cualquier momento.
- 3b. El disco no tiene ningún disco recomendado. No se podrá seleccionar ver los discos recomendados.
Gestión de Seguridad
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión de Seguridad.
Caso de Uso: Registrar Usuario.
Descripción: Un cliente se registra en la tienda electrónica.
Actores: Cliente.
Precondiciones:
- El cliente no debe de estar ya dado de alta en la tienda electrónica.
Escenario Principal:
- El cliente selecciona la acción de registrarse en la tienda.
- El sistema muestra un formulario para que el cliente rellene con los datos solicidtados.
- El cliente rellena los dotos solicitados y valida la acción.
- El sistema valida los datos insertados y registra al cliente como usuario.
Escenario Alternativo:
- El cliente puede cancelar la operación en cualquier momento.
- 4a. Algún dato no ha sido validado correctamente. El sistema muestra el mensaje de error correspondiente.
Caso de Uso: Iniciar Sesión.
Descripción: Permite la utentificación de un usuario registrado en la tienda
Actores: Cliente.
Precondiciones:
- No existe precondiciones para este caso de uso.
Escenario Principal:
- El cliente selecciona la acción Iniciar Sesión.
- El sistema muestra unas etiquetas para insertar Usuario y Contraseña.
- El cliente introduce dichos campos y valida la acción
- El sistema valida la acción.
- El sistema abre la sesión del cliente.
Escenario Alternativo:
- El cliente puede cancelar la operación en cualquier momento.
- 5b. La autentificación del cliente no ha sido correcta. El sistema le redirigirá de nuevo a la ventana para Iniciar Sesión.
Caso de Uso: Cerrar Sesión.
Descripción: Cierra la sesión abierta por un usuario registrado.
Actores: Cliente.
Precondiciones:
- El cliente debe de estar registrado en el sistema y con una sesión iniciada
Escenario Principal:
- El cliente selecciona la acción Cerrar Sesión
- El sistema cierra la sesión del cliente.
Escenario Alternativo:
- No existe escenario alternativo para este caso de uso.
Caso de Uso: Restaurar Contraseña.
Descripción: Restaura la contraseña de un determinado usuario registrado.
Actores: Cliente.
Precondiciones:
- El cliente que solicita la restauración de la contraseña debe de ser un usuario registrado.
Escenario Principal:
- El cliente selecciona restaurar contraseña.
- El sistema restaura la contraseña.
- El sistema envía la nueva contraseña al correo electrónico del cliente indicado en el momento del registro.
Escenario Alternativo:
- No existe escenario alternativo para este caso de uso.
Gestión de Facturación
Editar sección
Figura 1. Diagrama para el Caso de uso de la Gestión de la Facturación.
Caso de Uso: Facturar.
Descripción: Posibilita la facturación de un determinado pedido. Una vez el pedido sea facturado será enviado a la direción indicada.
Actores: Cliente.
Precondiciones:
- El cliente que desea facturar el pedido debe de ser un cliente registrado.
Escenario Principal:
- El cliente decide facturar su pedido y valida la acción
- El sistema le requerirá los datos necesarios para realizar correctamente el envío, a partir de un formulario.
- El cliente instruduce los datos requeridos y valida la acción.
- El sistema factura el pedido y lo registra.
Escenario Alternativo:
- El cliente puede cancelar la operación en cualquier momento.
- 4b. El sistema no puede facturar el pedido y no puede registrarlo. Mostrará el mensaje de error correspondiente.
Caso de Uso: Ver Pedido.
Descripción: Posibilita al administrador ver el estado de un pedido.
Actores: Administrador.
Precondiciones:
- El administrador tiene que estar correctamente autentificado.
Escenario Principal:
- El administrador selecciona un pedido registrado.
- El sistema muestra el estado del pedido seleccionado.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 1b. No existe ningún pedido registrado en el sistema. Se mostrará la lista vacía.
Caso de Uso: Ver Pedidos.
Descripción: El administrador debe poder ver el estado de todos los pedidos, procesados y cerrados.
Actores: Administrador.
Precondiciones:
- El administrador tiene que estar correctamente autentificado.
Escenario Principal:
- El administrador selecciona ver los pedidos registrados.
- El sistema muestra la lista de pedidos registrados mostrando el estado de estos.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 2b. No existe ningún pedido registrado en el sistema. Se mostrará la lista vacía.
Caso de Uso: Cerrar Pedido.
Descripción: Tras el envío del pedido, este debe de cerrarse.
Actores: Administrador.
Precondiciones:
- El pedido que se desea cerrar debe de estar registrado en el sistema.
- El administrador tiene que estar correctamente auntetificado.
Escenario Principal:
- El administrador selecciona el pedido que se ha enviado y se desea cerrar.
- El sistema muestra los detalles del pedidos.
- El administrador valida la acción.
- El sistema pasa el estado del pedido seleccionado a cerrado.
Escenario Alternativo:
- El administrador puede cancelar la operación en cualquier momento.
- 2b. No se puede pasar el estado del pedido a cerrado. Se mostrará el mensaje de error correspondiente.
2 - Documento de diseño:
Editar sección
Diagrama de Clases
Editar sección
Diagrama Entidad-Relación
Editar sección
3 - Persistencia de datos:
Editar sección
Elección del motor de bases de datos
Editar sección
Para obtener la persistencia de nuestra base de datos utilizaremos el SGBD Mysql. Esta elección se debe a los siguientes motivos:
- Buena integración con el entorno Ruby on Rails.
- Conocimiento del SGBD ya que es el mismo que utilizamos en la asignatura de Ingeniería Web.
- Fácil instalación en el entorno Linux.
- Amplia difusión.
Para hacer uso de Mysql desde nuestro proyecto RoR debemos de instalar Mysql en nuestro sistema operativo. Para ello haremos uso del siguiente comando:
sudo apt-get install mysql-server
Una vez lo tengamos instalado debemos de instalar la gema correspondiente para usarla desde nuestro proyecto RoR, esto lo haremos con:
gem install mysql2
Creación de las bases de datos
Editar sección
Para hacer persistentes nuestros datos debemos de crear en mysql 3 bases de datos, una para el entorno de desarrollo, otra para test y otra para producción.
Desde la consola de Linux lanzamos el comando:
mysql -u root -p
Indicamos la contraseña de root que hayamos definido y luego hacemos
create database montgomerydisc_dev; create database montgomerydisc_test; create database montgomerydisc_prod;
Configuración de Ruby para usar Mysql
Editar sección
Para configurar nuestra aplicación RoR y que podamos conectar con la base de datos Mysql debemos de indicar en el fichero Gemfile que use la gema mysql2, por ello añadiremos la siguiente línea de código.
gem 'mysql2'
Indicando a Ruby como conectar con la base de datos
Editar sección
Como paso final debemos de indicar a Ruby como conectar con nuestras bases de datos en los diferentes entornos. Para ello existe un fichero llamado MontgomeryDisc/config/databasy.yml donde debemos colocar lo siguiente (pondremos el ejemplo solo de la base de datos de desarrollo, las demás se configuran igual).
development: adapter: mysql2 encoding: utf8 database: montgomerydisc_dev pool: 5 username: root password: root
4 - Implementación:
Editar sección
El código fuente de esta tienda realiza en la asignatura de Comercio Electrónico se encuentra en MontgomeryDisc
Para el desarrollo de la aplicación de nuestra tienda virtual se ha utilizado los siguientes componentes.
- Rails 3.1.3
- Ruby 1.8.7
- IDE Aptana Studio 3
- MySQL
- Se han utilizado las siguientes gemas:
- mysql2
- json
- Para el buscador:
- sunspot_rails
- sunspot_solr
- nokogiri
- Para el paginador:
- will_paginate
- will_paginate_renderers
- Para la gestión de imagenes:
- paperclip
- Para la pasarela de pago:
- activemerchant
- Para el foro:
- forum_monster
- Para la gestión de usuarios:
- nifty-generators
- bcrypt-ruby
- mocha
5 - Log de desrrrollo:
Editar sección
Sprint 0: Instalación del entorno.
Editar sección
- 3/11/2011:
- Creación del proyecto en Assembla.
- Reparto de los roles.
- Realización de una primera planificación.
- 9/11/2011:
- Instalación del entorno de desarrollo en los portátiles.
- Revisión de la planificación.
- 16/11/2011:
- Correción de problemas en la instalación del entorno de desarrollo en los portátiles.
- Revisión de la planificación.
- 23/11/2011:
- Correción de problemas en la instalación del entorno a 2 integrantes del grupo.
- Revisión de la planificación.
Sprint 1: Realizar la gestión de los artistas.
Editar sección
- 30/11/2011:
- Documentación de análisis y diseño para la gestión de artistas-grupos.
- Creación de modelo para gestión de artistas-grupos.
- Creación de vista para gestión de artistas-grupos.
Sprint 2: Realizar la gestión de los discos.
Editar sección
- 14/12/2011:
- Documentación de análisis y diseño para la gestión de discos.
- Creación de modelo para gestión de discos.
- Creación de vista para gestión de discos.
- Añadida relación entre discos y artistas-grupos.
Sprint 3: Realizar la gestión de las discográficas.
Editar sección
- 21/12/2011:
- Documentación de análisis y diseño para la gestión de discográficas.
- Creación de modelo para gestión de discográficas.
- Creación de vista para gestión de discográficas.
Sprint 4: Búsquedas y vistas personalizadas.
Editar sección
- 26/12/2011:
- Documentación de análisis y diseño para la gestión de búsquedas y vistas personalizadas.
- Comienzo de la codificación para la busqueda de discos con las gemas sunspot_rails, sunspot_solr y nokogiri.
- 27/12/2011:
- Finalización de la codificación de busquedas de discos.
- Comienzo de la codificación para la paginación de los discos con las gemas will_paginate y will_paginate_renderers.
- 28/12/2011:
- Finalización de la codificación de la paginación de los discos.
- Revisión de la planificación.
- Realización de la codificación de la funcionalidad para subir las portadas de los discos, se utiliza la gema paperclip.
Sprint 5: Realizar la gestión del carrito de la compra.
Editar sección
- 29/12/2012:
- Documentación de análisis y diseño para la gestión del carrito de la compra.
- Comienzo de la implementación del carrito de la compra, para ello se comienza a estudiar el uso de la gema ActiveMerchant, aunque al final se rechaza su uso por no estar muy conseguida al estar en sus primeras versiones.
- 03/01/2012:
- Finalización del Carrito de la compra, sin la utilización de gema.
Sprint 6: Gestión y administración de foros.
Editar sección
- 03/01/2012:
- Documentación de análisis y diseño para la gestión del carrito de la compra.
- Comienzo de la codificación de la insercción del foro a la aplicación.
- 04/01/2012:
- Finalización de la insercción del foro a la aplicación, con la utilización de la gema forum_monster.
Sprint 7: Realizar la gestión de las etiquetas.
Editar sección
- 03/01/2012:
- Documentación de análisis y diseño para la gestión del carrito de la compra.
- Comienzo de la codificación de la gestión de etiquetas en la aplicación.
- 04/01/2012:
- Finalización de la codificación de la gestión de etiquetas en la aplicación sin uso de gema.
Sprint 8: Realizar la gestión de la seguridad.
Editar sección
- 04/01/2012:
- Documentación de análisis y diseño para la gestión de la seguridad.
- Comienzo de la codificación de la gestión de la seguridad en la aplicación.
- 09/01/2012:
- Finalización de la codificación de la gestión de la seguridad en la aplicación con el uso de gemas nifty-generators, bcrypt-ruby y mocha.
Sprint 9: Realizar la gestión de la facturación y pedidos
Editar sección
- 09/01/2012:
- Documentación de análisis y diseño para la gestión de la facturación y pedidos.
- Comienzo de la codificación para la gestión de la facturación y pedidos.
- 13/01/2012:
- Finalización de la codificación para la gestión de la facturación y de los pedidos.
- Comienzo de realización de despliegue de la aplicación.
- Comienzo de aplición de estilos a las vistas.
- 14/01/2012:
- Finalización de la realización del despliegue de la aplicación.
- Finalización de la aplicación de los estilos a las vistas.
- Comienzo de las pruebas del despliegue y de la aplicación.
- 17/01/2012:
- Terminación de los últimos flecos.
- Prebas de la aplicación en otros ordenadores que no sean los de desarrollo.
- Últimas ediciones en la Wiki.
6 - Instalación y despliegue
Editar sección
Para realizar la instalación de la aplicación, deberemos de realizar antes de todo un despliegue de la misma. Para realizar el despliegue se deben de seguir los siguientes pasos:
- Descargarnos todo el código del repositorio.
svn co http://subversion.assembla.com/svn/ce2012_montgomerydisc/MontgomeryDisc/
- Entramos en el direcotorio donde se encuentra la aplicación en si.
cd MontgomeryDisc
- Se le da permiso de ejecución al script de despliegue.
chmod +x despliegue.sh
Con esto debe de abrirnos el navegador Firefox con la página principal de nuestra tienda electrónica.
Script de Despliegue
Editar sección
echo Comienza el despligue de la aplicacion echo -------------------------------------- echo echo Instalación de las gemas necesarias echo bundle install echo echo Inserte clave de root para mysql mysql -h localhost -u root -p < creacionUsuario.sql echo echo Creado el usuario RUBY echo ---------------------------------------------- echo rake db:create RAILS_ENV="production" echo echo Creado la base de datos montgomerydisc_prod!! echo ---------------------------------------------- echo rake db:migrate RAILS_ENV="production" echo echo Creadas las tablas echo ---------------------------------------------- echo mysql -h localhost --user=ruby --password=burns < montgomerydisc_prod.sql echo echo Datos de prueba insertados correctamente echo ----------------------------------------------- echo rails server -e production & sleep 10 echo echo Lanzando navegador echo ------------------------------------------------ firefox http://0.0.0.0:3000
7 - Documento de configuración:
Editar sección
Instalación del Entorno Ruby & Rails
Editar sección
Vamos a describir los pasos seguidos para la instalación de Ruby & Rails en un ordenador equipado con un Sistema Operativo Linux, en una distribución Ubuntu 11.10. Lo primero que debemos de realizar es actualizar nuestro sistema. Para ello debemos de ejecutar la siguiente orden:
sudo apt-get update
Así comenzará la actualización de todo el sistema operativo. Una vez actualizado el sistema habrá que instalar tres paquetes necesarios para poder llevar a cabo la instalación del entorno, ello se conseguirá realizando la siguiente orden:
sudo apt-get install build-essential git-core curl
Una vez preparado el sistema para la instalación del entorno, es el momento de empezar la instalación. Se comenzará instalando RVM (Ruby Version Manager) el cual es un aplicación que gestiona las versiones de Ruby instaladas en el equipo. Para ello realizamos:
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
Cuando se termine este paso habrá que editar el fichero ~/.bashrc y añadir la siguiente línea a el:
echo ' -s "$HOME/.rvm/scripts/rvm" && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc
Una vez añadida recargamos el fichero con:
. ~/.bashrc
Para comprobar que la instalación de RVM se llevó de forma correcta podremos escribir en la consola, debiendo de mostrarse la información que se indica a continuación:
rvm requirements ... # For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following: ruby: /usr/bin/apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool
bison subversion
Ya tenemos RVM instalado correctamente, ahora debemos de instalar paquetes necesarios para proseguir la instalación, simplemente deberemos de introducir la siguiente orden en una terminal sin los saltos de línea:
sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion
Para continuar deberemos proseguir con la instalación de Ruby para ello debemos de ejecutar en una terminal:
rvm install 1.8.7
Una vez instalado esta versión le indicamos al sistema que es la que debe de usar:
rvm use 1.8.7
Para cerciorarse de que la instalación se ha realizado correctamente basta con realizar la siguiente orden, debiendo aparecer la información siguiente:
ruby -v ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
Para establecerlo como ruby predeterminado, establecemos:
rvm --default use 1.8.7
Ha llegado el momento de realizar la instalación de Rails para ello simplemente realizamos en un terminal:
gem install rails -v 3.1.3
Ya tenemos instalado en nuestro sistema en entorno de Ruby & Rails, pero quizá en nuestro uso podemos encontrar errores relacionados con MySQL:
Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /home/ryan/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb checking for rb_thread_blocking_region()... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lm... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lz... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lsocket... no checking for mysql_query() in -lmysqlclient... no checking for main() in -lnsl... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lmygcc... no checking for mysql_query() in -lmysqlclient... no *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension.
y con PostgreSQL:
/home/ryan/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb checking for pg_config... no checking for libpq-fe.h... no Can't find the 'libpq-fe.h header *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
Para ello debemos de instalar los paquetes libmysqlclient16-dev y libpq-dev para solucionar los problemas respectivamente.
Por último es necesario también tener instalada el paquete nodeJS, para el runtime de JavaScript.










