UNIVERSIDAD SIMÓN BOLÍVAR



Documentos relacionados
MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Figura 4.6: Prototipo de la pantalla de inicio.

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

UNIVERSIDAD DE SALAMANCA

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

GedicoPDA: software de preventa

CÓMO MANEJAR SU NUEVO SITIO WEB SOBRE DRUPAL Manual técnico y de usuario. Pontificia Universidad Javeriana Grupo PSU CDI

Capitulo III. Diseño del Sistema.

Colección. Aprende Drupal con Forcontu

Aplicación para la gestión de prácticas en empresas. Memoria

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2.

Objetivos del proyecto:

Manual CMS Mobincube

Manual de usuario administrador. Correo Exchange Administrado

Comisión Nacional de Bancos y Seguros

Manual para la utilización de PrestaShop

Resumen ÁREA DE FACTURACIÓN::INFORMES::Pedidos Detalle Resumen ÁREA DE

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

Guía paso a paso para la cumplimentación del formulario de candidatura

LiLa Portal Guía para profesores

Curso de PHP con MySQL Gratis

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

UNIVERSIDAD TECNOLOGICA DE HERMOSILLO SCRUM SPRINT #1. Ingenieria de Software I MAESTRO: BERNARDO PRADO DIAZ INTEGRANTES. Jorge Valdano.

Reporte inicial. Metodología

Conceptos Generales en Joomla

Capitulo 5. Implementación del sistema MDM

Análisis y diseño del sistema CAPÍTULO 3

Qué es Google Calendar? Qué se puede hacer en Google Calendar?

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

RESERVACIONES ONLINE MANUAL DE REFERENCIA

Manual PARA EL ADMINISTRADOR DE LA WEB DE PRÁCTICAS PRE PROFESIONALES Y PASANTÍAS

Resumen de la Tesina. Autor: Adrià Batet López. Tutor: Víctor Pascual Ayats

Capitulo 3. Desarrollo del Software

Planificación en Team Foundation Server 2010

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

PRESENTACIÓN DEL PRODUCTO

SISTEMA DE GESTIÓN DE INCIDENCIAS Y REQUERIMIENTOS MESA DE AYUDA SINAT MANUAL DE USUARIO

Indice. .01 Introducci n. .02 Perfiles de usuario. .03 Ingreso al portal Mi Entel PCS Empresas. .04 Activación de los teléfonos móviles de la empresa

CAPÍTULO 3 VISUAL BASIC

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Maqueta Sitio Web para el 2º Nivel

Joomla! La web en entornos educativos

Ministerio de Educación, Cultura y Deporte. Joomla! La web en entornos educativos. Guía del alumnado

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Volumen TECNOLOGÍA DE ADMINISTRACIÓN EMPRESARIAL SIMI EVOLUTION (9.0) Guía de usuario

Introducción a los sitios de SharePoint en Office 365

Manual hosting acens

Manual de Usuario Proveedor Módulo Cotizaciones

Introducción a Google Calendar Breve guía sobre algunas de sus funcionalidades destacables.

MANUAL ECOMMERCE 2.0

FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS:

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

Haga clic en los recuadros donde indica la mano y regrese al inicio del capítulo al hacer clic en el título de la sección donde se encuentra

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

Sección de Introducción.

Gestión de Oportunidades

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

TRÁFICO DE PISO 2. Rev. 1 15/04/09

Virtual-C: Una Herramienta para Administración de Contenidos en Sitios Web

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Ambiente Aprendizaje INACAP (AAI) Guía de Apoyo para el Alumno

Tienda Virtual Synergy (Parte 2)

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

Manual EDT DISEÑO EDT - CREAR EVENTO DE DIVULGACIÓN TECNOLÓGICA

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

MANUAL DE USO DE LA APLICACIÓN

Capítulo IV. Implementación del Sistema

Manual del Usuario Groupware

MANUAL DE. manual de Joomla JOOMLA

POWER POINT. Iniciar PowerPoint

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Manual de usuario del Centro de Control

Guía de referencia para mytnt. mytnt. C.I.T Tecnología Aplicada al Cliente

[8 ] Contenidos: tipologías y organización.

MANUAL DE LA APLICACIÓN HELP DESK

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

3. Qué es el Sistema Nacional de Indicadores de Contraloría Social?

GUÍA PARA LA INDUCCIÓN AL PUESTO DE TRABAJO

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

CIMA. MANUAL DE USUARIO

