Esta segunda parte de la web consiste en hacer realmente dinámica la web mediante PHP, entre otras herramientas, y también en corregir algunos aspectos de la entrega anterior para hacer que nuestra página sea más completa. Con esto en mente, empezamos la segunda y última parte de este cuaderno de bitácora.
BITÁCORA DE TRABAJO II
21 de mayo. Lo primero que voy a hacer, antes de ponerme a desarrollar la parte dinámica de la web, creo que va a ser corregir la primera entrega con la retroalimentación que recibí de mi profesor. Me dijo que me recomendaba que pusiese un 'footer' puesto que quedaba raro el final de la página (y coincido con él, termina muy abruptamente). También me dijo que me recomendaba que los links a páginas externas se abriesen en una pestaña aparte, así, quién desee volver a la web después de haber pinchado en un link, sólo tendrá que cambiar de pestaña. Esto último creo que tiene fácil solución, así que me pongo manos a la obra.
22 de mayo. Ayer conseguí hacer lo de los links que mencioné anteriormente. También, basándome en una plantilla, realicé el siguiente 'footer' que en principio pondré en todas las páginas.
Creo que queda muy bien y se alinea perfectamente con la temática y los colores característicos de la página web. Ahora creo que lo siguiente que voy a hacer, una vez más posponiendo la parte dinámica de la página, va a ser crear una sección nueva de contacto, tal y como hemos visto en clase. En esta sección intentaré utilizar las herramientas que hemos visto en la última parte de la asignatura para validar los campos del formulario de contacto. Pero esta última parte probablemente la haga más adelante, ahora únicamente me voy a centrar en la parte estética de esta nueva sección.
23 de mayo. Entre ayer y parte de hoy por la mañana he conseguido terminar esta nueva sección. Así es como ha quedado de momento.
Siguiendo con la temática de la página, he hecho las cajitas del formulario redondas e interactivas cuando ponemos el ratón encima. De momento he puesto 4 entradas (nombre, email, asunto y mensaje) y creo que la única entrada que tiene sentido validar va a ser la del email. Ahora me pondré a darle funcionalidad a este formulario de contacto.
24 de mayo. Ya tengo hecha correctamente la fiuncionalidad del formulario. De lo que trata este formulario es de que un usuario de la página pueda contactar conmigo y para ello rellene su nombre, su email (para que pueda responderle), el asunto y el mensaje que me quiere hacer llegar. Cuando le da al botón de submit he hecho que llame a un fichero php, que se encarga de recoger los datos introducidos en el formulario y de enviarme un correo a mi email personal con los datos introducidos. Lo he probado en el hosting, puesto que en local no tengo instalado ningún servicio que actúe de servidor de correo, y funciona a la perfección. Lo siguiente que voy a hacer creo que va a ser validar el campo del email, para que no te deje enviar el mensaje con una dirección de correo no válida.
25 de mayo. Entre ayer y hoy he conseguido validar el campo del email. Como la validación de Bootstrap no me funcionaba como yo quería, he decidido validarlo con una petición ajax a un fichero php que llama a una función que actúa como filtro. Si el email introducido no tiene la estructura de una dirección de email, el email no pasa el filtro y aparece un mensaje de error (para esto último he tenido que cambiar un poco el html de la sección de contacto). Cada vez que el foco del cursor sale de la cajita de email, se envía una petición de este tipo que valida el email introducido. Este es un ejemplo de lo que pasa cuando introduces una dirección inválida de correo.
El string en rojo es el mensaje de error el cual indica al usuario que debe introducir una dirección correcta de correo. Si aun así el usuario le da al botón de submit, el correo no se enviará y saltará un mesaje de error, que te invitará a volver atrás para completar correctamente el formulario.
Teniendo ya esta parte hecha lo que creo que voy a empezar a hacer es la parte de la tabla del comparador. Creo que lo que voy a hacer es una base de datos con todos los datos de la gráficas que se pueden seleccionar en el comparador y llamar con una sentencia SQL a la base de datos, aunque esto último no sé muy bien todavía cómo lo voy a hacer.
26 de mayo. Ayer me descargué AMPPS, en el cual viene phpMyAdmin, que es la herramienta que utilizaré como base de datos. Estuve rellenando la base de datos con los datos de todas las gráficas que voy a incluir en la página y, aunque fue un poco tedioso, conseguí terminarlo. Ahora lo que tengo que hacer es conectar la base de datos con el IDE en el que estoy desarrollando la página y programar las interacciones de la web con la base de datos. Creo que esto lo voy a hacer también con ajax, puesto que me interesa que no se recargue la página cada vez que le damos al botón de comparar gráficas.
27 de mayo. Ayer estuve intentando hacer que la petición ajax devolviese bien los valores de las tarjetas gráficas, pero no lo conseguí. Todavía no sé si es puedo hacerlo con una sola petición o tengo que hacer una para cada valor que quiera extraer de la base de datos. Voy a seguir trabajando en esto a ver si consigo sacarlo.
28 de mayo. Tras mucha investigación y muchas pruebas fallidas, he conseguido que el buscador funcione correctamente. Lo que hecho es que, en vez de enviar únicamente los datos en la petición ajax, he enviado la tabla directamente y he hecho que la sustituya por la que ya hay en la página, sustituyendo el contenido interno html del 'div' que contiene la tabla. Así, en vez de realizar una petición por cada dato que queremos cambiar de la tabla, solo realizamos una petición, lo cual creo que se va a notar en el tiempo de respuesta de la página. Esto es sin duda lo que más tiempo me ha llevado hacer de esta segunda entrega, pero también creo que era la más importante y la principal función de la página. Con esto hecho, estoy muy contento y muy satisfecho del resultado de la página y de toda la funcionalidad que he conseguido implementar en ella. Ahora únicamente queda agrupar el código en plantillas, para concentrar el código y no tener trozos de código repetidos, y subir el resultado al host que ya utilizamos en la entrega anterior.
29 de mayo. Ya he agrupado el código en plantillas y he subido al host el resultado. He tenido que cambiar los datos del fichero que se conecta a la base de datos con nuevos datos de usuario, contraseña y nombre, puesto que he tenido que crear una nueva base de datos en el servicio de hosting (copiando la que ya tenía en local). Con esto ya terminado, doy por finalizado el desarrollo de la página web. El resultado lo podeis ver en el siguiente enlace: https://tewcgpucompare.000webhostapp.com/
REFLEXIÓN FINAL
Para concluir, como ya había adelantado anteriormente, me gustaría dedicar un espacio a una pequeña conclusión sobre todo el trabajo que he realizado y que me ha llevado al resultado final de la web.
Tengo que decir que me ha sorprendido todo lo que he aprendido sobre desarrollo y herramientas web en esta asignatura, puesto que realmente he interiorizado muchos conceptos y me ha servido para aprender todos los diferentes pedacitos que componen una web. Sinceramente, antes de empezar la asignatura no me hubiese imaginado en ningún momento que fuese a ser éste el resultado final y que me fuese a gustar tanto pelearme con la web para crear exactamente lo que yo tenía en mente. En general, la asignatura me ha parecido super útil y muy interesante, y la recomendaría encarecidamente a todos los alumnos que les interese el mundo del desarrollo web.
Por último, y no menos importante, me gustaría volver a dar las gracias al profesor de la asignatura por su gran ayuda en todas las fases del desarrollo de la página web y por su gran interés en el aprendizaje de sus alumnos. Gracias y nos vemos pronto.


