Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Creaci On de Un Portal Web Corporativo: Grado en Ingenier Ia Inform Atica
Creaci On de Un Portal Web Corporativo: Grado en Ingenier Ia Inform Atica
Supervisor:
Autor: Antonio José Balaguer Valls
Albert Araujo Fabregat Tutor académico:
José Manuel Badia Contelles
Palabras clave
Django; Django-cms; Portal web; Bases de datos;
Keywords
Django; Django-cms; Portal web; Databases;
Índice general
1. Introducción 5
1.1. Contexto y motivación del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. Entorno de desarrollo 19
4.1. Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2. Django-cms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7. Conclusiones 65
3
4
Capı́tulo 1
Introducción
5
En la empresa ninguno de los miembros es informático, sino que tienen contratado un in-
formático externo, que en caso de error acude a la empresa y lo arregla presencialmente o por
internet si la urgencia es extrema y el error lo permite.
La intervención de este informático externo es esporádica, pero fue este mismo informático
quien les aconsejó qué ordenadores debı́an comprar para una empresa de esas caracterı́sticas.
Además instaló todo el software que hay en la actualidad y se encarga de la totalidad del
mantenimiento, ya sea del software como del hardware.
Este informático se eligió, por ser conocido por un miembro de la empresa, que ya habı́a
trabajado con él en el pasado. Se dedica a este tipo de gestiones en diversas empresas a nivel
individual.
Debido a lo anterior, se acordó que el supervisor de la estancia en la empresa se encargarı́a
de toda la parte de las prácticas que no tuvieran que ver con cuestiones técnicas, y serı́a el tutor
de la UJI el encargado de hacer de director del proyecto.
En cuanto a la motivación del proyecto, esta radica en que mucha de la competencia directa
de la empresa sı́ que tiene una web corporativa. Además su presencia en internet es nula, lo cual
les hace estar en una gran desventaja. Con la creación del portal web la empresa quiere cambiar
esta desventaja para transformarla en una ventaja, ofreciendo mejoras que la competencia no
tiene. Con estas mejoras se pretende dar a conocer la empresa en un ámbito global pero sobre
todo local, para poder llegar al número máximo de clientes posibles y al mismo tiempo ofrecerles
un mejor servicio a los clientes actuales. Por otro lado, otra forma de darse a conocer será con
la creación de diferentes perfiles en las redes sociales más populares. Como se ha demostrado
estas redes son de gran utilidad, para dar visibilidad a la empresa y mantener un contacto con
los clientes.
Con todo esto la empresa pretende conseguir:
6
la empresa quiere poder hacer cambios en el futuro tanto en el portal como en el catálogo,
por lo que habrá que escribir un pequeño manual con los conceptos básicos para el manejo y
actualización de su contenido.
Podemos subdividir todos estos objetivos en 2 tipos.
Objetivos empresariales:
Objetivos técnicos:
Diseño e implantación de una base de datos de los diferentes materiales que puede hacerse
accesible desde el portal web en forma de catálogo.
Formación del personal en el uso y manejo tanto del portal web como de los diversos
perfiles en redes sociales.
7
8
Capı́tulo 2
9
principal es la de empezar a crear una imagen en Internet para la empresa. Además esto supone
hacerle entender la empresa la importancia que tiene este tipo de herramientas en la actualidad.
La idea principal de las redes sociales, es la de dar a conocer la empresa, Facebook está más
orientado a publicar fotos y publicidad de la empresa, dónde está, las reuniones que se hacen,
etc. La idea de Twitter es más la de promocionar artı́culos de oferta de manera puntual.
Ambas herramientas se usarán para permitir un contacto permanente y actualizado con los
clientes. También serán utilizadas para tener un lugar donde los clientes pueden dejar reseñas
y opiniones o para responder a sus dudas.
10
Capı́tulo 3
11
Dentro de la metodologı́a tradicional, las tareas se intentarán llevar acabo según se indicó
en el diagrama de Gantt que se realizó previamente en la propuesta técnica como muestra la
figura 3.2. Estas se dividen en:
Inicio del proyecto: En este periodo se definen los objetivos generales del proyecto,
el método de trabajo, el entorno de desarrollo y documentación necesaria, ası́ como el
formato y estándares del proyecto. Para ello se necesitará hacer diversas reuniones con el
cliente.
Planificación: Consiste en definir las tareas y estimar el tiempo. Este trabajo se verá
reflejado en un diagrama de Gantt.
Desarrollo técnico: Esta tarea se divide en 4 subtareas, lo que hace de esta la parte más
extensa del proyecto y la de mayor importancia.
12
3.3. Estimación de recursos del proyecto
Los recursos utilizados para el desarrollo del proyecto los podemos dividir en 3 clases: hard-
ware, software y recursos humanos.
Software:
Tras hablar con la empresa en diferentes reuniones, se acordó que todo el software que se
utilizase para el desarrollo deberı́a ser gratuito. Con esta premisa seleccionamos las diferentes
herramientas y entornos de desarrollo:
Django-cms: Este software será la piedra angular del portal Web. La principal diferencia
con Django es que Django-cms es un Framework de aplicaciones web desarrollado con
Django. Está creado para facilitar la creación de portales web. Django por su parte es más
genérico, se podrı́a decir que Django-cms es elegir la rama de la creación de portales web,
que es una de las muchas cosas que se puede hacer con Django y adaptarlo para que su
uso sea mucho más intuitivo y fácil para personas que nunca han usado Django.
Aparte de este software, que serı́a el principal, se han utilizado otros como pueden ser diversas
aplicaciones web, también gratuitas, para la realización tanto de diagramas de clases, mockups,
redimensionar imágenes, etc. Por ejemplo para la realización de los diagramas de Gantt se
ha utilizado el Microsoft Project Management, software para la planificación de proyectos y
colaboración.
Hardware:
En cuanto al hardware utilizado, al principio de la estancia se me asignó un portátil con
Windows 7 que ya poseı́a la empresa. Durante la estancia, y tras realizar algunas pruebas y
leer diversos manuales tanto de Django como Django-cms, se decidió usar un sistema operativo
basado en OS X por los siguientes motivos.
Leer una instrucción pensada para un sistema operativo como es Linux y tener que tradu-
cirla, resultaba ser muy complejo y ralentizaba mucho el desarrollo del proyecto. Ya que
muchas veces no era capaz de hacer la “traducción” literal de la orden.
Daba la casualidad de que yo poseı́a un portátil con estas caracterı́sticas. Tras probarlo
por mi cuenta en mi tiempo libre y ver que me resultaba mas naturales e intuitivo, y tras
consultar con la empresa, no tuvieron objeciones en que cambiará.
13
Caracterı́sticas técnicas:
Recursos humanos:
Como se ha explicado anteriormente la totalidad del proyecto ha sido realizado por una sola
persona. Aunque se ha realizado el trabajo de un Ingeniero Informático y de un Diseñador web.
3.4. Presupuesto
En este apartado vamos a calcular cuál serı́a el coste que la empresa deberı́a haber pagado
por nuestro trabajo. Esto se puede calcular de diferentes formas.
Hemos realizado el cálculo para dos situaciones diferentes: como si fuésemos trabajadores
de la empresa y como si la empresa contratara a otra empresa de informática para el desarrollo
del proyecto.
Para la obtención de los datos nos hemos basado en el Boletı́n Oficial del Estado (BOE) del
miércoles 20 de mayo del año 2015 [6] , con la excepción del coste por hora en empresa externa,
que se ha elegido teniendo en cuenta el coste real de diversas empresas de informática. Este
dato se ha obtenido de preguntar a diferentes empresas locales cuánto pagan por servicios de
informática.
Para los cálculos de la figura 3.1 del coste para la empresa de la Seguridad social del in-
formático, hemos visitado diferentes apartados de la web [9].
Como podemos ver en la imagen 3.1, se calcula por un lado el precio teórico por hora de un
titulado superior según el BOE y se multiplica por las horas de la estancia en prácticas.
Y por otro lado observamos el cálculo teniendo como precio por hora, el obtenido de con-
sultar con diversas empresas de la comunidad y simulando que somos una empresa externa que
nos contratan para el desarrollo del proyecto, teniendo en cuenta el IVA que deberı́a pagar la
empresa.
14
Figura 3.1: Resumen de los costes.
15
3.5. Desarrollo del proyecto
Para poder observar con detalle, el desarrollo del proyecto, y poder ver su evolución lo
más útil es revisar el diagrama de Gantt de la figura 3.3 que refleja la planificación final. Sin
embargo deberemos explicar qué ocurrió durante el desarrollo del proyecto para entender las
modificaciones con respecto a la planificación inicial.
En la siguiente figura 3.2, podemos ver la idea previa que se tenı́a. Estas eran las etapas que
ı́bamos a seguir para el desarrollo del proyecto.
Imprevistos/Incidencias. Para entender por qué no se ha cumplido al pie de la letra lo
preestablecido es necesario resumir todos los problemas encontrados. Los describiremos con más
detalle en capı́tulos posteriores, cuando hablemos del diseño, implementación y desplegado del
portal web.
Una de las primeras ideas de la empresa era que se pudieran realizar algún tipo de compra
en la web. Realmente no querı́an nada muy sofisticado pero sı́ que tuviera esa funcionalidad.
Esto desembocó en un problema, como se explica en el capı́tulo 5 mucho más a fondo. Ya
que trabajamos muchas horas sobre 2 frameworks que al final no nos permitieron añadir esa
funcionalidad que buscábamos: poder realizar ventas on-line.
Otro de los imprevistos fue la curva de aprendizaje tan grande que resultaron tener Django-
cms y Django. Sumado al continuo cambio de estos frameworks en sus diversas versiones, que
hicieron que el proyecto tuviera que ir adaptándose y evolucionando casi al mismo tiempo.
Como consecuencia de todo lo anterior podemos ver que no se han podido realizar las
últimas tareas del primer diagrama de Gantt. La configuración y desarrollo del proyecto se
estimó con una duración muy por debajo del que después resultó ser. En lugar de las 170
horas inicialmente previstas, hemos dedicado más de 200 a la instalación del entorno y la
implementación del portal y el catálogo. Las ausencias más destacadas en las tareas finalmente
desarrolladas son la del “alojamiento al hospedaje seleccionado”, en consecuencia tampoco se
pudo “comprobar y adaptar la web al servidor”. Por último la “realización de un pequeño
manual de administración”. Esto es debido a la limitación del tiempo que tenemos de 300h
asociadas a la estancia. Esto nos obligó a cambiar bastante el plan establecido inicialmente,
haciendo que el diagrama de Gantt definitivo quedará como podemos ver en la figura 3.3.
16
Figura 3.2: Diagrama de Gantt a priori.
17
Figura 3.3: Diagrama de Gantt a posteriori.
18
Capı́tulo 4
Entorno de desarrollo
En este capı́tulo explicaremos por qué hemos elegido cada una de las herramientas utilizadas
para desarrollar el proyecto. Además explicaremos cómo hemos instalado cada una de estas
herramientas.
Como podemos ver, la figura 4.1 nos muestra las relaciones entre las herramientas y las
capas que estas forman.
19
En el tercer escalón encontramos el lenguaje de programación y el sistema de gestión de
base datos elegido para desarrollar el portal: Python y PostgreSQL.
El mayor inconveniente que encontramos fue que la totalidad de los manuales de las prin-
cipales herramientas que necesitamos para el desarrollo del proyecto están pensados para ser
implementados en un sistema operativo basado en Unix. Esto nos supuso un gran inconveniente
cuando intentamos trabajar con Windows y fue una de las principales razones por las que se
decidió elegir usar un ordenador con el sistema Mac OS X..
La ventaja fundamental que nos ofrece el Mac OS X es la sencillez de instalar cualquier
software. La mayorı́a se han instalado por lı́nea de órdenes desde el terminal.
Python: Es un lenguaje de programación que permite trabajar con gran rapidez e integrar
sus sistemas con efectividad.
En cuanto a la base de datos, tanto django como django-cms, nos ofrece una propia por
defecto, que es SQLite. Por motivos de seguridad decidimos cambiarla por una base de datos
en PostgreSQL. Esto es debido a que nos ofrece una mayor seguridad, su gran popularidad, el
hecho de ser multiplataforma y su facilidad de administración.
La elección de Python fue muy sencilla, Django se basa en Python ası́ que necesitamos
instalarlo. Además al ser un lenguaje de programación que ya dominamos nos encontramos más
seguros al abordar el proyecto. Por otro lado, para los proyectos en Django se aconseja usar
entornos virtuales y Python nos ofrece esto de forma muy sencilla. Con los entornos virtuales,
lo que buscamos es tener nuestro proyecto aislado del resto de software del sistema operativo y
al mismo tiempo tenemos todo el software del proyecto bien identificado con las versiones que
queremos.
En cuanto a la instalación, para Python es tan sencillo como entrar en su web y bajar el
archivo. Arrastramos a la carpeta de Aplicaciones y ya está instalado.
Para el entorno virtual, necesitamos haber instalado previamente Python.
Para la instalación por lı́nea de órdenes usaremos la instrucción “easy install virtualenv”.
Con esto instalado podremos a crear entornos virtuales. Para ello haremos uso del comando
“virtualenv env”. En este caso el nombre elegido es “env” pero podrı́a ser cualquier otro, esto
nos creará un directorio con el nombre que le hemos dado. Dentro nos encontraremos 3 carpetas
que son las que vemos en la figura 4.2.
20