MANUAL DE USUARIO: AGENCIA DE VIAJES Configuración. Principales funcionalidades

Introducción a Moodle

ADT CONSULTING S.L. PROYECTO DE DIFUSIÓN DE BUENAS PRÁCTICAS

Análisis de Resultados

INTEGRACIÓN BPM-LIFERAY SOL

Base de datos en Excel

COMPRAS CEPAS A TRAVÉS DE INTERNET PORTAL CEPAS

E Manual de usuario. : Versión: 0.1 Fecha: 05/02/2013 Autor: Carlos Ors Carlos.ors@tecsidel.es

1.- Introducción y objetivos

Cómo ingresar a la Intranet?

Transcripción:

UNIVERSIDAD SIMÓN BOLÍVAR DECANATO DE ESTUDIOS PROFESIONALES COORDINACIÓN DE INGENIERÍA DE LA COMPUTACIÓN DESARROLLO DE UN SISTEMA WEB PARA EL MANEJO DE RESERVACIONES A TRAVÉS DEL PORTAL WEB DE TUDESCUENTÓN.COM Por: Daniela Alejandra B. Velásquez Conde Realizado con la asesoría de: Ivette Carolina Martinez PASANTÍA LARGA Presentado ante la Ilustre Universidad Simón Bolívar como requisito parcial para optar al título de Ingeniero en Computación Sartenejas, 18 de abril de 2012

1

Resumen La idea de este proyecto de pasantía es la elaboración de un sistema que permita realizar, manejar y controlar reservaciones en una serie restaurantes afiliados, a través de internet. Este sistema recibe el nombre de TuDescuentón Reservas, y estará ligado al sistema ya existente del portal web, TuDescuentón.com. La idea es ampliar dicho sistema, para que además de permitir la compra de cupones de consumo, brinde la oportunidad de realizar reservaciones que otorgen con un porcentaje de descuento en el consumo total, en los restaurantes asociados. El sistema de reservas, está conformado por 3 sub-sistemas fundamentales, que funcionan de manera independiente pero que se alimentan entre si. El primer sub-sistema es el utilizado por el Usuario Administrador de TuDescuentón.com para: 1. Agregar restaurantes al sistema 2. Agregar promociones al sistema 3. Revisar las ordenes generadas con las compras de los usuarios del portal web. El segundo sub-sistema es la utilizado por el usuario del portal web. Se encarga de mostrar los diferentes restaurantes sobre los que se pueden hacer reservaciones, además de manejar todo lo relacionado con la realización de la reservación perse. Fue desarrollado en el CMS Drupal 7. Para mostrar los restaurantes disponibles, el sistema, se guía por diferentes características, como la ubicación del local, la especialidad de su cocina, los restaurantes más reservados hasta el momento y los disponibles para el día. Además de mostrar restaurantes según las características estáticas ya mencionadas, el sistema te brinda la oportunidad de realizar búsquedas específicas sobre las características de la reservación que el usuario del portal web desea hacer, como el número de personas que asistirán, la ubicación del restaurante, la especialidad de la cocina y por último el día y hora de la reservación, con estos datos el buscador del sistema se encargará de filtrar y mostrar, los restaurantes dentro del sistema que cumplan con dichas condiciones y esten disponibles. Por último tenemos al sub-sistema utilizado por representante del restaurante, que permita visualizar y manejar el estado de las reservaciones, realizadas para su restaurante, pudiendo así llevar un control sobre su establecimiento. iv

Quiero dedicarle este libro a los seres que han marcado mi vida. A mi madre, mi gran amiga y compañera. La persona que ha dado la vida por mí, y me ha dedicado todo. A mi novio, Daniel Rodriguez del Villar, el ser con el que desde hace 5 años comparto mi vida, el que más que mi otra mitad, es parte de mi. Y por último, quisiera dedicarselo a mis abuelos, que aunque no estan físicamente, siempre me acompañan y guían desde el cielo. Es por todos ellos y para ellos que estoy cerca de graduarme de ingeniera en computación. Es a ellos a quienes le dedíco este libro. v

