APEDEPE
Comentarios0| APEDEPE | |
| Autores | José Luis Aparicio Rodríguez Miguel Pérez Montero Manuel Jesús de la Calle Brihuega |
Tienda dedicada a la venta de libros de forma online

Añadida por AparicioRodriguezJoseLuis Cargos
Editar sección
Jefe de proyecto: Manuel Jesús De la calle Brihuega
Arquitecto software:Manuel Jesús De la calle Brihuega
Analista/Programador:
- Manuel Jesús De la calle Brihuega
- José Luis Aparicio Rodriguez
- Miguel Ángel Perez Montero
Diseñador de interfaz de usuario:
- Manuel Jesús De la calle Brihuega
- José Luis Aparicio Rodriguez
Documentador: José Luis Aparicio Rodriguez
Administrador de la Wiki: José Luis Aparicio Rodriguez
Codificador de pruebas: Miguel Ángel Perez Montero
Administrador de base de datos: Miguel Angel Perez Montero
Administrador de sistemas:
- Manuel Jesús De la calle Brihuega
- José Luis Aparicio Rodriguez
- Miguel Ángel Perez Montero
Entregable 1 - Documento de análisis
Editar sección
Historias de usuario
Editar sección
Autores
Editar sección
- Añadir autor: cuando el dueño de la tienda sepa de la existencia de un nuevo autor, debe poderlo dar de alta en el sitio. Tras hacer un click, teclear los detalles del autor en un formulario y enviarlo, los datos del autor deben estar disponibles.
- Listar autores: la interfaz de administración debe tener una página principal que funcione como lista de todos los autores
- Ver autor: debe haber páginas que muestren los detalles de cada autor individual
- Editar autor: cambiar los datos de un autor debe ser tan sencillo como darlo de alta
- Eliminar autor: los autores deben poder ser eliminados del sistema
Libros
Editar sección
- Añadir libro: cuando el dueño de la tienda sepa de la existencia de un nuevo libro, debe poderlo dar de alta en el sitio.
- Subir portada de libro: el administrador debe poder subir una imagen de la portada del libro que sea visible a los clientes de la tienda.
- Listar libros: la interfaz de administración debe tener una página principal que funcione como lista de todos los libros
- Ver libro: debe haber páginas que muestren los detalles de cada libro individual
- Editar libro: cambiar los datos de un libro debe ser tan sencillo como darlo de alta
- Eliminar libro: los libros deben poder ser eliminados del sistema
Editores
Editar sección
- Añadir editor: cuando el dueño de la tienda sepa de la existencia de un nuevo libro, debe poderlo dar de alta en el sitio.
- Listar editor: la interfaz de administración debe tener una página principal que funcione como lista de todos los editores.
- Ver editor: debe haber páginas que muestren los detalles de cada editor individual
- Editar editor: cambiar los datos de un editor debe ser tan sencillo como darlo de alta
- Eliminar editor: los editores deben poder ser eliminados del sistema
Catálogo
Editar sección
- Ojear libros: el cliente debe poder echar un ojo a los libros de la tienda, navegando de libro en libro y buscándolos por su título.
- Buscar libros: el cliente debe poder escribir algunos términos y obtener una lista de todos los libros encontrados que encajan con su búsqueda.
- Ver detalles de libro: tras ojear los títulos o buscarlos, el cliente debe poder obtener toda la información específica disponible sobre un libro particular encontrado.
- Últimas adquisiciones: hace falta estar al corriente sobre los libros 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
Editar sección
- Añadir al carrito: el cliente debe poder añadir un producto al carrito
- Sacar del carrito: el cliente debe poder eliminar items del carrito
- Vaciar el carrito: el cliente debe poder vaciar el carrito
Foro
Editar sección
- Ver foro: ver la lista de todos los mensajes del foro en forma de hilos de discusión
- Enviar un mensaje al foro: el cliente debe poder enviar un mensaje al foro
- Ver un mensaje del foro: el cliente debe poder ver un mensaje del foro
- Responder a un mensaje del foro: el cliente debe poder responder a un mensaje del foro
Etiquetas
Editar sección
- Asignar etiquetas: el administrador debe poder asignar una serie de etquetas a un libro.
- Editar etiquetas: el administrador debe poder añadir y eliminar etiquetas de un libro editando un campo con tal propósito.
- Listar etiquetas: los clientes de la tienda deben poder ver las etiquetas asignadas a los libros
- Mostrar etiqueta: Mientras un cliente contempla los detalles de un libro, debe poder pulsar en cada etiqueta para mostrarle todos los libros que comparten esa misma etiqueta.
- Recomendar libros: Mientras el usuario está contemplando un libro, el sistema debe ser capaz de recomendar libros similares al cliente, proporcionando enlaces a libros y etiquetas relacionados con el libro actual.
Seguridad
Editar sección
- Inicio de sesión correcto: el usuario debe poder inciar sesión de forma correcta.
- Inicio de sesión incorrecto: cuando un usuario que no ha iniciado sesión intenta acceder a una funcioalidad 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írsele 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
Autores
Editar sección
Descripción del caso de uso Añadir Autor
Editar sección
Descripción: Añadir un nuevo autor al sistema
Precondición: El autor no se encuentra registrado en el sistema
Postcondición: El sistema cuenta con un nuevo autor almacenado
Escenario principal:
- El administrador quiere registrar un nuevo autor en el sistema
- El administrador accede al formulario para registrar un nuevo autor
- El administrador rellena el formulario con el nombre y apellidos del nuevo autor
- El sistema almacena el nuevo autor en el sistema
Descripción del caso de uso Editar Autor
Editar sección
Descripción: Editar la información de un autor
Precondición: El autor se encuentra registrado en el sistema
Postcondición: El sistema almacena los cambios en el autor
Escenario principal:
- El administrador quiere editar un autor
- El administrador accede al formulario para editar un autor
- El administrador cambia el nombre y/o apellidos del autor
- El sistema guarda los cambios realizados en el autor
Descripción del caso de uso Ver Autor
Editar sección
Descripción: Muestrar la información de un autor
Precondición: El autor se encuentra registrado en el sistema
Postcondición: El sistema muestra la información del autor
Escenario principal:
- El administrador quiere ver la información de un autor
- El administrador accede a la información del autor
Descripción del caso de uso Listar Autores
Editar sección
Descripción: Muestrar todos los autores
Precondición: ninguna
Postcondición: El sistema muestra todos los autores correctamente
Escenario principal:
- El administrador quiere ver todos los autores
- El administrador accede al listado de todos los autores
Descripción del caso de uso Eliminar Autor
Editar sección
Descripción: Eliminar un autor
Precondición: El autor se encuentra registrado en el sistema
Postcondición: El sistema queda con un autor menos (el eliminado)
Escenario principal:
- El administrador quiere eliminar un autor
- El sistema pide la confirmación de eliminación para un autor elegido
- El administrador confirma la eliminación
- El sistema elimina el autor del sistema
Libros
Editar sección
Descripción del caso de uso Añadir Libro
Editar sección
Descripción: Añadir un nuevo libro al sistema
Precondición: El libro no se encuentra registrado en el sistema
Postcondición: El sistema cuenta con un nuevo libro almacenado
Escenario principal:
- El administrador quiere registrar un nuevo libro en el sistema
- El administrador accede al formulario para registrar un nuevo libro
- El administrador rellena el formulario con el isbn , titulo, paginas y precio del nuevo libro
- El sistema almacena el nuevo libro en el sistema
Descripción del caso de uso Editar Libro
Editar sección
Descripción: Editar la información de un libro
Precondición: El libro se encuentra registrado en el sistema
Postcondición: El sistema almacena los cambios en el libro
Escenario principal:
- El administrador quiere editar un libro
- El administrador accede al formulario para editar un libro
- El administrador cambia el isbn, titulo, paginas o precio del libro
- El sistema guarda los cambios realizados en el libro
Descripción del caso de uso Subir Portada
Editar sección
Descripción: Subir portada para un libro
Precondición: El libro se encuentra registrado en el sistema
Postcondición: El sistema almacena la portada del libro en el sistema
Escenario principal:
- El administrador quiere subir portada para un libro
- El administrador accede al formulario para indicar la nueva portada a subir
- El administrador acepta los cambios
- El sistema guarda los cambios realizados sobre la portada del libro en el sistema
Descripción del caso de uso Ver Libro
Editar sección
Descripción: Mostrar la información de un libro
Precondición: El librose encuentra registrado en el sistema
Postcondición: El sistema muestra la información del libro
Escenario principal:
- El administrador quiere ver la información de un libro
- El administrador accede a la información del libro
Descripción del caso de uso Listar Libros
Editar sección
Descripción: Muestrar todos los libros
Precondición: ninguna
Postcondición: El sistema muestra todos los libroscorrectamente
Escenario principal:
- El administrador quiere ver todos los libros
- El administrador accede al listado de todos los libros
Descripción del caso de uso Eliminar Autor
Editar sección
Descripción: Eliminar un libro
Precondición: El librose encuentra registrado en el sistema
Postcondición: El sistema queda con un libro menos (el eliminado)
Escenario principal:
- El administrador quiere eliminar un libro
- El sistema pide la confirmación de eliminación para un libro elegido
- El administrador confirma la eliminación
- El sistema elimina el libro del sistema
Editores
Editar sección
Descripción del caso de uso Añadir Editor
Editar sección
Descripción: Añadir un nuevo autor al sistema
Precondición: El editor no se encuentra registrado en el sistema
Postcondición: El sistema cuenta con un nuevo editor registrado
Escenario principal:
- El administrador quiere registrar un nuevo editor en el sistema
- El administrador accede al formulario para registrar un nuevo editor
- El administrador rellena el formulario con el nombre del nuevo editor
- El sistema almacena el nuevo editoren el sistema
Descripción del caso de uso Editar Editor
Editar sección
Descripción: Editar la información de un editor
Precondición: El editorse encuentra registrado en el sistema
Postcondición: El sistema almacena los cambios en el editor
Escenario principal:
- El administrador quiere editar un editor
- El administrador accede al formulario para editar un editor
- El administrador cambia el nombre del editor
- El sistema guarda los cambios realizados en el editor
Descripción del caso de uso Ver Editor
Editar sección
Descripción: Muestrar la información de un editor
Precondición: El editorse encuentra registrado en el sistema
Postcondición: El sistema muestra la información del editor
Escenario principal:
- El administrador quiere ver la información de un editor
- El administrador accede a la información del editor
Descripción del caso de uso Listar Autores
Editar sección
Descripción: Muestrar todos los editores
Precondición: ninguna
Postcondición: El sistema muestra todos los editores correctamente
Escenario principal:
- El administrador quiere ver todos los editores
- El administrador accede al listado de todos los editores
Descripción del caso de uso Eliminar Editor
Editar sección
Descripción: Eliminar un editor
Precondición: El editor se encuentra registrado en el sistema
Postcondición: El sistema queda con un editor menos (el eliminado)
Escenario principal:
- El administrador quiere eliminar un editor
- El sistema pide la confirmación de eliminación para un editor elegido
- El administrador confirma la eliminación
- El sistema elimina el editor del sistema
Catálogo
Editar sección
Descripción del caso de uso Ojear Libros
Editar sección
Descripción: Ver todos los libros de la tienda
Precondición: ninguna
Postcondición: El sistema muestra los libros
Escenario principal:
- El usuario quiere ver el catalogo de libros de la tienda
- El sistema muestra todos los libros disponibles en la tienda
Descripción del caso de uso Buscar Libros
Editar sección
Descripción: Buscar un libro en la tienda
Precondición: ninguna
Postcondición: El sistema muestra los libros
Escenario principal:
- El usuario quiere buscar un libro en concreto
- El usuario introduce el nombre del libro y pulsa buscar
- El sistema busca el libro indicado entre los registrados y muestra su información
Descripción del caso de uso Ver detalles de libro
Editar sección
Descripción: Ver detalles de un libro de la tienda
Precondición: El libro está registrado en el sistema
Postcondición: El sistema muestra la información asociada a un libro
Escenario principal:
- El usuario quiere ver el información sobre un libro de la tienda
- El usuario busca en el catálogo el libro deseado
- El usuario accede a la información del libro
- El sistema muestra toda la información disponible sobre el libro
Descripción del caso de uso Últimas adquisiciones
Editar sección
Descripción: Buscar los últimos libros registrados en el sistema
Precondición: Existe al menos un libro registrado en la tienda
Postcondición: El sistema muestra los ultimos libros registrados
Escenario principal:
- El usuario quiere ver los ultimos libros adquiridos por la tienda
- El sistema busca los ultimos libros registrados y los muestra
Carrito de la compra
Editar sección
Descripción del caso de uso Añadir al carrito
Editar sección
Descripción: Añade al carrito un nuevo libro
Precondición: ninguna
Postcondición: queda añadido el libro al carrito
Escenario principal:
- El usuario quiere añadir un nuevo libro al carrito
- El sistema añade el libro al carrito
Descripción del caso de uso Sacar del carrito
Editar sección
'Descripción: 'saca del carrito un libro
Precondición: existen elementos en el carrito
Postcondición: el carrito queda con un elemento menos
Escenario principal:
- El usuario quiere quitar un libro del carrito
- El sistema quita el libro del carrito
Descripción del caso de uso Vaciar el carrito
Editar sección
Descripción: el carrito queda vacio
Precondición: existen elementos en el carrito
Postcondición: el carrito queda sin elementos en el carrito
Escenario principal:
- El usuario quiere vaciar el carrito
- El sistema quita todos los libros del carrito
Foro
Editar sección
Descripción del caso de uso Ver foro
Editar sección
Descripción: Visualizar el foro
Precondición: ninguna
Postcondición: el usuario ve la lista de todos los mensajes del foro
Escenario principal:
- El usuario quiere ver el foro
- El sistema muestra los mensajes del foro
Descripción del caso de uso Enviar mensaje al foro
Editar sección
Descripción: El usuario envia un mensaje al foro
Precondición: ninguna
Postcondición: queda añadido un nuevo mensaje al foro
Escenario principal:
- El usuario quiere enviar un nuevo mensaje al foro
- El sistema muestra un nuevo mensaje en el foro
Descripción del caso de uso Ver un mensaje del foro
Editar sección
Descripción: El usuario observa un mensaje del foro
Precondición: existen mensajes en el foro
Postcondición: Se muestra un mensaje al usuario
Escenario principal:
- El usuario quiere ver un mensaje del foro
- El usuario selecciona un mensaje del foro
- El sistema muestra el mensaje
Descripción del caso de uso Responder a un mensaje del foro
Editar sección
Descripción: El usuario responde un mensaje del foro
Precondición: existen mensajes en el foro
Postcondición: Se muestra la respuesta del usuario
Escenario principal:
- El usuario quiere responder un mensaje del foro
- El usuario selecciona un mensaje del foro
- El sistema muestra todos los mensajes del foro
Etiquetas
Editar sección
Descripción del caso de uso Asignar etiqueta
Editar sección
Descripción: asignar una nueva etiqueta
Precondición: debe existir la etiqueta
Postcondición: el administrador asigna la etiqueta a un libro
Escenario principal:
- El usuario quiere asignar una nueva etiqueta
- El usuario elige el libro al que quiere asignar la etiqueta
- El sistema asigna la etiqueta al libro
Descripción del caso de uso Editar etiqueta
Editar sección
Descripción: El administrador edita una etiqueta
Precondición: existe la etiqueta en el sistema
Postcondición: la etiqueta queda editada
Escenario principal:
- El usuario quiere editar una etiqueta
- El usuario elige la etiqueta a editar
- El usuario introduce los datos de la etiqueta
- El sistema guarda la etiqueta modificada
Descripción del caso de uso Listar etiquetas
Editar sección
Descripción: El administrador lista todas las etiquetas del sistema
Precondición: existen etiquetas en el sistema
Postcondición: Se muestran todas las etiquetas del sistema
Escenario principal:
- El usuario quiere listar las etiquetas
- El sistema muestra todas las etiquetas
Descripción del caso de uso Mostrar etiqueta
Editar sección
Descripción: El usuario quiere ver la información de una etiqueta
Precondición: existen etiquetas en el sistema
Postcondición: Se muestra la información de la etiqueta
Escenario principal:
- El usuario quiere ver la información de una etiqueta
- El usuario selecciona la etiqueta
- El sistema muestra la información de la etiqueta
Descripción del caso de uso Recomendar libros
Editar sección
Descripción: Se muestran los libros recomendados
Precondición: ninguna
Postcondición: Se muestran los libros recomendados
Escenario principal:
- El usuario selecciona un libro del catalogo
- El sistema muestra la información del libro junto a los libros recomendados
Seguridad
Editar sección
Descripción del caso de uso Inicio de sesión correcto
Editar sección
Descripción: iniciar sesión de forma correcto en el sistema
Precondición: el usuario existe en el sistema
Postcondición: el usuario inicia sesión de forma correto
Escenario principal:
- El usuario quiere iniciar sesión
- El usuario escribe su nombre y contraseña
- El sistema inicia sesión al usuario de forma correta
Descripción del caso de uso Inicio de sesión incorrecto
Editar sección
Descripción: El usuario inicia sesión de forma incorrecta
Precondición: existe el usuario en el sistema
Postcondición: el inicio de sesión es de forma incorrecta
Escenario principal:
- El usuario quiere iniciar sesión
- El usuario escribe su nombre y contraseña
- El sistema inicia sesión al usuario de forma incorreta
Descripción del caso de uso Restaurar contraseña
Editar sección
Descripción: El usuario quiere restaurar su contraseña
Precondición: el usuario está registrado en el sistema
Postcondición: La contraseña del usario queda restaurada
Escenario principal:
- El usuario quiere restaurar su contraseña
- El sistema envia un email al usuario con su nueva contraseña
Facturación
Editar sección
Descripción del caso de uso Facturar
Editar sección
Descripción: Realizar facturación de los pedidos
Precondición: existen productos que facturar
Postcondición: se facturan todos los pedidos realizados
Escenario principal:
- El usuario quiere facturar sus pedidos
- El usuario rellena el formulario con sus datos personales
- El sistema emite el pedido
Descripción del caso de uso Ver pedidos
Editar sección
Descripción: El usuario quiere ver todos los pedidos realizados
Precondición: existe al menos un pedido en el sistema
Postcondición: el sistema muestra los pedidos realizados por el usuario
Escenario principal:
- El usuario quiere ver los pedidos realizados
- El sistema muestra la información y estado de los pedidos
Descripción del caso de uso Ver pedido
Editar sección
Descripción: El usuario quiere ver la información del pedido
Precondición: existe al menos un pedido en el sitema
Postcondición: Se muestra la información del pedido
Escenario principal:
- El usuario quiere ver la información del pedido
- El sistema muestra la información del pedido
Descripción del caso de uso Cerrar pedido
Editar sección
Descripción: El usuario quiere cerrar el pedido
Precondición: existe al menos un pedido en el sistema
Postcondición: el pedido queda cerrado
Escenario principal:
- El usuario quiere cerrar el pedido
- El sistema cambia el estado del pedido a cerrado
Entregable 2 - Documento de diseño
Editar sección
Diagrama de clases
Editar sección

