herramienta la generaciÓn de opinionestauja.ujaen.es/bitstream/10953.1/9334/1/tfg_juan... · juan...

81
Escuela Politécnica Superior de Linares Grado en Ingeniería Telemática Universidad de Jaén Escuela Politécnica Superior de Linares HERRAMIENTA PARA LA GENERACIÓN DE OPINIONES. Alumno: Juan José Martos Muñoz Tutor: Molina González, María Dolores Depto.: Ingeniería de Telecomunicación Octubre, 2018

Upload: others

Post on 18-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Esc

uela

Pol

itécn

ica

Sup

erio

r de

Lina

res

Grad

o en I

ngen

iería

Telem

ática Universidad de Jaén

Escuela Politécnica Superior de Linares

HERRAMIENTA PARA LA GENERACIÓN DE OPINIONES.

Alumno: Juan José Martos Muñoz

Tutor: Molina González, María Dolores

Depto.: Ingeniería de Telecomunicación

Octubre, 2018

Page 2: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN
Page 3: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Universidad de Jaén

Escuela Politécnica Superior de Linares

HERRAMIENTA PARA LA GENERACIÓN DE OPINIONES.

Alumno: Juan José Martos Muñoz

Tutor: Molina González, María Dolores

Depto.: Ingeniería de Telecomunicación

Firma del autor/a Firma del tutor/a

Page 4: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN
Page 5: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

ÍNDICE 1. RESUMEN 7 2. INTRODUCCIÓN 8

2.1. Motivación 8 2.2. Estructura del documento 9

3. OBJETIVOS 11 4. ESTADO DEL ARTE 12

4.1. Análisis de sentimientos 12 4.2. Niveles de minería de opinión 13 4.3. Portales web de opinión 14

5. MATERIALES Y MÉTODOS 23 5.1. Materiales 23 5.2. Estudio de posibles tecnologías para implementar la herramienta 23

5.2.1. Arquitectura web 23 5.2.2. Frontend 25 5.2.3. Backend 27

5.3. Tecnologías seleccionadas para implementar la herramienta 30 5.3.1. Arquitectura de la herramienta 30 5.3.2. FrontEnd de la herramienta 31 5.3.3. BackEnd de la herramienta 31 5.3.4. Sistema Operativo: MacOS 31

6. DESARROLLO 33 6.1. Diseño de datos 34

6.1.1. Modelo Entidad-Relación 34 6.1.2. Relaciones con el modelo 41

6.2. Diseño de la interfaz FrontEnd 44 6.2.1. Bootstrap 46

6.3. Diseño del BackEnd 46 6.3.1. Paquete OIL 46 6.3.2. Paquete AUTH 49 6.3.3. Gestión de usuarios 52 6.3.4. Definición de las páginas de inicio para cada tipo de usuario 53 6.3.5. Creación de nuevos usuarios 53 6.3.6. Gestión de las vistas 54

7. RESULTADOS Y DISCUSIÓN 57 8. CONCLUSIONES 58

8.1. Líneas de futuro 58 9. ANEXOS 60

9.1. Manual de instalación de la herramienta 60 9.1.1. Contenido del entregable 60 9.1.2. Requisitos mínimos 60 9.1.3. Instalación de dependencias 61

9.2. Manual de uso 64 9.2.1. Login 64 9.2.2. Registro 65

�5

Page 6: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

9.2.3. Administrador 66 9.2.4. Usuario básico 76

10. ÍNDICE DE FIGURAS 80 11. REFERENCIAS BIBLIOGRÁFICAS 81

�6

Page 7: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

1. RESUMEN

“La información es poder”: A lo largo de toda la historia se ha observado que la

información ha sido lo más demandado. Tener una gran cantidad de datos sobre cualquier

cosa hace que seamos la entidad o persona que más sabe de esta “cosa”. Hoy en día, con la

tecnología actual, tener una gran cantidad de datos no es complicado, lo realmente difícil

es tener la capacidad de analizar este gran volumen de datos, y aquí es donde aparece el

Big Data. El Big Data se encarga de almacenar y tratar grandes volúmenes de datos.

El proyecto consiste en crear una herramienta capaz de definir un interfaz donde

poder introducir opiniones textuales y valorar campos sobre cualquier entidad, desde una

Universidad a un puesto concreto en una empresa privada. Con la ayuda de esta

herramienta se podrían generar miles de opiniones, las cuales se podrían analizar después

con la ayuda del Big Data.

A lo largo de este documento se explicará cada una de las partes del proyecto, así

como una introducción y un manual de uso de la herramienta.

�7

Page 8: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

2. INTRODUCCIÓN

El desarrollo y la aparición de la Web 2.0, cuyo propósito principal fue el

intercambio ágil de información entre usuarios, ha hecho que el contenido que podemos

encontrar en internet crezca de forma exponencial en los últimos años. Si a esto le

añadimos la aparición de servicios que facilitan la comunicación y generación de

contenidos entre usuarios, el volumen de usuarios también incrementa de forma

exponencial.

Conocer la opinión de los demás es una fuente importante de información. Gracias

al auge de internet se ha observado la aparición de herramientas que permiten dar una

opinión, desde foros, blogs e incluso redes sociales. Esto ha abierto una gran oportunidad

de saber que opina la sociedad con solo navegar por internet. Los usuarios son ahora una

fuente de información constante en multitud de sectores como son la publicidad, política,

deportes, tecnología, turismo, etc.

En este trabajo se ha desarrollado una herramienta para la generación de opiniones

sobre cualquier entidad. Para ello ha sido necesario realizar un estudio previo de los

diferentes portales web existentes que nos permiten generar opiniones. La herramienta

desarrollada nos permite generar opiniones sobre cualquier entidad, añadida con

anterioridad en ella, ver las opiniones y valoraciones añadidas por otros usuarios y extraer

esta información en formato CSV.

2.1. Motivación

Al ser el conocimiento de la opinión de los demás una fuente importante de

información, el objetivo de las empresas es generar conocimiento a partir de todo esto.

Conocimiento que les permita mejorar la toma de decisiones ya no solo partiendo de sus

propios datos, sino también de las opiniones y valoraciones de los clientes en la web. Si a

esto le añadimos el auge de las Tecnologías de la Información y la Comunicación (TIC), la

forma de interactuar entre las personas y la sociedad ha cambiado totalmente. Infinidad de

�8

Page 9: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

plataformas web reemplazan los métodos tradicionales por nuevos capaces de interactuar

con los usuarios y que están basados en las experiencias de ellos.

La motivación principal por la cual he escogido este proyecto, ha sido querer

estudiar y analizar algo diferente a lo que he realizado en mi trayectoria académica, y este

tema me parecía bastante interesante. Poder crear una herramienta capaz de generar

opiniones y poder profundizar en el análisis de sentimientos es algo que jamás hubiese

imaginado. En definitiva, mi motivación consiste en aprovechar esta última oportunidad

que me ofrece la universidad para aprender algo nuevo y ayudar con el uso de esta nueva

herramienta.

2.2. Estructura del documento

El presente documento conforma la memoria final de mi trabajo fin de grado para

la titulación Grado en Ingeniería Telemática de la Universidad de Jaén.

A lo largo de este, mostraremos la metodología usada para crear una herramienta

capaz de generar corpus de opiniones textuales y almacenarlas en una base de datos para su

posterior extracción. La memoria se ha estructurado en diez apartados, en los que trato de

explicar el trabajo realizado. A continuación, expondré los diferentes apartados:

En los primeros tres apartados, se realiza un Resumen del trabajo, explicamos la

Motivación que nos lleva a realizarlo y los Objetivos de este.

En el apartado cuarto, se encuentra el Estado del arte, donde hacemos un resumen

sobre qué es el análisis de sentimientos y los distintos niveles que posee, además de

comentar algunos sitios web actuales que nos permiten introducir opiniones en distintos

ámbitos.

En el apartado quinto mencionamos los Materiales, las Herramientas de desarrollo

y lenguajes utilizados.

�9

Page 10: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

En el apartado sexto describimos el Desarrollo de la herramienta explicando el

código generado.

En los apartados séptimo y octavo realizaremos un Análisis de los resultados

obtenidos a partir de los Objetivos establecidos inicialmente y el Desarrollo del trabajo,

además de las Conclusiones alcanzadas al finalizar el trabajo.

En el apartado noveno se encuentran los Anexos. En ellos aparece un manual de

instalación y un manual de uso de la herramienta.

Y por último, en los apartados décimo y undécimo tenemos un Índice de figuras y

una Bibliografía donde aparecen todas las referencias utilizadas.

�10

Page 11: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

3. OBJETIVOS

A continuación se detallan los objetivos del trabajo de fin de grado:

- Estudiar en qué consiste el Análisis de Opiniones y su importancia.

- Realizar un estudio de diferentes herramientas que permiten introducir

opiniones.

- Desarrollar una herramienta para la inserción de opiniones y valoraciones de

campos relacionadas con una entidad en general.

- Redactar una memoria que recoja todo el trabajo desarrollado así como los

manuales de instalación y de usuario.

�11

Page 12: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

4. ESTADO DEL ARTE

4.1. Análisis de sentimientos

El análisis de sentimientos, también conocido como minería de opinión, es el

proceso de determinar el tono emocional que hay detrás de una palabra, oración o

documento y se utiliza para intentar entender las actitudes, opiniones y emociones

expresadas en una mención online (la actitud puede ser el estado emocional del autor al

momento de escribir, o el efecto emocional que el autor intenta causar en el lector) [23].

Desde el punto de vista de la minería de textos, el análisis de sentimientos es una

tarea de clasificación masiva de documentos escritos en un lenguaje natural de manera

automática, en función de la connotación positiva o negativa del lenguaje. Estos

tratamientos generalmente se basan en relaciones estadísticas y de asociación, no en

análisis lingüístico. Esta tarea a veces resulta muy complicada debido a que en ocasiones

es difícil incluso poner de acuerdo a diferentes anotadores humanos sobre la clasificación a