Agradecimientos Durante este largo y gratificante camino que fue estudiar Ingeniería en Computación en la Universidad Simón Bolívar, y que terminó, practicamente, con la elaboración de este proyecto, muchas personas han estado en mi vida sirviendo de apoyo y sostén, por lo sería injusto no mencionarlas. Realmente, es gracias a ellas, que pude llegar hasta este punto. La primera de ellas es Rosa Aimee Conde, mi madre, la mujer que me dió la vida y me ha apoyado desde que tengo uso de razón, la que confía en mi ciegamente y me ha dado la seguridad y apoyo que todo ser humano necesita para poder salir adelante. En segundo lugar quisiera agradecer a Daniel Rodríguez del Villar, mi novio, quien ha sido mi eterno compañero de laboratorio, mi mejor amigo, mi apoyo, mi amor y sobre todo el me mantuvo de pie y enfocada en llegar a esta meta, sin el no se si estuviese escribiendo hoy estas palabras. En tercer lugar quisiera agradecerle a los profesores, quienes con paciencia y tenacidad sembraron en mi el sentimiento computista. En especial, a la Profesora Ivette, mi tutora, una gran consejera. No puedo dejar de agradecerle a Rosa Zambrano, Rosita, por siempre estar ahí, apoyando al estudiante, guiandonos y sobretodo entendiendonos, mil gracias Rosita. Por último quisiera agradecer, a todo el equipo de la empresa donde realicé este proyecto, quisiera agradecerle a TuDescuentón.com. Sobre todo a Gianpaolo Valero, quien aún sin ser mi tutor formal, se convirtió en mi gran apoyo y amigo durante estos 5 meses, ganandose mi respeto y admiración. No puedo terminar, sin antes agradecerle al ser más importante de todos, quiero darle gracias a Dios, por siempre estar ahí a mi lado. Sin él realmente nada sería posible.

Índice general Introducción 1 1. Marco teórico 4 1.1. CMS Drupal.................................... 5 1.1.1. Que es Drupal............................... 5 1.1.2. Como funciona.............................. 6 1.1.3. Tecnologías utilizadas........................... 11 1.1.4. Conceptos relevantes........................... 11 1.2. Modelo de negocio de Tudescuentón.com.................... 13 1.2.1. Que es TuDescuentón.com........................ 13 1.2.2. Como funciona.............................. 13 1.2.3. Conceptos relevantes dentro del sistema actual de TuDescuentón.com 14 1.3. Metodología Ágil Scrum............................. 16 1.3.1. SCRUM en detalle............................ 17 2. Planteamiento del problema 21 2.1. Requerimientos Funcionales........................... 21 2.2. Requerimientos Técnicos............................. 22 2.3. Requerimientos de compatibilidad........................ 23 2.3.1. Manejo simultáneo de la base de datos de TuDescuentón.com y TuDescuentón Reservas desde Drupal................ 23 2.3.2. Creación conjunta de Asociados Comerciales............ 24 2.3.3. Creación conjunta de Descuentos................... 24 2.3.4. Proceso conjunto de compra....................... 24

3. Desarrollo e Implementación 25 3.1. Ventajas y desventajas del uso de Drupal para el desarrollo del sistema... 25 3.2. Resultados obtenidos por Sprints........................ 27 3.3. Resultados obtenidos por cada Sprints de manera detallada.......... 30 3.3.1. Sprint 1.................................. 30 3.3.2. Sprint 2.................................. 35 3.3.3. Sprint 3.................................. 37 3.3.4. Sprint 4.................................. 40 3.3.5. Sprint 5.................................. 42 3.3.6. Sprint 6.................................. 45 3.3.7. Sprint 7.................................. 50 4. Descripción del Producto 53 4.1. MODULES desarrollado............................... 53 4.2. Ampliación del sistema de TuDescuentón.com............... 54 5. Conclusiones y recomendaciones 56 A. Manuales 59 A.1. Manual de uso del BACKEND de TuDescuentón.com para el manejo de TuDescuentón Reservas.............................. 59 A.1.1. Manejo de usuarios asociados....................... 59 A.1.2. Manejo de descuentos asociados a TuDescuentón Reservas....... 61 A.2. Manual de instalación del sistema........................ 63 viii