Añadida por AparicioRodriguezJoseLuis
Diagrama de sistemas
Editar sección
Entregable 3 - Casos de prueba
Editar sección
Autores
Editar sección
Test Unitarios
Editar sección
- test_name
Test Funcionales
Editar sección
- should get index
- should get new
- should create author
- should show author
- should get edit
- should update author
- should destroy author
Libros
Editar sección
Test Unitarios
Editar sección
- test_failing_create
- test_create
- test_has_many_and_belongs_to_mapping
- test_has_and_belongs_to_many_authors_mapping
Test Funcionales
Editar sección
- should get index
- should get new
- should create book
- should show book
- should get edit
- should update book
- should destroy book
Editores
Editar sección
Test Funcionales
- should get index
- should get new
- should create publisher
- should show publisher
- should get edit
- should update publisher
- should destroy publisher
Catalogo
Editar sección
Test Funcionales
Editar sección
- should get index
- should get show
- should get search
- should get latest
Comentarios
Editar sección
Test Funcionales
Editar sección
- should get index
- should get new
- should get edit
- should create comment
- should show comment
- should update comment
- should destroy comment
Pedido
Editar sección
Test Funcionales
Editar sección
- should get index
- should get show
- should get close
Etiquetas
Editar sección
Test Funcionales
Editar sección
- should get index
- should get new
- should get edit
- should create tag
- should show tag
- should update tag
- should destroy tag
Sesión de usuario
Editar sección
Test Funcionales
Editar sección
- should get index
- should get new
- should get edit
- should create user_session
- should show user_session
- should update user_session
- should destroy user_session
Usuarios
Editar sección
Test Funcionales
Editar sección
- should get index
- should get new
- should get edit
- should create user
- should show user
- should update user
- should destroy user
Entregable 4 - Persistencia de datos
Editar sección
Configuración de la base de datos
Editar sección
La configuración de nuestra base de datos se encuentra en el fichero config/database.yml, tal fichero tiene lo siguiente:
development: adapter: sqlite3 host: 127.0.0.1 encoding: utf8 database: db/development.sqlite3 test: adapter: sqlite3 host: 127.0.0.1 encoding: utf8 database: db/test.sqlite3 production: adapter: sqlite3 host: 127.0.0.1 encoding: utf8 database: db/production.sqlite3
Tablas creadas
Editar sección
Tabla Autores
Editar sección
create_table "authors", :force => true do |t| t.string "first_name" t.string "last_name" t.datetime "created_at" t.datetime "updated_at" end
Tabla Editores
Editar sección
create_table "publishers", :force => true do |t| t.string "name", :null => false t.datetime "created_at" t.datetime "updated_at" end
Tabla Libros
Editar sección
create_table "books", :force => true do |t| t.string "title", :null => false t.integer "publisher_id", :null => false t.datetime "published_at" t.string "isbn", :limit => 13 t.text "blurb" t.integer "page_count" t.float "price" t.datetime "created_at" t.datetime "updated_at" t.string "photo_file_name" t.string "photo_content_type" t.integer "photo_file_size" end
Tabla Autores_Libros
Editar sección
create_table "authors_books", :id => false, :force => true do |t| t.integer "author_id", :null => false t.integer "book_id", :null => false end
Tabla Libros_Etiquetas
Editar sección
create_table "books_tags", :id => false, :force => true do |t| t.integer "tag_id", :null => false t.integer "book_id", :null => false end
Tabla Items del Carrito
Editar sección
create_table "cart_items", :force => true do |t| t.integer "book_id" t.integer "cart_id" t.float "price" t.integer "amount" t.datetime "created_at" end
Tabla Carritos
Editar sección
create_table "carts", :force => true do |t| t.datetime "created_at" t.datetime "updated_at" end
Tabla Catalogos
Editar sección
create_table "catalogs", :force => true do |t| t.datetime "created_at" t.datetime "updated_at" end
Tabla Categorias
Editar sección
create_table "categories", :force => true do |t| t.string "title" t.boolean "state", :default => true t.integer "position", :default => 0 t.datetime "created_at" t.datetime "updated_at" end
Tabla Comentarios
Editar sección
create_table "comments", :force => true do |t| t.text "body" t.integer "user_id" t.integer "book_id", :null => false t.datetime "created_at" end
Tabla Foros
Editar sección
create_table "forums", :force => true do |t| t.string "title" t.text "description" t.boolean "state", :default => true t.integer "topics_count", :default => 0 t.integer "posts_count", :default => 0 t.integer "position", :default => 0 t.integer "category_id" t.datetime "created_at" t.datetime "updated_at" end
Tabla Articulos del Pedido
Editar sección
create_table "order_items", :force => true do |t| t.integer "book_id" t.integer "order_id" t.float "price" t.integer "amount" t.datetime "created_at" t.datetime "updated_at" end
Tabla Pedidos
Editar sección
create_table "orders", :force => true do |t| t.string "email" t.string "phone_number" t.string "ship_to_first_name" t.string "ship_to_last_name" t.string "ship_to_address" t.string "ship_to_city" t.string "ship_to_postal_code" t.string "ship_to_country" t.string "customer_ip" t.string "status" t.string "error_message" t.datetime "created_at" t.datetime "updated_at" end
Tabla Posts
Editar sección
create_table "posts", :force => true do |t| t.text "body" t.integer "forum_id" t.integer "topic_id" t.integer "user_id" t.datetime "created_at" t.datetime "updated_at" end
Tabla Editores
Editar sección
create_table "publishers", :force => true do |t| t.string "name", :null => false t.datetime "created_at" t.datetime "updated_at" end
Tabla Editores
Editar sección
create_table "taggings", :force => true do |t| t.integer "tag_id" t.integer "taggable_id" t.string "taggable_type" t.integer "tagger_id" t.string "tagger_type" t.string "context", :limit => 128 t.datetime "created_at" end
Tabla Etiquetas
Editar sección
create_table "tags", :force => true do |t| t.string "name" end
Tabla Temas
Editar sección
create_table "topics", :force => true do |t| t.string "title" t.integer "hits", :default => 0 t.boolean "sticky", :default => false t.boolean "locked", :default => false t.integer "posts_count" t.integer "forum_id" t.integer "user_id" t.datetime "created_at" t.datetime "updated_at" end
Tabla Sesión del usuario
Editar sección
create_table "user_sessions", :force => true do |t| t.datetime "created_at" t.datetime "updated_at" end
Tabla Usuarios
Editar sección
create_table "users", :force => true do |t| t.string "login", :null => false t.string "crypted_password" t.string "password_salt", :null => false t.string "persistence_token", :null => false t.datetime "created_at" t.datetime "updated_at" t.integer "topics_count", :default => 0 t.integer "posts_count", :default => 0 end
Entregable 5 - Implementación
Editar sección
Todo el codigo fuente de nuestro proyecto puede verse en la plataforma Assembla, a traves del siguiente enlace : ApDePe
Lanzamiento de la aplicación
Editar sección
Para obtener la aplicacion del servidor de Assembla debemos de realizar:
svn co http://subversion.assembla.com/svn/ce2012apdepe/
La versión de Ruby necesaria para la correcta instalación es la versión 1.9.2
La versión de Rails necesaria para la correcta instalación es la versión 3.1.1
Instalación de la aplicación
Editar sección
Para instalar la aplicación debemos de lanzar el script InstalarApDePe.sh que se encuentra en el directorio: CE2012ApDePe/ApDePe/
Lanzamiento de la aplicación
Editar sección
Para lanzar la aplicación debemos de lanzar el script LanzarApDePe.sh que se encuentra en el directorio:
CE2012ApDePe/ApDePe/
Para poder ejecutar ambos script es necesario darle a los ficheros permisos de ejecucion CHMOD 777 nombre.sh
Entregable 6 - Log de desarrrollo
Editar sección
Preliminar
Editar sección
- Instalación de Ruby on Rails en cada ordenador
- Creación de cuenta en Assembla
- Creación de esta wiki
- Elección de nombre del proyecto
- Configuración de SVN como sistema de control de versiones a utilizar por todos los miembros
- Se reparten los roles a cada componente
Sprint 0
Editar sección
- Realizacion del analisis correspondiente a la clase Autores a implementar
- Creación de la tabla Autores en la base de datos
- Implementación de autores en ruby on rails
- Realización de pruebas unitarias y funcionales
Sprint 1
Editar sección
- Realizacion del analisis correspondiente a la clase Libros a implementar
- Realizacion del analisis correspondiente a la clase Editores a implementar
- Creación de la tabla Libros en la base de datos
- Creación de la tabla Editores en la base de datos
- Creación de la tabla Autores_Libros
- Implementación de libros en ruby on rails
- Implementación de editores en ruby on rails
- Realización de pruebas unitarias y funcionales para ambas clases implementadas
Sprint 2
Editar sección
- Realizacion del analisis correspondiente a la interfáz Cátalogo
- Implementación del catálogo en ruby on rails
- Resuelto error al destruir cualquier objeto en la aplicación, añadiendo en layout <%= javascript_include_tag "application" %>
- Realización de pruebas de integración, funcionales y unitarias
- Implementación de busquedas en el catalogo
- Instalación de gema sunspot_rails para las búsquedas
- Instalación de gema sunspot_solr para las búsquedas
- Instalación de la gema will_paginate
- Implementación de método que nos muestra los últimos libros
Strint 3
Editar sección
- Realización del análisis correspondiente al carrito
- Implementación del carrito y linea de carrito
- Realización de pruebas de integración, funcionales y unitarias
- Implementación de las funcionalidades del carrito
- Generación de vistas y estilos correspondiente al sprint
Sprint 4
Editar sección
- Realización del análisis correspondiente al foro
- Implementación del foro, con sus correspondientes temas, categorias y posts
- Instalación de la gema forum_monster
- Realización de pruebas de integración, funcionales y unitarias
- Implementación de las funcionalidades del foro
- Generación de vistas y estilos correspondiente al sprint
Sprint 5
Editar sección
- Realización del análisis correspondiente a las etiquetas
- Implementación de etiquétas
- Realización de pruebas de integración, funcionales y unitarias
- Implementación de las funcionalidades del etiquetas
- Generación de vistas y estilos correspondiente al sprint
Sprint 6
Editar sección
- Realización del análisis correspondiente a la seguridad
- Implementación de usuarios y sesión de usuario
- Realización de pruebas de integración, funcionales y unitarias
- Implementación de las funcionalidades de usuario y sesión de usuario
- Generación de vistas y estilos correspondiente al sprint
Sprint 7
Editar sección
- Realización del análisis correspondiente a la facturación
- Implementación de pedidos y linea de pedido
- Realización de pruebas de integración, funcionales y unitarias
- Implementación de las funcionalidades de pedido y linea de pedido
- Generación de vistas y estilos correspondiente al sprint
- Instalación de la gema yaml_db para el despliegue e instalación de la aplicación