asignar a un texto dado. La interpretación personal de un individuo es diferente de la de los

demás, y además se ve afectada por factores culturales y experiencias propias de cada

persona. Esta tarea es aún más complicada cuanto más corto sea el documento escrito y

peor escrito esté, como es el caso de los mensajes en redes sociales tipo twitter [21].

Hoy en día se habla de dos enfoques para intentar solventar el análisis de

sentimientos [22].

1. Enfoque semántico: Los cuales se caracterizan por el uso de diccionarios de

términos con orientación semántica de polaridad u opinión. Los sistemas preprocesan el

texto y lo dividen en palabras, y luego comprueban la aparición de los términos en el

diccionario para asignar el valor de polaridad del texto mediante la suma de valores de

polaridad de los términos. Normalmente estos sistemas además incluyen un tratamiento

más o menos avanzado de términos modificadores (muy, poco, demasiado…) que

aumentan o reducen la polaridad del o los términos a los que acompañan, y términos

�12

Page 13: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

inversores o negadores (no, tampoco, apenas, ningún…), que invierten la polaridad de los

términos a los que afectan.

2. Por otra parte, se encuentran los enfoques basados en aprendizaje

computacional. Los cuales consisten en entrenar un clasificador usando un algoritmo de

aprendizaje supervisado a partir de una colección de textos anotados, donde cada texto

habitualmente se representa con un vector de palabras o n-gramas, en combinación con

otro tipo de características semánticas que intentan modelar la estructura sintáctica de las

frases, la intensificación, la negación, la subjetividad o la ironía. Los sistemas utilizan

diversas técnicas, aunque las mas populares son los clasificadores basados en SVM

(Support Vector Machines), Naive Bayes y KNN (K-Nearest Neighbor). En las

investigaciones más recientes se han empezado a utilizar otras técnicas más avanzadas,

como LSA (Latent Semantic Analisis) e incluso Deep Learning.

4.2. Niveles de minería de opinión

Las tareas de minería de opinión se pueden clasificar en función del nivel en el que

se realiza. Existen tres niveles, el nivel de documento, nivel de oración y el nivel de

característica [20].

• Nivel de documento

A nivel de documento, la clasificación de sentimientos de documentos en

polaridades positivas, negativas y neutrales se hace asumiendo que cada documento se

centra en un único objeto y contiene la opinión de un único titular de opinión.

• Nivel de oración

En el nivel de la oración, la identificación de oraciones subjetivas u obstinadas

entre el corpus se hace clasificando los datos en texto objetivo (falta de opinión) y

subjetivo u obstinado. Posteriormente, la clasificación del sentimiento de las oraciones

�13

Page 14: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

antes mencionadas se hace moviendo cada oración a clases positivas, negativas y neutrales.

También en este nivel, suponemos que una oración contiene solo una opinión que, como en

nuestros niveles anteriores, no es cierta en muchos casos.

• Nivel de característica

En el nivel de característica, las diversas tareas que se miran son:

- Tarea 1: identificar y extraer las características del objeto que se han comentado en

cada revisión / texto.

- Tarea 2: determinar si las opiniones sobre las características son positivas, negativas o

neutrales.

- Tarea 3: agrupar sinónimos de características y producir un resumen de opinión basado

en revisiones de características.

Si bien la detección de identidad del titular de opinión no suele ser posible en el

contenido generado por el usuario, resulta útil en casos donde, por ejemplo, la fuente es un

artículo de noticias. También es una tarea de la Minería de datos conocer el autor, edad,

sexo, profesión, etc, para en muchos casos conocer sus gustos, tendencias y enfoques.

Hoy en día existen muchas plataformas que nos permiten dar nuestra opinión en

diferentes campos, como son la medicina, hostelería, turismo, etc. A continuación, vamos a

mostrar unos ejemplos de algunos portales que nos permiten la capacidad de opinar con el

fin de conocer lo que se configura a la hora de poder crear una interfaz donde se den

opiniones.

4.3. Portales web de opinión

Entre todos los portales conocidos hablaremos sobre TripAdvisor, Mimedicamento

y Masquemedicos.

�14

Page 15: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

TripAdvisor

TripAdvisor es uno de los sitios web de viajes más grande del mundo. Ayuda a los

viajeros a aprovechar el máximo potencial de cada viaje. Con más de 630 millones de

opiniones y comentarios sobre más de 7,5 millones de alojamientos, compañías aéreas,

experiencias y restaurantes, que forman la selección de perfiles sobre viajes más grande del

mundo. TripAdvisor proporciona a los viajeros la sabiduría de las masas para ayudarles a

decidir dónde alojarse, cómo volar, qué actividades hacer y dónde comer. Además,

TripAdvisor compara los precios de más de 200 sitios web de reserva para que los viajeros

puedan encontrar el precio más bajo de su hotel ideal. Los sitios con la marca TripAdvisor

están disponibles en 49 mercados diferentes y albergan la comunidad de viajeros más

grande del mundo con 455 millones de visitantes únicos al mes, que buscan cómo sacar el

máximo partido a sus viajes [17].

Figura 1. Portada de Tripadvisor. Fuente: www.tripadvisor.es

Dentro de esta plataforma, al buscar el alojamiento, compañía aérea, experiencia o

restaurante que deseemos, nos aparece un resumen indicando cosas de interés sobre nuestra

búsqueda, además de una valoración general de todas las opiniones que se encuentran en la

�15

Page 16: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

plataforma. Por otro lado, nos muestra ejemplos similares de la búsqueda realizada y las

opiniones añadidas por los usuarios.

Figura 2. Apartado “Opiniones” de Tripadvisor. Fuente: www.tripadvisor.es

Añadir una opinión es tan fácil como buscar el alojamiento, compañía aérea,

experiencia o restaurante que deseemos y dentro del apartado “Opiniones” pulsar en

“Escribe una opinión”. La plataforma nos redirecciona a un cuestionario elaborado,

dependiendo de lo que estemos opinando. En las siguientes dos imágenes podemos ver un

ejemplo del tipo de preguntas que nos realiza la plataforma acerca de nuestra estancia en

un hotel.

�16

Page 17: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 3. Añadir una opinión en Tripadvisor. Fuente: www.tripadvisor.es

Figura 4. Añadir una opinión en Tripadvisor (2). Fuente: www.tripadvisor.es

�17

Page 18: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Mimedicamento

Figura 5. Portada de Mimedicamento. Fuente: www.mimedicamento.es

Mimedicamento es un producto de Insight Pharma Service BV, una empresa con

sede en los Países Bajos y fundada por una farmacéutica [18].

Mimedicamento consta de una página web independiente en la que el paciente y

sus experiencias con los medicamentos son lo primero. Cualquier persona puede dar su

opinión sobre su(s) medicina(s). Además, se puede consultar las experiencias de otros por

medicina o agrupadas por categoría. Con esto se le permite comparar medicinas de la

misma categoría de forma rápida y global [18].

�18

Page 19: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 6. Leer experiencia Mimedicamento. Fuente: www.mimedicamento.es

Con Mimedicamento se forma una idea de la satisfacción total de otros, de la

eficacia y de los efectos secundarios de un agente determinado de un grupo de medicinas y

se le puede ayudar ocasionalmente en la búsqueda de una medicina (alternativa) [18].

En el menú principal de la plataforma, nos encontramos con el apartado “da tu

opinión”. Este nos permite añadir todas las opiniones que se deseen acerca de cualquier

medicamento. Mimedicamento divide este apartado en cuatro pasos, donde se selecciona la

medicina sobre la que vamos a opinar, se añade una valoración sobre algunos aspectos

como son la eficacia, la cantidad de efectos secundarios y si es fácil de ingerir o utilizar,

una experiencia personal y nuestros datos personales, como se puede observar en la Figura

7.

�19

Page 20: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 7. Añadir opinión Mimedicamento. Fuente: www.mimedicamento.es

Masquemedicos

Figura 8. Portada Masquemedicos. Fuente: www.masquemedicos.com

�20

Page 21: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Dentro de este sector, también cabe destacar masquemedicos.com. Masquemedicos

es una web privada e independiente y su misión es poner a disposición de los usuarios la

información más completa sobre servicios médicos privados, públicos y asociados a

seguros médicos [19].

La web ofrece tres utilidades básicas:

– Muestra las clínicas más cercanas a la dirección que el usuario elija.

– Permite filtrar por seguro médico.

– Permite opinar y ver las valoraciones de otros usuarios sobre sus servicios

(se pueden compartir a través de Facebook).

Al realizar una búsqueda sobre alguna especialidad o un doctor en concreto, la

plataforma nos permite pedir cita y publicar nuestra opinión. A continuación, en la

siguiente imagen vemos un ejemplo del tipo de preguntas que nos realiza la plataforma

para añadir una opinión en ella. Podemos ver que nos pregunta acerca de las cosas

positivas y negativas de nuestra experiencia y un campo de valoración acerca de la

puntualidad, atención al cliente, precio, lista de espera, etc.

Figura 9. Ejemplo de añadir una opinión. Fuente: www.masquemedicos.com

�21

Page 22: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Después de observar estos tres portales web, nos hacemos una idea de la estructura

de una posible interfaz para ingresar opiniones que es el objetivo del trabajo fin de grado.

�22

Page 23: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

5. MATERIALES Y MÉTODOS

En este apartado, se nombrarán los materiales necesarios para el desarrollo de

nuestro trabajo de fin de grado, además de las posibles tecnologías para implementar

nuestra herramienta haciendo hincapié en las seleccionadas para llevar a cabo nuestro

trabajo.

5.1. Materiales

Para la realización del proyecto se necesita lo siguiente:

-Equipo informático.

-Entorno de desarrollo.

-Acceso a internet.

5.2. Estudio de posibles tecnologías para implementar la herramienta

En este apartado se comentarán las diferentes arquitecturas y tecnologías FrontEnd

y BackEnd posibles con las que implementar la herramienta planteada en este trabajo.