Índice de figuras 1.1. Capas de Drupal.................................. 6 1.2. División de la clase node.............................. 7 1.3. Archivo con extensión.info dentro del MODULE AVAILABILITY......... 8 1.4. Función hook install() dentro del archivo.install del MODULE AVAILABILITY. 9 1.5. Función hook uninstall() dentro del archivo.install del MODULE AVAILABILITY 10 1.6. Diagrama de la base de datos de TuDescuentón.com antes de la creación de TuDescuentón Reservas........................... 14 1.7. Imagen modelo de la pizarra de tareas [SCRUMT]............... 19 2.1. Arquitectura de desarrollo de Drupal...................... 23 3.1. Diagrama de Secuencia del proceso de creación conjunta de Asociados Comerciales....................................... 33 3.2. Diagrama de Secuencia del proceso de creación conjunta de Descuentos.... 38 3.3. Como se declara una Base de Datos alterna en Drupal............. 44 3.4. Como se cambia de Base de Datos en Drupal.................. 44 3.5. Diagrama de Secuencia del proceso de compra desde el Sistema de Tudescuentón.com.................................... 48 3.6. Diagrama de Secuencia del proceso de reservación en caso exitoso....... 49 3.7. Diagrama del proceso de compra......................... 50 4.1. MODULES desarrollados.............................. 54 4.2. Diagrama de la base de datos de TuDescuentón.com después del desarrollo de TuDescuentón Reservas........................... 55

1 Introducción TuDescuentón.com es un portal web que se encarga de vender cupones de hasta un 90 % de descuento a los usuarios registrados en su página. Este año, el portal decidió ampliar su modelo de negocio incursionando en los sistemas de reservas para restaurantes via web. De ahí nace la idea de TuDescuentón Reservas, un sistema que le permitirá a los usuarios de TuDescuentón.com realizar reservaciones en los restaurantes afiliados por un monto fijo, logrando así una mesa segura a la hora deseada en el restaurante de su preferencia y con porcentaje de descuento de un 25 % sobre el consumo total. Hace poco más de un año, en Venezuela, el concepto de cupones de descuento vía web no tenía ningún significado. Hoy en día, después de tan poco tiempo transcurrido, existen varios portales con el mismo formato, por lo que la competencia se ha tornado reñida. Como una manera de inovar y sacar ventaja sobre sus competidores, TuDescuentón.com decide desarrollar TuDescuentón.com Reservas. Un nuevo sistema que buscará atraer un nuevo grupo de clientes y reafirmar los ya existentes. Actualmente en Venezuela, la manera de hacer reservaciones es tediosa. Primero, es necesario saber a que restaurante, exactamente, quieres ir, luego hay que búscar el número de teléfono de dicho restaurante, para llamar ver si hay disponibilidad, y de ser así, finalmente reservar. La idea de TuDescuentón Reservas, es automatizar este sistema y ampliar la gama de opciones a elegir de los usuarios web, quienes no necesitarán saber el nombre exacto del restaurante para poder realizar la reservación. Por otro lado, el sistema servirá de medio publicitario para los restaurantes, cuya informacíon estará siendo visualizada constantemente por los usuarios de TuDescuentón.com

2. El objetivo principal de este proyecto de pasantía es el desarrollo de un sistema que les permita a los usuarios registrados de TuDescuentón.com, hacer reservaciones en los restaurantes de su preferencia, de manera online, otorgandoles un 30 % de descuento sobre su consumo total. Para la elaboración de este proyecto de pasantía, es necesario cumplir con los siguientes objetivos: Ampliación del sistema de manejo de Usuarios Asociados de TuDescuentón.com para que permita la creación de Usuarios Asociados relacionados con TuDescuentón Reservas en Drupal. Esto incluye la creación, edición, eliminación y visualización de usuarios asociados a TuDescuentón Reservas, tanto en el sistema de TuDescuentón Reservas en Drupal como en el de TuDescuentón.com. Desarrollo del módulo para el manejo de promociones de reservas desde el BACKEND de TuDescuentón.com. Lo que incluye la creación, edición, eliminación y visualización de promociones de TuDescuentón Reservas. Desarrollo del módulo para el manejo de reservas por parte del Usuario Asociado. Permitirá al usuario asociado ver el estatus de su promoción y llevar un control sobre las reservaciones realizadas. Desarrollo de la funcionalidad que permita la búsqueda inteligente de restaurantes de acuerdo a la disponibilidad asociada a los restaurantes. Desarrollo de la funcionalidad que permita la búqueda de restaurantes por ciudades cercanas, según el estado donde se ubica el Usuario Registrado.

3 Desarrollo de la funcionalidad que le permita a los usuarios web, la búsqueda de restaurantes, por especialidad culinaria. Desarrollo de la funcionalidad que le permita a los usuarios web, la reservación de un restaurante a una hora y día específico. Desarrollo de la funcionalidad que permita la generación de órdenes de compra, asociadas a las reservaciones.

Capítulo 1 Marco teórico En este capítulo se extienden los conceptos más relevantes del sistema para la reservación de restaurantes. Qué es y cómo funciona Drupal, qué es y cómo funciona TuDescuentón.com, y como se hizo para interconectarlos, logrando así el sistema de TuDescuentón Reservas. La sección 1.1 presenta las definiciones básicas para entender como funciona Drupal, y de esta manera entender como funcionará TuDescuentón Reservas. La sección 1.2 describe como funciona el sistema actual de TuDescuentón.com, además presenta los aspectos y definiciones básicas del sistema bajo el que se maneja TuDescuentón.com, que afectan al sistema de Reservas. La última sección 1.3 describe la metodología utilizada para el desarrollo del proyecto de pasantía, SCRUM.

5 1.1. CMS Drupal En esta sección se introducirá la terminología, las herramientas, conceptos y procesos de Drupal 7. Los datos mostrados fueron tomados de [WWT03] y [SSO07]. 1.1.1. Que es Drupal Antes de comenzar a hablar sobre Drupal, explicaremos que es un CMS. Un CMS (Control Management System) es una aplicación utilizada para la creación, edición, gestión y publicación de contenido, páginas web principalmente. El gestor de contenidos genera páginas web dinámicas interactuando con el servidor para generarla bajo petición del usuario, con el formato predefinido y el contenido extraído de la base de datos del servidor. Lo que permite gestionar, bajo un formato estandarizado, la información del servidor, reduciendo el tamaño de las páginas para descarga y reduciendo el coste de gestión del portal con respecto a un sitio web estático, en el que cada cambio de diseño debe ser realizado en todas las páginas web, de la misma forma que cada vez que se agrega contenido tiene que crearse una nueva página HTML y subirla al servidor web. Drupal es un importante CMS de código abierto, modular, dinámico, flexible y elegante, idóneo para construir y gestionar comunidades en Internet que comenzó a desarrollarse desde el año 2001 y actualmente está en su versión 7. Por ser la versión 7 la actual; Drupal 7 será el utilizado para el el desarrollo de esta pasantía. Cabe destacar que existe una gran diferencia entre la versión anterior (Drupal 6) y la actual; por lo que se quiere aclarar, que todos los detalles y explicaciones dadas en esta sección serán referentes a Drupal 7 específicamente.

6 Drupal se maneja a través de MODULES. Los MODULES son complementos que se extienden para construir o mejorar la funcionalidad del núcleo base de Drupal y se agregan al proyecto de acuerdo a las necesidades del cliente. Este hecho, de que casi todos los aspectos del comportamiento puedan ser transformados a través de MODULES, ha llevado a muchos a afirmar que Drupal no es sólo un Sistema de Gestión de Contenidos (CMS), sino un Marco de Gestión de Contenidos (CMF), capaz de ser reequipado con las necesidades específicas y los requisitos funcionales solicitados. 1.1.2. Como funciona Drupal funciona por capas, cada una de ellas se encarga de manejar un parte del sistema y se comunican para mostrar el contenido final. Vease la figura 1.1: Figura 1.1: Capas de Drupal.

7 1. En la primera capa se encuentran los NODES, el corazón del sistema, quienes representan el contenido base del sitio web, son los contenedores de datos, es decir trabajan directamente con la base de datos. En la figura 1.2 se observa como se divide la clase node. Figura 1.2: División de la clase node.

8 2. En la próxima capa están los MODULES del sistema. Los MODULES son plugins que permiten ampliar la funcionalidad del sitio web, pueden agregar nuevos CONTENT TYPES y conductas asociadas a cada uno de ellos. Constan de 3 archivos principales: Archivo con extensión info: Es un archivo obligatorio, escrito en texto plano, con un formato similar al standard INI, para archivos de configuración. En el estará toda la información sobre el módulo: el nombre, una pequenã descripción, los archivos necesarios para su correcto funcionamiento, sus dependencias, la versión, el paquete y el proyecto al que pertenece. Figura 1.3: Archivo con extensión.info dentro del MODULE AVAILABILITY Archivo con extensión module: Es un archivo obligatorio escrito en PHP que contiene todos los HOOK IMPLEMENTATION y demás funciones utilizadas en el módulo. Los HOOKS son funciones en PHP con un número definido de parámetros y un tipo de resultado específico, que permiten a los MODULES interactuar con el núcleo de Drupal. Los HOOKS siguen el siguiente patrón: nombredelmodulo nombredelhook. Cuando Drupal desee permitir que los MODULES intervengan de alguna manera en