5.2.1. Arquitectura web En este apartado comentaremos dos posibles arquitecturas web con las que

desarrollar nuestra herramienta.

Cliente-servidor

La arquitectura cliente-servidor consiste básicamente en un cliente que realiza

peticiones a otro programa (el servidor) que le da respuesta. Aunque esta idea se puede

aplicar a programas que se ejecutan sobre un solo ordenador es más ventajosa en un

sistema operativo multiusuario distribuido a través de una red de ordenadores. La

interacción cliente-servidor es el soporte de la mayor parte de la comunicación por redes.

�23

Page 24: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Ayuda a comprender las bases sobre las que están construidos los algoritmos distribuidos

[1].

Figura 10. Arquitectura Cliente-Servidor.Fuente: https://bit.ly/2yzffYM

MVC

El MVC o Modelo-Vista-Controlador es un patrón de arquitectura de software que,

utilizando 3 componentes (Vistas, Modelos y Controladores) separa la lógica de la

aplicación de la lógica de la vista en una aplicación. Es una arquitectura importante puesto

que se utiliza tanto en componentes gráficos básicos hasta sistemas empresariales; la

mayoría de los frameworks modernos utilizan MVC (o alguna adaptación del MVC) para

la arquitectura [2].

�24

Page 25: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 11. Esquema MVC. Fuente: https://bit.ly/2p8O5nr

5.2.2. Frontend

En este apartado comentaremos tres posibles tecnologías FrontEnd que se podrían

emplear en el desarrollo de nuestra herramienta.

Jquery

JQuery es una librería de JavaScript (JavaScript es un lenguaje de programación

muy usado en desarrollo web). Esta librería de código abierto, simplifica la tarea de

programar en JavaScript y permite agregar interactividad a un sitio web sin tener

conocimientos del lenguaje [3].

Basados en esta librería, existe una infinita cantidad de plugins (gratis y de pago)

creados por desarrolladores de todo el mundo. Estos plugins resuelven situaciones

concretas dentro del maquetado de un sitio, por ejemplo: un menú responsive, una galería

de fotos, un carrousel de imágenes, un slide, un header que cambia de tamaño, el

deslizamiento del scroll al hacer clic en un botón (anclas HTML), la transición entre

páginas y miles de efectos más [3].

�25

Page 26: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Cada plugin tiene un sitio web desde donde se pueden descargar sus archivos, con

demos, instrucciones para su implementación, opciones de configuración e información de

las licencias. En la web hay cientos de blogs que recopilan y analizan los plugins según sus

funcionalidades, reuniendo en un sólo post los links a varios plugins de función similar, lo

que facilita mucho la búsqueda [3].

Bootstrap

Bootstrap es un framework desarrollado y liberado por Twitter que tiene como

objetivo facilitar el diseño web. Permite crear de forma sencilla webs de diseño adaptable,

es decir, que se ajusten a cualquier dispositivo y tamaño de pantalla y siempre se vean

igual de bien. Es Open Source o código abierto, por lo que lo podemos usar de forma

gratuita y sin restricciones. Una de las ventajas de utilizar Bootstrap es que permite

simplificar el proceso de maquetación, sirviéndonos de guía para aplicar las buenas

prácticas y los diferentes estándares [4].

AngularJS

AngularJS (comúnmente llamado Angular.js o AngularJS 1), es un framework de

JavaScript de código abierto, mantenido por Google, que se utiliza para crear y mantener

aplicaciones web de una sola página. Su objetivo es aumentar las aplicaciones basadas en

navegador con capacidad de Modelo Vista Controlador (MVC), en un esfuerzo para hacer

que el desarrollo y las pruebas sean más fáciles.

La biblioteca lee el HTML que contiene atributos de las etiquetas personalizadas

adicionales, entonces obedece a las directivas de los atributos personalizados, y une las

piezas de entrada o salida de la página a un modelo representado por las variables estándar

de JavaScript. Los valores de las variables de JavaScript se pueden configurar

manualmente, o recuperados de los recursos JSON estáticos o dinámicos [5].

�26

Page 27: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

5.2.3. Backend

En este apartado comentaremos tres posibles tecnologías BackEnd que se podrían

emplear en el desarrollo de nuestra herramienta.

Python

Python es un lenguaje de scripting independiente de plataforma y orientado a

objetos, preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a

servidores de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que

no se necesita compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como

la rapidez de desarrollo e inconvenientes como una menor velocidad.

Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente

para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas. Es

multiplataforma, interpretado e interactivo [6].

PHP

PHP es un lenguaje de programación de uso general de código del lado del

servidor. Originalmente fue diseñado para el desarrollo web de contenido dinámico. Está

actualmente entre los proyectos de código abierto más populares (gracias en parte a la

similitud de su sintaxis con el lenguaje C). El código es interpretado por un servidor web

con un módulo procesador de PHP que genera la página Web resultante.

Figura 12. Imagen logo PHP. Fuente: www.loopeando.com

�27

Page 28: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Básicamente, PHP permite a páginas estáticas convertirse en dinámicas (aunque es

mucho más que eso). El nombre "PHP" es un acrónimo que significa "PHP: Hypertext

Preprocessor", en español "PHP: Preprocesador de hipertexto". La palabra "hipertexto"

significa que PHP realiza cambios antes de que el contenido (como la página HTML) sea

creado. Esto permite a desarrolladores crear potentes aplicaciones que publiquen blogs,

controlen hardware remotamente o ejecuten potentes sitios web como Wikipedia o

Wikilibros [7].

Java

Java es un lenguaje de programación de propósito general, concurrente, orientado a

objetos que fue diseñado específicamente para tener tan pocas dependencias de

implementación como fuera posible. Su intención es permitir que los desarrolladores de

aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido

en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código

que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java

es, a partir de 2012, uno de los lenguajes de programación más populares en uso,

particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de

usuarios reportados [8].

Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo

nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a

bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin

importar la arquitectura de la computadora subyacente [8].

A continuación, hablaremos sobre tres posibles sistemas de gestión de bases de

datos que se podrían emplear en el desarrollo de nuestra herramienta.

�28

Page 29: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

• MariaDB

MariaDB es un sistema de gestión de bases de datos derivado de MySQL con

licencia GPL (General Public License). Es desarrollado por Michael (Monty) Widenius

(fundador de MySQL), la fundación MariaDB y la comunidad de desarrolladores de

software libre. Introduce dos motores de almacenamiento nuevos, uno llamado Aria -que

reemplaza con ventajas a MyISAM- y otro llamado XtraDB -en sustitución de InnoDB.

Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces,

APIs y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.

MariaDB es un fork directo de MySQL que asegura la existencia de una versión de este

producto con licencia GPL [9].

• MYSQL