9 el sistema, llamará a todos los MODULES que posean el HOOK que esta necesitando. Por ejemplo: A la hora de listar los BLOCKS disponibles en el sistema, Drupal ve que MODULES tienen implementada la función hook block info() que para cada MODULES se llamará nombredelmodulo block info(). Archivo con extensión install: Es un archivo escrito en PHP, pero a diferencia del archivo anterior, no es obligatorio. Contiene las funciones que serán llamadas cuando el módulo sea instalado o desinstalado. La primera función importante dentro de este archivo, es la que responde a la llamada de hook install(), en ella se crean los CONTENT TYPES, TAXONOMYS y FIELD relacionados con el MODULE. En la figura 1.4 se puede observar la función hook install() que se encuentra en el archivo.install, de uno de los módulos creados. Figura 1.4: Función hook install() dentro del archivo.install del MODULE AVAILABILITY

10 La otra función importante dentro del archivo.install, es la que responde a la llamada de hook uninstall(), en ella se eliminan los FIELD??, si no son utilizados por otros CONTENT TYPE, las TAXONOMYS y finalmente los CONTENT TYPES relacionados con el MODULE. Como se observa en la figura 1.5 Figura 1.5: Función hook uninstall() dentro del archivo.install del MODULE AVAILABILITY 3. La tercera capa es la de los BLOCKS y MENUS. Los BLOCKS permiten mostrar cualquier contenido, previamente creado, en la página de acuerdo a la distribución de la misma, según el tema. Los BLOCKS representan información que puede se habilitada o deshabilitada en lugares específicos del sitio web. Siempre mantienen una estructura según el tema que este activo en el sistema para el momento, dicha estructura brinda facilidad de uso y control sobre lo que se desea mostrar. Los BLOCKS permiten mostrar información dentro del sistema. 4. La siguiente capa hacia arriba contiene los permisos de usuarios. En esta capa se de-

11 termina que cosas son accesibles para cada tipo de usuario. Los permisos se asignan a roles y los usuarios están relacionados con dichos roles. Por defecto Drupal maneja 3 roles: Usuario Anónimo (Usuario no conectado), Usuario Conectado y Administrador. 5. La última capa es la que contiene la plantilla del sitio. Se compone principalmente de CSS, XHTML y PHP. Las plantillas pueden ser asignadas sobre la base de permisos de usuarios. 1.1.3. Tecnologías utilizadas Esta sub sección habla un poco sobre las herramientas utilizadas dentro de Drupal 7. PHP es un lenguaje de programación de scripting, multi-plataforma y centrado en la web, sobre el que fue desarrollado Drupal. Drupal 7 soporta como versión mínima de PHP, la 5.2. El Manejador de Base de Datos utilizado por defecto en Drupal es MySQL, sin embargo la versión actual de Drupal utiliza, la librería PDO (PHP Data Objects), de PHP 5. Esta librería es una capa de abstracción que permite a los desarrolladores utilizar numerosas bases de datos como: MySQL, PostgreSQL, SQLite, MariaDB, entre otras. 1.1.4. Conceptos relevantes Para poder representar lo que comúnmente conocemos como ENTIDADES en los esquemas relacionales, en Drupal existen los CONTENT TYPES. Todos los CONTENT TYPES creados, parten del contenido base NODE y estan compuestos por FIELDS. Los FIELDS se pueden relacionar con los atributos de las entidades de un esquema relacional, más a diferencia de ellos, cada FIELD representa una tabla en la base de datos de Drupal.

12 Cada tabla asociada a un FIELD en la base de datos, sigue el siguiente patrón en su nombre: Comienza por field data seguido por el nombre del atributo. Y contiene los siguientes campos básicos: entity type: Este campo se refiere al NODE bundle: En este campo se especifíca el CONTENT TYPE asociado. deleted: 0 si no ha sido borrado, 1 si fue borrado. entity id: Identificador del tipo de contenido asociado revision id: Identificador de la revisión del atributo. language: Idioma en el que esta escrito el atributo. Por defecto se coloca und de indefinido, de esta manera no se asocia a ningún lenguaje en específico. delta: Campo utilizado para manejar FIELDS multivaluados, si el FIELD no lo es, se coloca en 0. Si existen FIELDS asociados a más de 1 CONTENT TYPE, solo se crea 1 tabla en la base de datos, y para especificar a que CONTENT TYPE se refiere el dato dentro de la tabla, se utiliza el campo, antes mencionado, bundle el cual contendrá el nombre del CONTENT TYPE asociado al valor. Otro concepto relevante dentro de Drupal, son las TAXONOMYS, quienes nos permiten categorizar el contenido de la página. Consisten en 2 elementos básicos: Los vocabularios y los términos. Los vocabularios representan un contenedor de conjuntos de palabras, donde cada palabra es un término. Por ejemplo, si tenemos un vocabulario Especialidades Culinarias los términos podrían ser Italiana, Mexicana, China, Japonesa, etc. Las taxonomias pueden ser jerarquizadas, por ejemplo, en el caso del vocabulario Ubicación, se tienen términos que

13 siguen una jerarquía así: El término Miranda, es padre del término Baruta. Y esta al mismo nivel que Zulia, pues ambos son hijos de la base de las taxonomías. 1.2. Modelo de negocio de Tudescuentón.com En esta sección se introducirán los terminos y herramientas necesarios para el entendimiento del sistema de TuDescuentón.com 1.2.1. Que es TuDescuentón.com TuDescuentón.com es una página web dedicada a la venta de cupones de descuento sobre una serie de establecimientos afiliados. 1.2.2. Como funciona TuDescuentón.com actualmente está dividido en 4 grandes ramas de ventas de cupones: Ciudades es más antiguo de todos, ofrece descuentos que van desde el área de salud y belleza hasta gastronomía. Viajes ofrece, cupones de descuento en lugares turísticos: posadas, hoteles, paquetes de aventura, etc. Ayuda esta rama, esta dedicada a la parte social de TuDescuentón.com. En ella las personas comprar cupones de ayuda para una causa en específica: Ninõs abandonados, enfermos, regalos de navidad para ninõs con escados recursos, etc. Eventos el más reciente de todos y como su nombre lo indica, a través de el se pueden comprar cupones de descuento en artículos relacionados con fiestas o celebraciones.

14 El sistema esta totalmente interconectado, los usuarios pueden comprar en cualquiera de las ramas anteriormente descritas, con la misma cuenta y el mismo saldo. Durante la pasantía se creó una rama más para este creciente sistema. En la Figura 1.6 se muestra la parte de la base de datos del sistema de TuDescuentón.com donde se realizó los cambios durante la pasantía. Figura 1.6: Diagrama de la base de datos de TuDescuentón.com antes de la creación de TuDescuentón Reservas. 1.2.3. Conceptos relevantes dentro del sistema actual de TuDescuentón.com Usuario Administrador es el usuario dentro de TuDescuentón.com encargado del manejo del BACKEND.

15 Usuario Registrado es una persona que se registró y autenticó en el sistema de TuDescuentón.com, con el fin de comprar cupones de descuento. Esta persona tiene asociada una cuenta, en la cual dispone de saldo, que podrá consumir en la página y con el que por tanto, podrá realizar reservaciones. Asociado Comercial es un cliente del sistema de TuDescuentón.com. El cual ofrecerá la posibilidad de reservar en su(s) establecimiento(s) través de TuDescuentón Reservas. Los Asociados Comerciales pueden tener más de un establecimiento relacionado dentro del sistema, cada establecimiento representa un Local. Un Descuento representa una promoción dentro del sistema. Los descuentos son necesarios para que los Asociados Comerciales salgan publicados en el sistema de TuDescuentón.com. Los descuentos constan de los siguientes atributos: Fecha de inicio de la promoción: Fecha en la que comienza a salir la promoción en la página. Fecha de finalización de la promoción: Se refiere a la fecha en la que la promoción se acaba. Título de la promoción: Título de la promoción visible al público dentro de la página web. Una Orden representa una petición de reservación por parte de un Usuario Registrado de TuDescuentón.com. Las ordenes constan de: Identificador del Asociado Comercial Fecha de la orden Cantidad de cupones asociados a la orden. Identificador del descuento relacionado con la orden