MySQL es un sistema de administración de bases de datos (Database Management

System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una

aplicación que permite gestionar archivos llamados de bases de datos.

Existen muchos tipos de bases de datos, desde un simple archivo hasta sistemas

relacionales orientados a objetos. MySQL, como base de datos relacional, utiliza múltiples

tablas para almacenar y organizar la información. MySQL fue escrito en C y C++ y destaca

por su gran adaptación a diferentes entornos de desarrollo, permitiendo su interactuación

con los lenguajes de programación más utilizados como PHP, Perl y Java y su integración

en distintos sistemas operativos.

También es muy destacable, la condición de open source de MySQL, que hace que

su utilización sea gratuita e incluso se pueda modificar con total libertad, pudiendo

descargar su código fuente. Esto ha favorecido muy positivamente en su desarrollo y

continuas actualizaciones, para hacer de MySQL una de las herramientas más utilizadas

por los programadores orientados a Internet [10].

�29

Page 30: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

• MongoDB

MongoDB (de la palabra en inglés “humongous” que significa enorme) es un

sistema de base de datos NoSQL orientado a documentos, desarrollado bajo el concepto de

código abierto.

MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL.

En lugar de guardar los datos en tablas como se hace en las base de datos relacionales,

MongoDB guarda estructuras de datos en documentos similares a JSON con un esquema

dinámico (MongoDB utiliza una especificación llamada BSON), haciendo que la

integración de los datos en ciertas aplicaciones sea más fácil y rápida [11].

5.3. Tecnologías seleccionadas para implementar la herramienta

Una vez estudiadas las posibles tecnologías con las que implementar nuestra

herramienta, decidimos escoger las siguientes para el desarrollo de la herramienta

propuesta en este trabajo. El nombre que utilizamos para la plataforma será “Evaluame”.

5.3.1. Arquitectura de la herramienta

Hoy en día las aplicaciones web se emplean en muchos ámbitos y son muy

heterogéneas. Debido a esto hay distintas soluciones al elegir una arquitectura. Lo común

es emplear un conjunto de ellas.

En nuestro caso, hemos optado por emplear el modelo MVC implementado por el

framework utilizado (FuelPHP), que divide sus funciones entre cliente y servidor, para así

conseguir una mayor modularidad que nos permitirá un mejor mantenimiento y

escalabilidad de cara a posibles nuevas versiones o correcciones.

�30

Page 31: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Algunas de las comunicaciones entre los elementos del backend y el frontend se

realizarán mediante peticiones AJAX, puesto que nos ofrecen la posibilidad de establecer

comunicaciones asíncronas entre el cliente y servidor sin la necesidad de una recarga de

página.

5.3.2. FrontEnd de la herramienta

Para el desarrollo de la parte de frontend, hemos optado por emplear la librería

jQuery debido a su simplicidad a la hora de que el usuario interactúe con la herramienta.

Por otro lado, se empleará la librería Bootstrap, que nos dará un comportamiento

responsive de la herramienta, es decir, nos permitirá una correcta visualización desde

cualquier dispositivo que sea empleado para acceder a la plataforma.

5.3.3. BackEnd de la herramienta

Para el desarrollo de la parte de backend, se podría emplear cualquier tecnología

mencionada anteriormente, pero en nuestro caso hemos optado por emplear el lenguaje de

programación PHP ayudándonos de su framework FuelPHP en su versión más reciente, ya

que es una tecnología bastante estable y potente, que además nos proporciona una

autenticación segura y, gracias a su paquete ORM, nos facilita el manejo de las consultas

con la base de datos.

5.3.4. Sistema Operativo: MacOS

MacOS es un sistema BSD ( Berkeley Software Distribution), que es un sistema

operativo derivado de Unix, por esto guarda una especial relación co GNU/Linux.

Cumplen los mismos estándares, aunque sus códigos son totalmente distintos. Elegimos

este sistema operativo ya que nos proporciona un entorno agradable de desarrollo y es

cómodo para trabajar. Por otro lado, es bastante seguro y tiene una buena fluidez.

�31

Page 32: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

La última versión lanzada por Apple es la 10.14 “Mojave” y se encuentra

disponible desde el 25 de septiembre de 2018. El desarrollo de la herramienta ha sido

realizado desde la versión anterior 10.13.5 “High Sierra”, disponible desde el 25 de

septiembre de 2017.

�32

Page 33: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

6. DESARROLLO

En este apartado detallaremos todo lo relacionado al diseño e implementación de la

herramienta propuesta.

Para empezar, descargamos el entorno de programación Netbeans, con las

herramientas de PHP.

Figura 13. Descargar Netbeans. Fuente: www.netbeans.org

Después obtenemos fuelphp de la pagina oficial como se muestra en la Figura 14.

FuelPHP usa Composer, tanto para la instalación como para dependencias de paquetes.

Hay que asegurarse de que se ha instalado composer localmente antes de continuar, ya que

los métodos de instalación que se describen a continuación dependen de que estén

presentes. La instalación de Composer se encuentra en https://getcomposer.org/download .

�33

Page 34: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 14. Página de descarga de FuelPHP. Fuente: www.fuelphp.com

Existen dos formas de instalar fuelPHP. La primera utilizando el paquete Oil, y la

segunda, empleando composer.

6.1. Diseño de datos

6.1.1. Modelo Entidad-Relación

Los datos se almacenaran en una base de datos relacional. Para crear esta base de

datos, y después, conectar nuestro proyecto con ella, empleamos phpmyadmin, que se

encuentra en la instalación de MAMP.

Para acceder a phpmyadmin, cuando iniciamos MAMP, aparece una página de

inicio como se ve en la Figura 15.

Desde esta página de inicio, en el menú, aparece “tools” y hay un enlace a

phpMyAdmin. También podemos escribir http://localhost/phpMyAdmin/ en la barra de

navegación de nuestro navegador.

�34

Page 35: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 15. Página de inicio MAMP.

Seleccionamos “Bases de datos” en el menú de arriba, colocamos el nombre que

deseemos ponerle a nuestra nueva base de datos y pulsamos en crear.

Figura 16. Crear base de datos desde phpMyAdmin.

�35

Page 36: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Puesto que el entorno que vamos a utilizar para el desarrollo es “development”,

modificamos los archivos de configuración de development. Estos se encuentran en /app/

config/development .

Figura 17. Extracto de código db.php.

Aquí configuramos la conexión con la base de datos, colocamos el nombre de la

base de datos, usuario y contraseña de phpmyadmin.

A partir de aquí ya tenemos el proyecto básico y procedemos al análisis de nuestra

aplicación web y desarrollo de nuestro modelo de datos.

Representamos la base de datos utilizando el modelo E/R (Figura 18), basado en

representar los datos como entidades, relaciones y atributos en un diagrama. A

continuación, se verá con más detalle cada una de las tablas, relaciones y atributos

existentes.

Fuel crea una serie de tablas para almacenar una sesión y todos los elementos

necesarios del paquete auth para realizar la autenticación. Estas tablas son: migration,

sessions, user, user_clients, user_groups, user_group_permissions, user_group_roles,

user_metadata, user_permissions, user_providers, user_roles, user_role_permissions,

user_scopes, user_sessions, user_sessionscopes, user_user_permissions y user_user_roles.

�36

Page 37: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 18. Modelo de datos de “Evaluame”

Tras analizar qué necesitamos en nuestro proyecto llegamos a la conclusión de que

son necesarias las siguientes tablas.

TABLAS

Clients: Tabla donde se almacenan los usuarios que van a dar su opinión.

-id [INT]: Clave primaria de la tabla.

-name [VARCHAR(255)]: Atributo en el que se almacena el nombre del usuario.

-age [DATE]: Atributo en el que se almacena la edad del usuario.

-gender [VARCHAR(20)]: Atributo en el que se almacena el sexo del usuario.

-profession [VARCHAR(255)]: Atributo en el que se almacena el oficio del

usuario.

-status [INT]: Atributo en el que se almacena el estado del usuario (1=activado,

0=desactivado ).

�37

Page 38: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

-user_id [INT]: Clave ajena de la tabla “user”, generada automáticamente por el

paquete auth de fuel para gestionar los usuarios de la plataforma.

-created_at [INT]: Atributo en el que se almacena un timestamp del momento en

el que se añade una nueva fila a la tabla.

-updated_at [INT]: Atributo en el que se almacena un timestamp del momento en

el que se actualiza una fila de la tabla.

Entities: Tabla donde se almacenan las entidades sobre las que se va a opinar.

-id: Clave primaria de la tabla.

-name: Atributo en el que se almacena el nombre de la entidad a opinar.

-city: Atributo en el que se almacena la ciudad en la que se encuentra la entidad a

opinar.

-closed: Atributo en el que se almacena si una entidad se encuentra cerrada o no

( 0 = abierta, 1 = cerrada).

-provinces_id: Clave ajena de la tabla “provinces”, donde se almacena el id de la

provincia en la que se encuentra la entidad a opinar.

-created_at: Atributo en el que se almacena un timestamp del momento en el que

se añade una nueva fila a la tabla.

-updated_at: Atributo en el que se almacena un timestamp del momento en el que

se actualiza una fila de la tabla.

Fields: Tabla donde se almacenan los campos sobre los que se va a opinar.

-id: Clave primaria de la tabla.

-name: Atributo en el que se almacena el nombre del campo sobre el que se va a

opinar.

-entities_id: Clave ajena de la tabla “entities”, donde se almacena el id de la

entidad a la que se asocia el campo sobre el que se va a opinar.

-created_at: Atributo en el que se almacena un timestamp del momento en el que

se añade una nueva fila a la tabla.

-updated_at: Atributo en el que se almacena un timestamp del momento en el que

se actualiza una fila de la tabla.

�38

Page 39: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Opinions: Tabla donde se almacenan las opiniones.

-id: Clave primaria de la tabla.

-title: Atributo en el que se almacena el título de la opinión.

-comment: Atributo en el que se almacena el comentario de la opinión.

-date: Atributo en el que se almacena la fecha de la opinión.

-general_satisfaction: Atributo en el que se almacena la satisfacción general de la

opinión.

-entities_id: Clave ajena de la tabla “entities”, donde se almacena el id de la

entidad que está asociada a la opinión.

-clients_id: Clave ajena de la tabla “clients”, donde se almacena el id del usuario

que ha generado la opinión.

-created_at: Atributo en el que se almacena un timestamp del momento en el que

se añade una nueva fila a la tabla.

-updated_at: Atributo en el que se almacena un timestamp del momento en el que

se actualiza una fila de la tabla.

Opinions_has_fields: Tabla donde se almacenan las opiniones de los diferentes campos de

cada entidad.

-id: Clave primaria de la tabla.

-opinions_id: Clave ajena de la tabla “opinions”, donde se almacena el id de la

opinión.

-fields_id: Clave ajena de la tabla “fields”, donde se almacena el id del campo a

opinar.

-value: Atributo en el que se almacena la valoración del campo a opinar.

-created_at: Atributo en el que se almacena un timestamp del momento en el que

se añade una nueva fila a la tabla.

-updated_at: Atributo en el que se almacena un timestamp del momento en el que

se actualiza una fila de la tabla.

Provinces: Tabla donde se almacenan las provincias

�39

Page 40: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

-id: Clave primaria de la tabla.

-name: Atributo en el que se almacena el nombre de la provincia.

-created_at: Atributo en el que se almacena un timestamp del momento en el que

se añade una nueva fila a la tabla.

-updated_at: Atributo en el que se almacena un timestamp del momento en el que

se actualiza una fila de la tabla.

Ya con el modelo de datos definido, creamos los elementos necesarios del MVC

( modelo, vista, controlador). Para ello, fuel nos facilita las tareas repetitivas con su

paquete oil. Con su comando “generar” podemos crear controladores, modelos,

migraciones y vistas, entre otras cosas.

Lo utilizaremos, particularmente, para generar modelo, vista y controlador de cada

entidad de nuestro modelo de base de datos, exceptuando la tabla “provinces”, de la que

solo crearemos su modelo.

Para ello emplearemos la función scaffold, dentro del paquete oil generate:

$ php oil generate scaffold nombre_de_la_entidad nombre_atributo1:tipo

nombre_atributo2:tipo

Esto nos generará el modelo, vista y controlador de la entidad elegida. Los tipos

utilizados en nuestro caso serán: int, varchar, date y float. Si queremos indicar el tamaño

exacto del atributo podemos introducirlo poniéndolo entre corchetes tras el tipo de dato, si

no se introduce un tamaño se coloca uno por defecto. Ej: varchar[1000].

Para la tabla provinces, puesto que solo necesitamos el modelo, emplearemos la

función model como se indica a continuación.

$ php oil generate model provinces name:varchar

�40

Page 41: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Con esto se generará automáticamente el modelo para gestionar las provincias en

nuestro proyecto. Como nota, los atributos id, created_at y update_at se generan

automáticamente al emplear estos comandos.

6.1.2. Relaciones con el modelo

El siguiente paso es crear las relaciones entre los modelos. Gracias al paquete ORM

de fuel, esto es sencillo. Fuel admite 4 tipos de relaciones, de las cuales, nosotros

emplearemos solo 3. Las relaciones en nuestro modelo de datos son todas de 1:N,

exceptuando la relación entre las tablas “opinions” y “fields”, que es una relación N:N.

Para crear las relaciones necesitamos considerar un par de aspectos. Por un lado, en

la base de datos necesitamos un campo que permita identificar cada registro de forma

única. Como norma suele usarse el campo ‘id’, que guarda un valor INT que va

incrementándose automáticamente con cada nuevo registro. Así nos aseguramos que el

valor dado al nuevo registro siempre es diferente al valor de todos los registros de la tabla

creados hasta el momento.

Por otro, una vez creados la forma de identificar registros en cada tabla, debemos

indicar por código la relación que queremos establecer entre ambas tablas. Crearemos esta

relación a través de los modelos asociados a las tablas.

Dado que una relación siempre afectará a dos entidades (es decir dos tablas),

tendremos que definir la relación en ambos modelos. A continuación explicaremos

ejemplos para cada tipo de relación diferente.

Has many

�41

Page 42: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Usaremos estas relaciones cuando tengamos que un registro de una entidad (1) está

asociado a muchos registros de otra entidad (2), y que cada registro de la otra entidad (2)

pertenece sólo a uno de la primera entidad (1).

Ejemplo:

Supongamos dos entidades Opinions y Entities.

Una opinión sólo pertenece a una (belongs to) entidad, pero una entidad puede

tener muchas (has many) opiniones.

Model_Entity: definimos que una entidad puede tener muchas opiniones.

protected static $_has_many = array(

'opinions'=> array(

'key_from' => 'id',

'model_to' => 'Model_Opinion',

'key_to' => 'entities_id',

'cascade_save' => true,

'cascade_delete' => false,

),

);

Model_Opinion: definimos que una opinión pertenece a una entidad.

protected static $_belongs_to = array(

'entities' => array(

'key_from' => 'entities_id',

'model_to' => 'Model_Entity',

'key_to' => 'id',

'cascade_save' => false,

'cascade_delete' => false,

),

);

�42

Page 43: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Many to many

En este caso tendremos que a cada registro de una entidad (1) le corresponden

muchos registros de otra entidad (2), y que a cada registro de la otra entidad (2) le

corresponden muchos registros de la entidad (1).

En este caso excepcionalmente, tendré que crear una tabla que permita guardar la

asociación entre registros de diferentes tablas.

Ejemplo:

Supongamos dos entidades ‘Opinions’ y ‘Fields’. Una opinión puede tener muchos

(has many) campos. Un campo puede pertenecer a muchas opiniones.

Model_Opinion:

protected static $_many_many = array(

'fields'=> array(

'key_from' => 'id',

'key_through_from'=>'opinions_id',

'table_through' => 'opinions_has_fields',

'key_through_to' => 'fields_id',

'model_to' => 'Model_Field',

'key_to' => 'id',

'cascade_save' => true,

'cascade_delete' => false,

)

);

Model_field:

protected static $_many_many = array(

�43

Page 44: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

'opinions'=> array(

'key_from' => 'id',

'key_through_from'=>'fields_id',

'table_through' => 'opinions_has_fields',

'key_through_to' => 'opinions_id',

'model_to' => 'Model_Opinion',

'key_to' => 'id',

'cascade_save' => true,

'cascade_delete' => false,

)

);

6.2. Diseño de la interfaz FrontEnd

En cuanto al diseño de la interfaz FrontEnd de la herramienta, hemos optado por

algo sencillo y, a su vez, muy intuitivo. Se realizaron unos mockups en sucio y a papel, de

más o menos la idea que tenía en mente sobre el diseño estético de la herramienta.

Figura 19. Opiniones Index.

�44

Page 45: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Partiendo de un archivo css, que nos sirve de plantilla, utilizado en otros proyectos

(vanadistemplate.css), efectuamos todos los cambios necesarios para ajustarnos a nuestro

diseño.

En el diseño cabe destacar la clasificación con estrellas usada para las valoraciones.

Para ello, hemos empleado un plugin de JQuery llamado “star-rating-svg”. Este plugin está

formado por un archivo JS, encargado de dar la funcionalidad, y un archivo CSS,

encargado de darle el estilo en forma de estrellas. Ambos archivos se encuentran en la

carpeta “/fuelphp/public/assets” dentro del proyecto.

Esta clasificación con estrellas se ha empleado en dos casos distintos: El primero,

solo para visualizar las valoraciones ya insertadas en la plataforma, como es el caso del

índex de opiniones. Y el segundo, para valorar los distintos campos de valoración de las

entidades insertadas en la plataforma. Este caso se puede observar al añadir una opinión en

la plataforma.

Para ambos casos, ha sido necesario incluir la siguiente línea en el código HTML,

en la que insertamos una caja con la clase “my-rating” .

<td><div class=“my-rating”></div></td>

Esta caja se nutre con el siguiente código javascript:

<script type="text/javascript">

$(".my-rating").starRating({

initialRating: <?php echo $item->general_satisfaction; ?>,

strokeColor: '#894A00',

strokeWidth: 10,

starSize: 25,

disableAfterRate: false,

readOnly:true,

�45

Page 46: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

callback: function(currentRating, $el){

console.log('rated ' + currentRating);

console.log('DOM element ', $el);

console.log($el[0]['id']);

}

});

</script>

Este código es el usado en el caso de visualizar las valoraciones ya insertadas en la

plataforma. El plugin usado tiene unas propiedades, que son las siguientes.

-initialRating: Sería la calificación inicial que se aplica en la carga del plugin.

-strokeColor: Define el color de los bordes.

-strokeWidth: Define el grosor del borde.

-starSize: Define el ancho en píxeles de cada estrella.

-disableAfterRate: Elimina la valoración cuando seleccionamos una nueva

valoración.

-readOnly: Si es falso, cualquier interacción está deshabilitada.

-callback: Función que se ejecuta al seleccionar una valoración.

6.2.1. Bootstrap

Con la ayuda de Bootstrap, estos mockups a papel fueron cogiendo forma y dieron

lugar a las vistas que actualmente tiene la herramienta. Para ello ha sido necesario el uso de

la clase container, las clases que gestionan las tablas y las de los tamaños de los divs, entre

otras.

6.3. Diseño del BackEnd

6.3.1. Paquete OIL

�46

Page 47: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Oil es un comando de paquete especial que se puede usar de varias formas para

facilitar el desarrollo rápido. Oil tiene varias funciones: Generar: compila componentes

MVC, migraciones y scaffold completos. Refinar: ejecuta tareas como migrar y tareas

propias personalizadas. Paquete: instala, actualiza y elimina paquetes. Consola: te permite

probar tu código en tiempo real utilizando un shell interactivo. Prueba: ejecuta pruebas de

PHPUnit. Servidor: ejecuta FuelPHP utilizando el servidor web incorporado PHP 5.4+

[15].

Se puede observar si el paquete oil se encuentra disponible poniendo:

$php oil -v , en consola. Si nos devuelve: Fuel: 1.7.3 running in "development" mode.

Significa que el paquete oil se encuentra activo y corre en el entorno “development”.

Una vez tenemos fuelPHP descargado, procedemos a crear un nuevo proyecto

usando el paquete oil. Para ello colocamos el siguiente comando.

$ php oil create <project_name>

Esto creará una carpeta en el directorio en el que se encuentra con el nombre del

proyecto proporcionado. Luego clonará el repositorio y todos los submódulos en ese

directorio. Como nota, esto también ejecutara $ php oil refine install que hace que los

directorios necesarios puedan escribirse, y $ composer update para obtener las

dependencias de composer definidas.

Definimos como entorno por defecto “development”, para ello colocamos la

siguiente línea en consola.

$ SetEnv FUEL_ENV development

�47

Page 48: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Cuando tenemos nuestro nuevo proyecto, procedemos a modificar los archivos de

configuración de este. Estos se encuentran en app/config/config.php . Este archivo se tiene

que quedar como se muestra a continuación.

<?php

return array(

'language' => 'es', // Default language

'language_fallback' => 'en', // Fallback language when file isn't available for default

language

'locale' => 'es_ES.UTF-8',//'es_ES.UTF-8', // PHP set_locale() setting, null to not set

'locales' => array(

'es' => 'es_ES.UTF-8',

'en' => 'en_US.UTF-8'

),

'default_timezone' => 'Europe/Madrid',

'log_threshold' => Fuel::L_DEBUG,

'security' => array(

'uri_filter' => array('htmlentities'),

'output_filter' => array('Security::htmlentities'),

'whitelisted_classes' => array(

'Fuel\\Core\\Presenter',

'Fuel\\Core\\Response',

'Fuel\\Core\\View',

'Fuel\\Core\\ViewModel',

'Fuel\Core\Validation',

'Closure',

),

),

'package_paths' => array(

PKGPATH,

�48

Page 49: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

),

'always_load' => array(

'packages' => array(

'orm',

'auth',

'email',

),

),

);

En este archivo de configuración seleccionamos el lenguaje, la zona horaria por

defecto y los paquetes que se cargan( en nuestro caso los paquetes orm, email y auth), entre

otras cosas [15].

6.3.2. Paquete AUTH

El siguiente paso es utilizar el paquete auth. El paquete Auth proporciona una

interfaz estandarizada para la autenticación en Fuel. Esto permite escribir nuestro propio

controlador e integrar fácilmente un nuevo controlador para trabajar con código antiguo al

mantener los métodos básicos consistentes. Crear un paquete de autenticación que se

adapte a todos o a cada implementación es imposible. El framework, no fuerza cómo hacer

la autenticación, facilita crear una propia configuración o usar alguna ya creada. Aquí es

donde entra el paquete Auth [16].

La interfaz contiene 3 tipos de controladores (que pueden ampliarse a más tipos):

inicio de sesión, grupo y ACL. Los controladores de inicio de sesión manejan un inicio de

sesión de usuario y pueden manejar múltiples controladores de inicio de sesión al mismo

tiempo. Por ejemplo, uno podría hacer posible que los usuarios inicien sesión a través de

Twitter y sus propios usuarios nativos al mismo tiempo utilizando 2 controladores de inicio

de sesión. Como siguiente paso, puede agrupar esos 2 tipos de inicios de sesión usando un

�49

Page 50: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

controlador de grupo que no se preocupa por el tipo de inicio de sesión que está utilizando.

Y por último, pero no menos importante, puede usar un controlador ACL para otorgar

derechos específicos a esos grupos [16].

Los paquetes Auth vienen con dos conjuntos de controladores que proporcionan

acceso local, usando una o más tablas de base de datos.

Existen dos tipos de Autenticación empleando el paquete AUTH que se explicarán

a continuación.

Simpleauth

Como el mismo nombre indica, este es un conjunto básico de controladores. Utiliza

una tabla de base de datos para almacenar la información del usuario y un archivo de

configuración para almacenar información sobre grupos, roles y ACL. Almacena los

metadatos del usuario en una matriz serializada en el registro del usuario. No tiene mucha

funcionalidad, pero para la mayoría de las aplicaciones puede ser suficiente [16].

Ormauth

Ormauth es un conjunto de controladores de autenticación y autorización que

proporcionan una funcionalidad similar a Simpleauth, pero almacena sus datos en la base

de datos en lugar de almacenarlos en un archivo de configuración. Se accede a los datos a

través de modelos ORM [16].

Además de esto, también viene con funcionalidad adicional. A diferencia de

Simpleauth, Ormauth admite roles asignados directamente a los usuarios y permisos

asignados tanto a usuarios como a grupos, lo que permite un sistema de permisos mucho

más preciso. Almacena los metadatos del usuario no en una matriz serializada, sino en una

tabla de metadatos separada, utilizando la funcionalidad EAV de ORM, que le permite

acceder a los metadatos como cualquier otra propiedad del usuario. También realiza un

�50

Page 51: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

seguimiento del tiempo de inicio de sesión anterior, que se puede mostrar al usuario en el

momento del inicio de sesión como una medida de seguridad adicional [16].

El paquete Auth contiene los archivos de migración necesarios para crear las

estructuras de tabla necesarias para estos controladores. Utiliza el archivo de configuración

de autenticación para determinar qué crear, por lo que debe ser configurado primero [16].

En las Figuras 20a y 20b se puede ver la configuración que hemos escogido.

Figura 20a. Extracto de código ormauth.php

�51

Page 52: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 20b. Extracto de código ormauth.php

6.3.3. Gestión de usuarios

En nuestro proyecto tenemos definidos hasta siete tipos de usuarios diferentes, de

lo cuales solo usaremos dos (Superadministrator users y basic users). Podemos encontrar

l a s c o n s t a n t e s a s o c i a d a s a e s t o s t i p o s d e u s u a r i o s e n e l m o d e l o

“Model_Vanadistemplateuser” que se encontrará en la ruta ‘fuel/app/classes/model/

vanadistemplateuser.php’.

Usaremos los usuarios ‘superadministrator’ para definir aquellos usuarios que

tienen todos los permisos y acceso total a todas las vistas y, por otro lado, usaremos los

“basic users” con acceso parcial a las vistas, como los clientes de la herramienta.

�52

Page 53: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

6.3.4. Definición de las páginas de inicio para cada tipo de usuario

En la mayoría de las ocasiones nos interesará asignar una página de inicio diferente

en función del tipo de usuario que se conecte. Entendemos por página de inicio, la primera

página que se mostrará a un usuario cuando acceda al panel de administración.

La definición de las páginas de inicio viene determinada en el

‘Controller_Privateuser’ por las constantes:

- SUPERADMINUSER_DEFAULT_REDIRECT: página de inicio para usuarios

‘superadministrator’.

- BASICUSER_DEFAULT_REDIRECT: página de inicio para usuarios ‘basic’.

6.3.5. Creación de nuevos usuarios

Para la creación de nuevos usuarios usaremos tareas. Como explicaremos más

adelante, las tareas facilitan la creación de procesos repetitivos, como puede ser la creación

de usuarios.

Encontramos los archivos de tareas en la ruta ‘fuel/app/tasks’. En este caso nos

interesa el archivo ‘createuser.php’.

Con este archivo podremos crear un usuario por consola de comandos utilizando el

paquete OIL integrado en FuelPHP. Para utilizar este paquete, será necesario acceder a la

carpeta raíz de nuestro proyecto en FuelPHP, es decir la ruta donde se encuentra la carpeta

‘fuel’.

Una vez en esta ruta, ejecutamos el siguiente comando:

$php oil refine createuser username email password group_id

�53

Page 54: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Si ejecutamos hasta “createuser” se crearía el usuario administrador por defecto que

tenemos en nuestra plataforma ( estas credenciales se citan más tarde en el Manual de uso

de la herramienta).

6.3.6. Gestión de las vistas

En este apartado explicaremos cómo podemos gestionar las vistas que pueden ver

los usuarios dependiendo del tipo al que correspondan. En este aspecto, están involucrados

dos controladores.

- Controller_Admin: permite redireccionar a la vista que nos interese.

- Controller_Privateuser: permite definir las vistas permitidas que tiene cada tipo

de usuario.

Así que veremos dos puntos importantes dentro de la gestión de vistas, como son la

Redirección de vistas y la Definición de vistas permitidas.

Redirecciones a vistas del backend

De todo lo referente a redirecciones se encarga el Controller_Admin. Este

controlador tiene dos funciones principales.

- Redirección a páginas de inicio: será la página que mostramos a un usuario tras

loguearse. Dependiendo del tipo de usuario conectado, así mostraremos una

página u otra. De esto se encarga la función ‘action_index’. Resultará

especialmente útil cuando queramos que cada tipo de usuario sea redireccionado

a una página diferente. Podemos ver la vista inicial que tendrá cada tipo de

usuario en ‘action_index’ del Controller_Admin.

- Redirección a las páginas de las opciones del menú: antes de llegar a la página de

destino, cabe la posibilidad de indicar si queremos realizar alguna tarea previa.

�54

Page 55: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

De esto se encarga la función ‘action_manage’. Usaremos esta función para

especificar acciones concretas antes de ir a la vista destino. En la mayoría de

ocasiones nos limitaremos a redireccionar sin hacer nada previamente, pero si

quisiéramos tendríamos la opción de elegir hacer algo antes de ir a la vista final.

Definición de vistas permitidas para cada tipo de usuario

Las definimos en el Controller_Privateuser. En este controlador definimos las

funciones que permiten seleccionar qué vistas puede ver cada tipo de usuario. Cada vista

vendrá definida por una constante que guardará su URL local asociada.

Cabe mencionar que las vistas que necesitan recibir un parámetro forzosamente

para funcionar correctamente, deben terminar en ‘/’. Un buen ejemplo serían las vistas

‘view’ y ‘edit’, ya que siempre debemos indicar el ‘id’ del registro que queremos ver o

editar respectivamente.

Una vez definidas las constantes con las vistas accesibles de nuestro backend, es

necesario asociar a cada tipo de usuario las que tiene permiso para ver. Esto lo hacemos en

los arrays [tipodeusuario]_options_allowed, donde tipo de usuario podrá ser

superadministrator o basic.

- [tipodeusuario]_options_allowed: guarda las vistas a las que tiene acceso el tipo de

usuario. En este array basta ir añadiendo las diferentes vistas separadas por comas:

static public $basicuser_options_allowed = array (

Controller_Privateuser::BASICUSER_INDEX,

Controller_Privateuser::A_INDEX,

Controller_Privateuser::C_INDEX,

Controller_Privateuser::D_INDEX,

Controller_Privateuser::E_INDEX,

Controller_Privateuser::F_INDEX,

�55

Page 56: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Controller_Privateuser::OPINIONS_INDEX,

Controller_Privateuser::OPINIONS_VIEW,

Controller_Privateuser::OPINIONS_EDIT,

Controller_Privateuser::OPINIONS_CREATE,

Controller_Privateuser::OPINIONS_DELETE,

Controller_Privateuser::CLIENTS_INDEX,

Controller_Privateuser::CLIENTS_VIEW,

Controller_Privateuser::CLIENTS_EDIT,

);

�56

Page 57: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

7. RESULTADOS Y DISCUSIÓN

En este apartado realizaremos un análisis de los resultados obtenidos a partir de los

objetivos establecidos inicialmente y el desarrollo del trabajo. El objetivo principal es la

elaboración de una herramienta capaz de generar opiniones sobre una entidad cualquiera, y

poder extraer esta información para conformar un corpus de datos.

Una vez analizada la plataforma, observamos que la herramienta desarrollada nos

permite generar opiniones de los campos a opinar y las entidades añadidas con anterioridad

en esta. Como parte de los objetivos iniciales, también vemos que tenemos la posibilidad

de extraer estas valoraciones en formato CSV para la posterior formación de un corpus de

datos.

Un aspecto importante a la hora de querer añadir una opinión sobre una entidad es

que esta entidad debe encontrarse “cerrada”. Es decir, se debe de quitar la posibilidad de

añadir nuevos campos a opinar una vez creada la primera opinión sobre una entidad. La

plataforma controla esto desde la ventada de edición de una entidad. Aquí podemos

cerrarla, y una vez cerrada no podemos volver a abrirla. Esto es importante porque si la

entidad no pudiese ser “cerrada” de alguna forma, podrían existir valoraciones sobre la

misma entidad con diferentes campos a valorar, y esto haría que las opiniones se creasen

en base a campos distintos por lo que no estaríamos valorando igual una entidad.

�57

Page 58: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

8. CONCLUSIONES

En este apartado se expondrán las conclusiones alcanzadas al finalizar el trabajo.

Desde el punto de vista de los resultados obtenidos, podemos considerar alcanzados

los objetivos iniciales del trabajo. La herramienta cumple los requisitos establecidos de

poder añadir opiniones sobre diferentes entidades. Todo ello a través de una herramienta

funcional e intuitiva.

Las tecnologías empleadas para desarrollar nuestra herramienta, también se

consideran acertadas, destacando nuestro framework fuelPHP que ha facilitado muchas

labores copiosas y nos ha permitido implementar una herramienta completa a la hora de

introducir opiniones y generar corpus textuales.

Por otro lado, el desarrollo de una herramienta capaz de generar opiniones sobre

cualquier entidad, proporciona una visión de potencial enorme puesto que en diferentes

ámbitos una herramienta con estas cualidades nos ayuda y facilita labores de análisis e

investigación a la hora de obtener las opiniones y valoraciones de cualquier persona.

Por último, al añadir aspectos en el desarrollo relacionados con el frontend y

backend, estos nos han ofrecido una visión completa del desarrollo de la herramienta.

Gracias a esto, se nos facilita el análisis global de posibles soluciones a los problemas que

se han ido planteando, por ejemplo, la forma de valorar los distintos campos sobre una

entidad cualquiera, que se ha optado por utilizar una librería de jQuery junto a un archivo

de CSS.

8.1. Líneas de futuro

De cara a una nueva versión de la herramienta, a continuación se describen

brevemente algunos puntos que se podrían mejorar.

�58

Page 59: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

1. Se podría revisar y mejorar el comportamiento de la herramienta en dispositivos

más pequeños.

2. En todos los campos de filtrado de los interfaces se podría hacer que estos

filtrados se realicen de forma automática al añadir texto o seleccionar opciones de

los desplegables.

3. Se podría mejorar la extracción de los datos en formato CSV o buscar algún otro

formato para la extracción de datos.

�59

Page 60: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

4. ANEXOS

4.1. Manual de instalación de la herramienta

En este apartado se describirán los pasos necesarios para instalar la herramienta

desarrollada. Para la instalación de la herramienta tendremos que montar el proyecto en

local. Necesitaremos una máquina apache, una base de datos y tener php instalado en

nuestro equipo.

4.1.1. Contenido del entregable

Hemos optado por almacenar la parte software de este trabajo en la plataforma

GitHub. Esto nos permite alojar nuestro proyecto utilizando un sistema de control de

versiones llamado Git.

Teniendo git instalado en nuestro equipo clonar el proyecto desde GitHub es tan

sencillo como ejecutar la siguiente línea desde un terminal situándonos en “/opt/lampp/

htdocs/“.

$ Clone https://github.com/juanjosemartos/evaluame.git evaluame

En caso de no tener Git instalado en nuestro equipo, más abajo en el apartado de

“Instalación de dependecias”, se explica cómo hacerlo.

4.1.2. Requisitos mínimos

Como requisitos mínimos, se recomienda que el equipo sobre el que se instale la

herramienta tenga como mínimo las siguientes características:

- CPU: Intel Core i3 con al menos 2,3GHz.

- Memoria: 4GB de RAM.

�60

Page 61: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

- Espacio libre en el disco duro: 5GB

- Sistema operativo: Ubuntu 16.04

4.1.3. Instalación de dependencias

En este apartado se describe la instalación de componentes externos a la

herramienta, y que son necesarios para su funcionamiento.

En primer lugar actualizaremos el pc. Abrimos un terminal e introducimos las

siguientes líneas.

$ Sudo apt-get upgrade

$ Sudo apt-get update

Con esto actualizaremos la lista de paquetes disponibles y sus versiones de los

servidores con repositorios por defecto en nuestro sistema operativo linux, además, de

actualizar dichos paquetes e instalar las nuevas versiones cuando sea posible.

VI

VI es un editor de texto necesario para modificar los archivos de configuración

mencionados más adelante. Si no está instalado/actualizado a su última versión,

ejecutaremos las siguientes líneas en un terminal.

Sudo apt-get install vim

Sudo apt-get update

�61

Page 62: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

XAMPP

Como hemos explicado anteriormente para la instalación de la herramienta

tendremos que montar el proyecto en local. Necesitaremos una máquina apache, una base

de datos y tener php instalado en nuestro equipo. Hemos optado por instalar XAMPP, ya

que es una herramienta que nos proporciona todo esto a la vez.

Desde la página oficial https://www.apachefriends.org/download.html descargamos

la versión que tiene php 5.6.32. Emplearemos el instalador para instalar XAMPP en

nuestro equipo. Para ello en botón derecho->propiedades->permisos, hay que activar la

opción de permitir ejecutar el archivo como un programa. Después, desde consola

ejecutamos el archivo y seguimos los pasos de instalación hasta que esta finalice.

Una vez instalado XAMPP en nuestro equipo, procederemos a configurarlo. Para

ello utilizaremos VI. En primer lugar, procederemos a configurar el archivo “httpd.conf”,

situado en “/opt/lampp/etc/httpd.conf”. Donde añadiremos el siguiente directorio.

#directory for evaluame

<Directory "/opt/lampp/htdocs/evaluame/fuelphp/public">

#Options +Indexes FollowSymLinks +ExecCGI

AllowOverride AuthConfig FileInfo Options

#FCGIWrapper /opt/local/bin/php-cgi .php

Allow from all

Order Deny,Allow

</Directory>

Una vez añadido el directorio, descomentaremos la línea de configuración que

activa el archivo de configuración de virtual host, que será el siguiente que configuraremos

( Include … httpd-vhosts.conf).

�62

Page 63: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

En el mismo nivel en el que encontramos el archivo http.conf habrá una carpeta

llamada “extras”. Dentro de ella se encuentra el archivo “httpd-vhosts-conf”. Utilizando vi,

añadiremos las siguientes líneas.

#evaluame

<VirtualHost *:80>

DocumentRoot "/opt/lampp/htdocs/evaluame/fuelphp/public"

ServerName evaluame

ServerAlias uransi.local

ErrorLog "/var/log/apache2/evaluame-error.log"

CustomLog “/var/log/apache2/evaluame-access.log" common

</VirtualHost>

Por último, deberemos configurar el archivo “hosts” situado en “/etc/hosts”.

Añadiremos la siguiente línea:

127.0.0.1 evaluame.local

De esta forma cuando coloquemos “evaluame.local” en la barra de navegación de

nuestro navegador, este nos redireccionará a nuestro proyecto virtualmente.

Git

Para comprobar si tenemos Git instalado en nuestro equipo, ejecutamos la siguiente

línea en un terminal.

$ git —version

Si tenemos instalado git, nos aparecerá la versión qué tenemos instalada. En caso

contrario, no se reconocerá el comando. En este caso, instalamos git ejecutando la

siguiente línea en un terminal.

�63

Page 64: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

$ Sudo apt-get install git

Después de esto, comprobamos si git se ha instalado correctamente en nuestro

equipo con el la línea de comprobación mencionada anteriormente.

BBDD

Por otro lado, deberemos cargar la base de datos. Para ello emplearemos

phpmyadmin que viene con XAMPP. Importaremos la base de datos que se encuentra

como un archivo adjunto .sql .

Una vez realizados todos estos pasos, colocando “evaluame.local” en la barra de

navegación de nuestro navegador, deberíamos de tener acceso a nuestro proyecto.

4.2. Manual de uso

Una vez que tenemos la herramienta instalada, pasamos a describir el uso de

dicha herramienta.

4.2.1. Login

Al acceder a la plataforma, esta nos redirecciona automáticamente a la pantalla de

“login” tal y como se ve en la siguiente imagen:

�64

Page 65: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 21. Pantalla de login.

4.2.2. Registro

Desde la pantalla de login, nos encontramos también con : "¿Nuevo en Evaluame?

Registrese ahora.” Este texto nos redirecciona a la pantalla de registro, desde la cual

podremos registrarnos como Usuario Básico en la plataforma. Para ello tendremos que

introducir nuestro correo electrónico y contraseña. La contraseña hay que introducirla dos

veces, esta debe ser la misma y en el lateral izquierdo aparece un texto informativo acerca

de esta.

�65

Page 66: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 22. Pantalla de registro.

Podemos acceder a la plataforma con dos roles diferentes: Administrador y usuario

básico.

4.2.3. Administrador

Por defecto se encuentra el siguiente usuario administrador de la plataforma.

Correo: [email protected]

Contraseña: evaluame

Al acceder a la plataforma desde la página de login, en la parte superior se

encuentra el menú principal, desde donde podemos acceder a los apartados Opiniones,

Entidades, Campos y Clientes. En la parte superior derecha, se encuentra también el email

del usuario logeado y un pequeño menú desplegable desde donde podemos deslogearnos

de la plataforma.

�66

Page 67: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Interfaz de opiniones

Una vez ingresadas nuestras credenciales en la plataforma, accedemos automáticamente al

apartado de “opiniones”, donde podemos observar todas las opiniones que se encuentran

en la plataforma (título, entidad, fecha y satisfacción general).

• Panel de filtrado

Debajo del título del apartado, centrado se encuentra un filtrado por texto y por

desplegable. El filtrado por texto busca por título de opinión y el despegable filtra por

entidades.

• Panel de exportación

Más abajo del panel de filtrado, tenemos un botón llamado “Export to CSV” que se

encarga de exportar todas las opiniones en un archivo CSV.

• Panel de evaluación

A la derecha del panel de exportación se encuentra una evaluación media de todas

las satisfacciones generales de las opiniones. Si filtramos por una entidad en concreto, este

valor se auto calcula de nuevo y nos muestra la media de las satisfacciones generales de las

opiniones de la entidad filtrada.

• Panel de visualización

Por último, nos encontramos con una tabla en la que se encuentran todas las

opiniones. A la derecha de cada opinión hay dos botones (ver y borrar) con los cuales

podemos ver en detalle la opinión o borrarla.

En la imagen de abajo podemos ver la pantalla de ver en detalle una opinión de ejemplo.

�67

Page 68: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 23. Pantalla ver detalle opinión de ejemplo.

Al intentar borrar una opinión nos aparece un mensaje de confirmación.

Interfaz de Entidades

En segundo lugar en el menú nos aparece “Entidades”. Para usar la plataforma este

es el primer apartado que hay que visitar, puesto que nos permite añadir las entidades sobre

las que deseamos crear opiniones.

�68

Page 69: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 24. Pantalla Entidades Index.

• Añadir entidades

Debajo del nombre de la sección aparece un botón de “añadir entidad” que nos permite

añadir una nueva entidad a la plataforma.

�69

Page 70: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 25. Pantalla Añadir Entidad.

Para ello, como se ve en la imagen superior, hay que insertar nombre, provincia y

ciudad.

• Panel de filtrado

En medio, centrado, aparece un desplegable que filtra por nombre de entidad.

• Panel de visualización

Y por último, nos aparece una tabla con todas las entidades insertadas en la

plataforma (Nombre, provincia y ciudad). A la derecha de cada entidad aparecen tres

botones: Ver, editar y borrar.

�70

Page 71: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 26. Pantalla Ver en detalle entidad.

Ver nos permite ver en detalle la entidad. Borrar nos permite borrar la entidad tras

aceptar un mensaje de confirmación.

Figura 27. Pantalla Editar Entidad

�71

Page 72: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Editar nos permitirá editar la entidad. En este último apartado, nos aparece también

un botón de “cerrar entidad”. La opción de cerrar entidad debe de estar marcada si se desea

poder añadir opiniones sobre esta. IMPORTANTE: Una vez cerrada una entidad no puede

volver a abrirse.

Interfaz de campos

En tercer lugar en el menú nos aparece “Campos”. Este apartado nos permite añadir

campos de valoración sobre una entidad. Para ello necesitamos anteriormente haber

añadido la entidad a la plataforma desde el apartado “Entidades” y esta entidad no debe de

estar cerrada.

Figura 28. Pantalla Campos Index.

• Añadir campos

Arriba aparece un botón “Añadir Campo” que nos permite añadir los campos a valorar

sobre las entidades.

�72

Page 73: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 29. Pantalla Añadir Campos.

Para añadir el campo, solo hay que insertar un nombre y la entidad a la que va

asociado este campo de valoración.

• Panel de filtrado

Debajo del botón de añadir campo, centrado, aparece un filtrado de texto por

nombre de campos de valoración y un filtrado desplegable por entidad.

• Panel de visualización

Por último, aparece una tabla con todos los campos añadidos a la plataforma. A la

derecha de cada uno de estos campos, aparecen tres botones: ver, editar y borrar.

�73

Page 74: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 30. Pantalla Ver Campo en Detalle.

Ver nos permite ver el campo en detalle, Editar nos permite editar este campo y

borrar nos permite borrar el campo tras aceptar un mensaje de confirmación.

Interfaz de clientes

En cuarto y último lugar en el menú, nos aparece “Clientes”. Desde donde podemos

gestionar los usuarios que hay registrados en la plataforma.

�74

Page 75: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 31. Pantalla Clientes Index.

• Panel de filtrado

Debajo del título de la sección, centrado, aparece un filtrado de texto, por nombre y

profesión de usuario, además de dos desplegables que filtran por sexo y estado del usuario.

• Panel de visualización

Por último se encuentra una tabla con todos los usuarios básicos de la plataforma. A

la derecha de cada usuario, nos encontramos con tres botones: Ver, Editar y Activar/

Desactivar. Ver nos permite ver en detalle el usuario. Editar nos deja editar el usuario, y

Activar/Desactivar nos permite activar o desactivar el acceso a la plataforma de este

usuario.

• Menú secundario

Arriba a la derecha nos aparece un menú secundario con un botón de “salir” que

nos permite deslogearnos de la plataforma.

�75

Page 76: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

4.2.4. Usuario básico

Para acceder como usuario básico a la plataforma, previamente debemos crearnos

un usuario accediendo a la pantalla de registro desde la pantalla de login.

Figura 32. Pantalla de “Primero rellene su perfil”.

Cuando nos registramos desde la pantalla de registro y accedemos a ella con

nuestro usuario, esta nos redirecciona a “Mi perfil”, donde nos obliga a rellenar nuestro

nombre, fecha de nacimiento, sexo y profesión. Una vez hecho esto, la plataforma nos

permite acceder al apartado de “Opiniones”.

�76

Page 77: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

Figura 33. Pantalla Opiniones Index de Usuario Básico.

Figura 34. Pantalla Añadir Opinión Ejemplo.

�77

Page 78: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

• Interfaz de opiniones

En la sección “Opiniones”, arriba nos aparece un botón “añadir opinión” con el

cual la plataforma nos permite añadir opiniones sobre entidades ya configuradas en la

plataforma.

Figura 35. Pantalla Añadir Opinión.

Para añadir una opinión hay que insertar un título, comentario de la opinión,

seleccionar una entidad y marcar una satisfacción general obligatoriamente.

Cuando seleccionamos una entidad, automáticamente aparecen los campos de

valoración de esta entidad, previamente configurados en la plataforma. Estos no son

obligatorios de rellenar.

• Interfaz de Mi Perfil

Si volvemos a la sección “Mi perfil” podremos ver y editar nuestros datos de

usuario. ( Nombre, fecha de nacimiento, sexo y profesión)

�78

Page 79: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

• Menú secundario

Arriba a la derecha nos aparece un menú secundario con un botón de “salir” que

nos permite deslogearnos de la plataforma.

�79

Page 80: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

5. ÍNDICE DE FIGURAS

Figura 1. Portada de Tripadvisor. Fuente: www.tripadvisor.es 15 Figura 2. Apartado “Opiniones” de Tripadvisor. Fuente: www.tripadvisor.es 16 Figura 3. Añadir una opinión en Tripadvisor. Fuente: www.tripadvisor.es 17 Figura 4. Añadir una opinión en Tripadvisor (2). Fuente: www.tripadvisor.es 17 Figura 5. Portada de Mimedicamento. Fuente: www.mimedicamento.es 18 Figura 6. Leer experiencia Mimedicamento. Fuente: www.mimedicamento.es 19 Figura 7. Añadir opinión Mimedicamento. Fuente: www.mimedicamento.es 20 Figura 8. Portada Masquemedicos. Fuente: www.masquemedicos.com 20 Figura 9. Ejemplo de añadir una opinión. Fuente: www.masquemedicos.com 21 Figura 10. Arquitectura Cliente-Servidor.Fuente: https://bit.ly/2yzffYM 24 Figura 11. Esquema MVC. Fuente: https://bit.ly/2p8O5nr 25 Figura 12. Imagen logo PHP. Fuente: www.loopeando.com 27 Figura 13. Descargar Netbeans. Fuente: www.netbeans.org 33 Figura 14. Página de descarga de FuelPHP. Fuente: www.fuelphp.com 34 Figura 15. Página de inicio MAMP. 35 Figura 16. Crear base de datos desde phpMyAdmin. 35 Figura 17. Extracto de código db.php. 36 Figura 18. Modelo de datos de “Evaluame” 37 Figura 19. Opiniones Index. 44 Figura 20a. Extracto de código ormauth.php 51 Figura 20b. Extracto de código ormauth.php 52 Figura 21. Pantalla de login. 65 Figura 22. Pantalla de registro. 66 Figura 23. Pantalla ver detalle opinión de ejemplo. 68 Figura 24. Pantalla Entidades Index. 69 Figura 25. Pantalla Añadir Entidad. 70 Figura 26. Pantalla Ver en detalle entidad. 71 Figura 27. Pantalla Editar Entidad 71 Figura 28. Pantalla Campos Index. 72 Figura 29. Pantalla Añadir Campos. 73 Figura 30. Pantalla Ver Campo en Detalle. 74 Figura 31. Pantalla Clientes Index. 75 Figura 32. Pantalla de “Primero rellene su perfil”. 76 Figura 33. Pantalla Opiniones Index de Usuario Básico. 77 Figura 34. Pantalla Añadir Opinión Ejemplo. 77 Figura 35. Pantalla Añadir Opinión. 78

�80

Page 81: HERRAMIENTA LA GENERACIÓN DE OPINIONEStauja.ujaen.es/bitstream/10953.1/9334/1/TFG_Juan... · Juan José Martos Muñoz Herramienta para la generación de opiniones 2. INTRODUCCIÓN

Juan José Martos Muñoz Herramienta para la generación de opiniones

6. REFERENCIAS BIBLIOGRÁFICAS

[1] https://www.ecured.cu/Arquitectura_Cliente_Servidor

[2] https://codigofacilito.com/articulos/mvc-model-view-controller-explicado

[3] https://www.laurachuburu.com.ar/tutoriales/que-es-jquery-y-como-implementarlo.php

[4] https://puntoabierto.net/blog/que-es-bootstrap-y-cuales-son-sus-ventajas

[5] https://es.wikipedia.org/wiki/AngularJS

[6] https://desarrolloweb.com/articulos/1325.php

[7] https://es.wikibooks.org/wiki/Programación_en_PHP

[8] http://cs.ictea.com/knowledgebase.php?action=displayarticle&id=8790

[9] https://es.wikipedia.org/wiki/MariaDB

[10] https://www.esepestudio.com/noticias/que-es-mysql

[11] https://es.wikipedia.org/wiki/MongoDB

[12] https://www.ecured.cu/FuelPHP

[13] https://es.wikipedia.org/wiki/NetBeans

[14] https://es.wikipedia.org/wiki/MySQL

[15] https://fuelphp.com/docs/packages/oil/intro.html

[16] https://fuelphp.com/docs/packages/auth/intro.html

[17] https://tripadvisor.mediaroom.com/es-about-us

[18] https://www.mimedicamento.es/

[19] https://masquemedicos.com/

[20] JOSE, Anthony Kunnel. Sentiment Analysis and Opinion Mining.

[21] https://es.wikipedia.org/wiki/An%C3%A1lisis_de_sentimiento

[22] https://www.meaningcloud.com/es/blog/introduccion-al-analisis-de-sentimientos-

mineria-de-opinion

[23] https://www.brandwatch.com/es/blog/analisis-de-sentimiento/

�81