16 Si el Usuario Registrado lleva a cabo la compra, se genera una Cupón el cual afirma la válidez de su compra. El cupón podrá ser visto por el Usuario Registrado desde su cuenta y tendrá que imprimirlo para poder utilizar el descuento. El BACKEND de TuDescuentón.com representa la interfaz que utiliza el Usuario Administrador para manejar el sistema de TuDescuentón.com. En ella se pueden realizar las siguientes acciones: Creación, Edición y Eliminación de Asociados Comerciales Creación, Edición y Eliminación de Descuentos Manejo de Órdenes TuDescuentón.com cuenta con un sistema llamado BIZ, mediante el cual los Asociados Comerciales pueden manejar de sus descuentos dentro del sistema de TuDescuentón.com mediante interfaz amigable y sencilla. En ella se pueden realizar las siguientes acciones: Visualización de cupones vendidos Marcado de cupones usados 1.3. Metodología Ágil Scrum Para el desarrollo del proyecto de pasantía se utilizó la metodología ágil SCRUM. En esta sección hablaremos sobre dicha metodología.todos los conceptos aquí expuestos, fueron extraidos de [SCRUMT] y [SCRUMG].

17 1.3.1. SCRUM en detalle Antes de hablar de SCRUM, hablaremos un poco sobre, como funcionan las metodologías ágiles en general, para dar una visión más amplia. Metodología Ágil Las metodologías ágiles tienen como pilares fundamentales: Valorar al individuo y a las interacciones en el equipo de desarrollo más que a las actividades y las herramientas. Desarrollar software que funciona más que conseguir una buena documentación. Responder a los cambios más que seguir estrictamente una planificación. Satisfacer al cliente mediante tempranas y continuas entregas de software que le reporte un valor. Entregar frecuentemente software que funcione, desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre una entrega y la siguiente. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo. Ahora bien, ya con un concepto mas claro de lo que son las metodologías ágiles, hablemos de SCRUM. Un proyecto elaborado en SCRUM, consta de elementos y actividades. Los elementos son las entidades utilizadas como documentación, y las actividades se refieren a como se llevan a cabo o como se desempenãn los elementos en el proyecto. Los elementos de SCRUM son:

18 1. Las historias de usuario son los requerimientos del cliente en un lenguaje entendido por él. Son elaboradas llenando los siguientes datos: ID: Identificador auto-incremental único. Nombre: Descripción corta de la historia. De 2 a 10 palabras. Importancia: Representa el valor que el cliente le da a este requerimiento. Se representa en números enteros en una escala del 1 al 10. Estimación inicial: Valoración inicial del equipo de trabajo con relación a la cantidad de trabajo necesario para implementar la historia. Se mide en HOMBRES X DÍAS, considerando un día como 8 horas de trabajo. Por ejemplo, si una tarea usará 2 personas y durará 3 días, su estimación inicial es de 6 puntos. Como probarlo Descripción en lenguaje natural, de como se mostrar la historia en la presentación del Sprint Notas Información extra. 2. La Pila de producto: Es una lista priorizada de las Historias de usuarios. 3. Sprint: Es la medida de el proyecto. Un proyecto se divide en N Sprint, cada uno de los cuales genera una entrega de producto u til para el cliente. 4. La Pizarra de tareas: Como su nombre lo indica, es una pizarra donde se pegan todas las tareas del Sprint, escritas previamente en PostSticks. Por lo que nos permite llevar un control de la evolución del Sprint. Esta dividida 3 zonas: a) Tareas Por Empezar: En esta parte de la pizarra, se encuentran las tareas del Sprint que no han sido iniciadas. Al inicio del Sprint todas las tareas estan en esta zona.

19 b) Tareas En Proceso: Aquí se encuentran las tareas del Sprint que estan en pleno desarrollo. c) Tareas Finalizadas: Finalmente, esta zona de la pizarra, se encuentran las tareas que han sido completadas. Cada integrante del equipo le hace alguna distinción a sus tareas para que se pueda ver a fácilmente la evolución de cada uno. En la figura 1.7 se muestra como sería una pizarra de tareas y cuales son sus divisiones. Figura 1.7: Imagen modelo de la pizarra de tareas [SCRUMT] Las Actividades que se llevan a cabo en SCRUM son: 1. Planificación del Sprint: El primer día del Sprint se realiza la reunión de planificación. Dicha reunión, consta de 2 partes: Selección de requisitos: En ella, el cliente presenta al equipo la pila de producto. El equipo aclara las dudas con el cliente y seleccionan las historias de usuarios a completar en el Sprint. Tiene una duración máxima de 4 horas. Planificación del Sprint: Durante la planificación del Sprint, el equipo elabora la lista de tareas del Sprint necesarias para completar las Historias de usuario. La