Proyecto NOVA Por: David Cabedo Cortés – 2º DAW Proyecto nova es solamente el nombre dado al proyecto final de desarrollo de una página web, en la cual los usuarios pueden registrarse para administrar cosas comunes del día a día, tales como una agenda de contactos, o tareas pendientes (o notas) que al usuario le gustaría anotar para poder visitar más tarde, etc. Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web 1 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Índice INTRODUCCIÓN ..................................................................................................................................... 3 TECNOLOGÍAS UTILIZADAS .................................................................................................................... 4 HTML/HTML5........................................................................................................................................... 5 CSS/CSS3 .................................................................................................................................................. 6 PHP .......................................................................................................................................................... 7 JAVASCRIPT ................................................................................................................................................. 8 JQUERY ...................................................................................................................................................... 9 DATATABLES .............................................................................................................................................. 10 BOOTSTRAP 3 ............................................................................................................................................ 11 MYSQL .................................................................................................................................................... 12 ANÁLISIS DEL PROBLEMA: DISEÑO E/R DE LA BASE DE DATOS ............................................................ 13 MODELO RELACIONAL.................................................................................................................................. 14 AGENDA ................................................................................................................................................. 14 EVENTOSCALENDARIO ........................................................................................................................... 14 GMAIL .................................................................................................................................................... 14 LOGINUSER ............................................................................................................................................ 14 ROLES ..................................................................................................................................................... 14 TAREAS................................................................................................................................................... 14 TWITTER................................................................................................................................................. 14 USUARIO ................................................................................................................................................ 14 CLAVES FORÁNEAS ...................................................................................................................................... 15 DICCIONARIO DE TABLAS .............................................................................................................................. 16 DISEÑO E IMPLEMENTACIÓN ............................................................................................................... 20 LOGIN .................................................................................................................................................... 21 PANTALLA PRINCIPAL................................................................................................................................... 24 CONTACTOS............................................................................................................................................... 25 TAREAS..................................................................................................................................................... 27 VISTA DE ADMINISTRADOR............................................................................................................................ 29 ARCHIVOS QUE SE ENTREGAN ............................................................................................................. 33 COMENTARIOS .................................................................................................................................... 34 FUENTES Y OTRAS PÁGINAS ................................................................................................................. 35 2 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Introducción El Proyecto nova ha sido desarrollado en el lenguaje HTML y HTML5, que forman las bases de todo el proyecto. Otro de los grandes pilares empleados en el desarrollo de este proyecto ha sido el lenguaje del lado del servidor, llamado PHP, el cuál se encarga de las llamadas a la base de datos para recuperar todos los datos necesarios para la correcta visualización de éstos. La aplicación controla el acceso de los usuarios por medio de sesiones (que se establecen cuando el usuario hace login en la página web), y con los respectivos controles de sesión en las cabeceras de cada parte de la página web, para impedir que un usuario que no se haya dado de alta pueda acceder a los menús de la página sin autorización. También se guarda un registro de conexiones de cada usuario que inicie sesión en la página. Al hacer login, se guarda en la base de datos la hora de ingreso. Así se puede llevar un control de los usuarios que entran y cuáles son las horas con más tráfico. La aplicación está compuesta por dos tipos de usuarios: los usuarios normales, que tienen acceso a las funciones de la página web, y los administradores, los cuales tiene acceso a un menú extra que permite poder administrar los usuarios. El menú de administración (solamente para los usuarios administradores) permite ver todos los usuarios que hay registrados en la página, (para llevar un monitoreo de los usuarios que se registran, para evitar duplicidad de usuarios, etc), la posibilidad de cambiar su rol (de usuario normal a administrador), insertar usuarios manualmente o editarlos por si algún usuario ha tenido algún tipo de problema con el registro, etc. En todas las partes de la página web siempre está disponible el menú vertical, para que sea más sencilla la navegación por la página web. 3 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Tecnologías Utilizadas En este apartado se procederá a enumerar todas las tecnologías que han intervenido en el desarrollo de la página web, así como también comentar el por qué utilizar estas tecnologías y no otras, sus ventajas e inconvenientes y algunas pequeños fragmentos del código fuente de cada una de éstas tecnologías. Las tecnologías utilizadas en este proyecto son las siguientes: HTML/HTML5 CSS/CSS3 PHP Javascript jQuery Datatables Bootstrap 3 MySQL En lo que respecta al editor de código, he optado por programar en Sublime Text 2, una herramienta gratuita, ligera y muy potente. 4 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web HTML/HTML5 HTML5 es la quinta revisión importante del lenguaje básico de la World Wide Web, HTML. HTML5 especifica dos variantes de sintaxis para HTML: un «clásico» HTML (text/html), la variante conocida como HTML5 y una variante XHTML conocida como sintaxis XHTML5 que deberá ser servida como XML.1 2 Esta es la primera vez que HTML y XHTML se han desarrollado en paralelo. HTML5 establece una serie de nuevos elementos y atributos que reflejan el uso típico de los sitios web modernos. Algunos de ellos son técnicamente similares a las etiquetas <div> y <span>, pero tienen un significado semántico, como por ejemplo <nav> (bloque de navegación del sitio web) y <footer>. Otros elementos proporcionan nuevas funcionalidades a través de una interfaz estandarizada, como los elementos <audio> y <video>. Mejora el elemento <canvas>, capaz de renderizar elementos 3D en los navegadores más importantes (Mozilla, Chrome, Opera, Safari e IE). Hay muchos atributos y etiquetas nuevas los cuales son utilizadas constantemente en desarrollo de mi proyecto de curso. Ha sido muy importante la interacción de esta tecnología con Bootstrap 3. Esta parte del código hace referencia a la ventana de administración de los usuarios del sistema, sólo accesible por el administrador. En ella se pueden apreciar etiquetas como “data-toggle”, una etiqueta nueva añadida en HTML5. 5 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web CSS/CSS3 CSS u Hojas de Estilo en Cascada (Cascading Style Sheets) es el lenguaje de hojas de estilo utilizado para describir el aspecto y el formato de mi página web. El proyecto cuenta con bastantes archivos de aspecto diferentes, cada uno con configuraciones únicas para cada sección de la página. El uso de varias hojas de estilo me ha permitido poder editar la página web de una manera dinámina, sin tener que especificar en cada hoja qué tipo de estilo quiero que tenga cada parte de ésta. Prácticamente todo el código se mueve por “clases”, para así poder aplicar un mismo estilo a varios elementos a la vez dentro de la página web. En esta captura se pueden apreciar diferentes tipos de estilos propios de CSS3, y las clases (por ejemplo, aquí son llamadas con “btn” delante) repiten el nombre de algunos elementos como guía, ya que éstas por ejemplo, sirven para dar estilos a los botones, y así poder hacerlos más agradables e intuitivos de cara al usuario. 6 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web PHP PHP es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página Web resultante. PHP ha sido clave para la creacion de la página web, ya que prácticamente todos los datos que se muestran en ésta (tales como Contactos, Usuarios registrados, etc) son obtenidos directamente de la base de datos por medio de unas consultas realizadas. Éstas consultas estan almacenadas en un fichero del tipo librería de php (extensión .inc) y a su vez, en funciones que tienen el nombre de la acción que se va a realizar (por ejemplo: getUsers() ). La interacción de php con la base de datos del tipo MySQL ha permitido poder realizar una página web dinámica en su contenido, y ha facilitado la introducción de éstos datos mediante las funciones pertinentes. 7 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Javascript La utilización de Javascript (abreviado js) ha sido una buena elección a la hora de mejorar el contenido de la web. Sus funciones en mi proyecto no han sido muy directas como pueden haber sido el uso de php o bootstrap, pero ha tenido una gran importancia a la hora de mejorar la funcionalidad de la página web. Se utiliza principalmente en su forma del lado del cliente, implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas aunque existe una forma de JavaScript del lado del servidor (Serverside JavaScript o SSJS). Dada la complejidad que tiene utilizar javascript en el lado servidor, no lo he visto óptimo para mi proyecto, aunque no descarto que para futuros proyectos pueda ser una buena elección a tener en cuenta. Aunque la mayor parte de las funciones estaban predefinidas, no he descartado la posibilidad de utilizar esta tecnología. Las librerías de javascript que he utilizado en este proyecto son bastante complejas en temas de funcionamiento, ya que son muchísimas las funciones diferentes que hacen que funcione todo correctamente. Llevó un tiempo poder leer toda la documentación y decidir qué utilizar o qué no utilizar, pero creo que el resultado final ha sido bueno. 8 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web jQuery jQuery es una biblioteca de JavaScript, creada inicialmente por John Resig, que permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM, manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web. La principal función que ha tenido jQuery en mi proyecto ha sido la de mejorar el aspecto visual y la funcionalidad con la que se muestran los datos importados desde la base de datos y ordenados en una tabla de HTML5. jQuery combinado con el plug-in denominado “Datatables”, hacen que esta información pueda ser mucho más dinámica y usable. 9 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Datatables DataTables es un plugin para jQuery que nos permite darle dinamismo a nuestras tablas de una forma sencilla y aumentando la vistosidad de nuestras tablas. Con solo un par de líneas, cambiaremos completamente la apariencia de nuestra tabla. Añade muchísimas funcionalidades nuevas a las tablas estáticas de HTML, tales como poder filtrar los resultados sin recargas de página (lo cual es molesto si tienes que filtrar resultados varias veces), paginación de resultados limitando las filas que se pueden ver a la vez en la tabla (limitando estos resultados a un numero predefinido de resultados, o podemos especificar nosotros mismo mediante las funciones que incluye, cuantos resultados podemos mostrar a la vez), etc. Este es un ejemplo de como funciona este plug-in junto con jQuery. En el se especifican varios atributos para que formatee la tabla de acuerdo con unos parámetros concretos. Un plug-in muy útil y muy potente. Ha sido una de las mejores opciones a la hora de mostrar los datos en una tabla, ya que el dinamismo es muy bueno y muy amigabla con el usuario. 10 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Bootstrap 3 Bootstrap es un framework front-end para un desarrollo responsivo, el cual es muy interesante a parte por todas las funcionalidades que ofrece del tipo de css para el estilo de la página, su función más importante es que prioriza el contenido que se va a mostrar en el caso de que la página sea vista desde un dispositivo móvil. Actualmente, la industria del teléfono móvil ha cobrado mucho poder con respecto a sus anteriores años, sobretodo ahora con los nuevos “smartphone” y los sistemas operativos tales como android o WindowsPhone, que llevan el uso del teléfono a un nuevo nivel. Muchas de las páginas web de hoy en día son vistas por personas con sus dispositivos móviles, o sus “tablets” por el hecho de que sean personas sin mucho tiempo o demás, con lo cual desarrollar las páginas web pensando en que va a ser útil y visible desde un Smartphone es muy importante. Bootstrap 3 nos ofrece la posibilidad de hacer este tipo de páginas utilizando sus etiquetas y sus hojas de estilo. 11 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web MySQL MySql es un sistema de gestión de bases de datos. Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (vía dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby, Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una interfaz de programación de aplicaciones específica. Para mi proyecto me he decantado por usar PHP para acceder a esta información, y la base de datos ha sido gestionada por PhpMyAdmin, que es una herramienta escrita en PHP con la intención de manejar la administración de MySQL a través de páginas web, utilizando Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia SQL, administrar claves en campos, administrar privilegios, etc. Aquí podemos apreciar una pequeña muestra del código que se encarga de realizar las consultas en PHP, llamando a la base de datos MySQL (utilizando la sentencia mysqli_query()) para recoger unos datos (en concreto, el log de conexiones del usuario al sistema) y guardamos esta salida de la base de datos en un objeto del tipo SalidaBaseDatos. 12 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Análisis del problema: Diseño E/R de la base de datos Como podemos apreciar, todas las tablas van relacionadas por su email con el email principal declarado en la tabla usuario, el cual es llave primaria. Esto limita a que no se puedan repetir los usuarios con un mismo email (es decir, solo un email único por usuario), así se puede evitar el “spam” de usuarios basura con correos repetidos o algo por el estilo. Todas las relaciones están configuradas del tipo “on update: cascade, on delete: cascade”. Esto significa que si, por ejemplo, un administrador cambiase la dirección de email de un usuario, automáticamente se realizaría una actualización de dicha cuenta de correo en todas las tablas en las que haya registrado su correo (como puede ser la inserción de contactos, o el correo de gmail), lo cual hace mucho más fácil los cambios que pueda sufrir ya que solo con un cambio en la tabla de usuarios, se vería reflejado en todas las tablas restantes. Lo mismo sucede en caso de borrar a un usuario en concreto (o a todos si se desea). La base de datos automáticamente borrará todo rastro de ese usuario o usuarios y todos los datos almacenados en la base de datos con relación a dicho usuario. 13 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Modelo relacional AGENDA: (idagenda, emailContacto, direccionContacto, emailUsuario ) telfContacto, nombreContacto, EVENTOSCALENDARIO: (id, inicio, final, nombre, descrip, emailUsuario) GMAIL: (idGmail, emailGmail, passGmail, emailUser) No me gusta el hecho de tener que guardar los datos como email y password de un servidor de correos en la página web, pero para utilizar una conexión del tipo IMAP, era necesario guardar estos datos para que el usuario, en su próxima conexión, pudiese tener acceso a sus correos sin necesidad de que tuviese que teclear de nuevo su email y contraseña. LOGINUSER: (idLog, conexion, emailUser) Guardar las horas en las que los usuarios se conectan en la base de datos es algo interesante ya que te permite llevar un control de los usuarios, en sus horas de entrada. Una de las ideas fue guardar también desde qué navegador e IP accedían al servicio, pero al final me decanté por registrar solo la hora de entrada. ROLES: (idRol, rol, email) TAREAS: (idTarea, fechaIntroduccion, nombreTarea, descripTarea, fechaModifica, emailUsuario) TWITTER: (id, twitter, email) USUARIO: (user_id, login, password, email) 14 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Claves Foráneas AGENDA-> EMAILUSUARIO -> USUARIO EVENTOSCALENDARIO->EMAILUSUARIO -> USUARIO GMAIL-> EMAILUSER -> USUARIO LOGINUSER-> EMAILUSER ->USUARIO ROLES->EMAIL -> USUARIO TAREAS->EMAILUSUARIO ->USUARIO TWITTER-> EMAIL->USUARIO 15 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Diccionario de tablas 16 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web 17 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web 18 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web La idea principal era utilizar stored procedures (procedimientos almacenados) de la base de datos para realizar las consultas, en lugar de escribir la consulta en la librería php. Es una forma mucho más limpia de realizar operaciones con una base de datos, ya que si hubiesen cambios en la consulta, solo habría que modificar el procedimiento almacenado de la base de datos, y no tener que ir a modificar la consulta sql en la librería php (si la aplicación es pequeña no supone un problema, pero cuando hay muchas funciones y muy diferentes, puede convertirse en un problema). 19 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Diseño e implementación A lo largo de la explicación se irán mostrando capturas de pantalla para que se pueda comprobar como el usuario interactuará con la página web para utilizar sus servicios (Las capturas están tomadas desde un usuario con permisos de administrador. Hay unas ventanas que sólo son accesibles a aquellos usuarios que tengan privilegios de administrador. El resto de usuarios comunes sólo podrán ver aquellas partes de la página web que no requieran de este privilegio). En mi página web, hay un archivo denominado “funcionesGlobal.inc”. Es nada más que la librería de funciones que PHP utilizará para poder hacer peticiones y plasmar los datos en la pantalla. En un principio, esto estaba dividido (las funciones de interacción con la base de datos con las de carga de menús y código HTML que iba a estar plasmado en cada una de las páginas) pero por algunos problemas con reescritura de funciones y llamadas, tuve que globalizar todas las funciones de las cuales dispone la página web en un único archivo. Esto no supone un problema, ya que me he tomado mi tiempo para poder comentar cada una de las funciones y agruparlas por bloques de código, para que sea más fácil la distinción de las funciones que se van a encargar de recopilar los datos necesarios de la base de datos con las de la impresión HTML. 20 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web LOGIN Nada más entrar en la aplicación, el usuario va a poder ver un formulario de login para poder acceder a la aplicación y sus funcionalidades. El login es la pantalla que dará acceso a la página web y a sus funcionalidades sólo a los usuarios registrados. En esta pantalla interviene la función que se encargará de verificar la validez del usuario, y así poder darle permiso para acceder. Esta función es “confirmaLogin”, la cual recibe por parámetros el email y contraseña del usuario. La función realizará la petición correspondiente a la base de datos para así poder recuperar la información específica del usuario para poder comprobar si el email y contraseña introducidos son correctos. 21 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Por otro lado, si el usuario no está dado de alta en la página web, puede realizar un registro por medio de la ventana de registro, dando click en el botón de registro de la pantalla de login. 22 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web El usuario simplemente tiene que rellenar el formulario. El campo de la cuenta de Twitter es opcional. Era una funcionalidad implantada en la página web la cual servía para que, si el usuario tiene una cuenta, le muestre una ventana con los últimos tweets que el mismo ha publicado. El administrador del sistema tiene total libertad para agregar, modificar o eliminar a cualquier usuario del sistema, incluso otros administradores (excepto él mismo). 23 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Pantalla Principal La pantalla principal es lo primero que el usuario podrá apreciar cuando inicie sesión. En la imagen de arriba se puede comprobar como aparece un gran apartado en el medio con el título de GMAIL. En él se pueden ver los últimos correos que ha recibido el usuario, con una columna que hace referencia a si ha sido visualizado o no, titulo, autor y fecha y hora de envío. Actualmente está configurado para que las funciones IMAP importen sólo 15 mensajes como máximo. A la derecha de Gmail podemos ver tareas programadas. Son las tareas que el usuario ha podido dar de alta y las va a poder visualizar en esta pantalla. Las tareas que el usuario puede guardar son como recordatorios o notas sobre cosas que hacer. A la izquierda está el menú vertical que dan paso a diferentes secciones de la página web. Como se puede ver, hay dos secciones que sólo están disponibles en caso de ser administrador. “User Admin” y “Descarga el Código”. En esta pantalla principal hacen intervención el objeto Tarea.inc¸ y funciones cómo getCorreo, imprimeHead, menusVertical, menuUsuarioDropDown y dropDownMessages. Todas estas funciones en conjunto hacen posible la visualización de la página. 24 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Contactos En esta ventana, el usuario puede ver una agenda de contactos. El usuario puede ver los contactos que tiene agregados hasta el momento (mostrando un máximo de 5 contactos). Puede actualizar sus contactos con nuevos datos, eliminar o hacer una búsqueda para filtrarlos y poder buscar a uno en concreto. Parte del código que hace posible esto es, por ejemplo, la función getContactos. Pasandole el correo del usuario que tiene la sesión activa, la función se encargará de obtener los contactos para dicho usuario. 25 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web También es posible añadir o editar contactos. La página web está diseñada para poder insertar, ver, actualizar o borrar los contactos guardados. Para acceder a la ventana de edición de contactos, primero hay que seleccionar un contacto de la lista y darle click al botón actualizar. 26 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Tareas Es posible agregar tareas nuevas, actualizar o eliminar las existentes mediante la página tareas.php. Es una simple página en la cual se mostrarán las tareas que el usuario haya ido agregando a su usuario. Puede realizar las mismas funciones que con los contactos de la agenda. Puede eliminarlas seleccionando una (o varias) de ellas, o puede actualizarlas. También puede insertarlas desde esta misma página. 27 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web 28 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Vista de administrador Una de las partes más interesantes y que proporcionan a la página cierta funcionalidad de cara a los usuarios administradores es la vista del administrador. En ella se pueden ver los usuarios registrados en el sistema, editarlos, crear nuevos o explorar el registro de conexiones de los usuarios. Seleccionando uno de ellos se puede cargar su log de conexiones (dando clic en el botón conexiones), o incluso borrarlo si es necesario. Un posible ejemplo del código PHP que proporciona esta utilidad es el siguiente: Este código como se puede comprobar, cargará la página, y solo dejará pasar al usuario si posee una cuenta con privilegios de administrador. Como se puede apreciar, interviene la clase SalidaBaseDatos, que simplemente lo que hace es recoger la salida 29 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web de la base de datos en caso de que todo haya ido bien, o en caso contrario, devolver un false en la parte del error. Un ejemplo de una de las funciones encargadas de realizar tareas de administrador es la función insertUser 30 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Todas las funciones importantes encargadas de hacer que toda la estructura de la página web funcione, están alojadas en funcionesGlobal.inc. También se trabaja con varias clases de objetos como contacto.inc o tarea.inc. Como se puede apreciar en esta captura de pantalla, contacto tiene sus atributos privados, un constructor y todos los métodos getters y setters. La manera que tiene PHP de procesar esta información recibida después de realizar la llamada desde la función getUsers, por ejemplo, es guardando el resultado de esa llamada dentro del objeto llamado salidaBaseDatos, un objeto especialmente diseñado para prevenir fallos o errores no controlados provenientes de la base de datos. 31 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Se puede ver que es un objeto simple, simplemente tiene un atributo llamado salida, que es donde se guardará el resultado de la llamada a la base de datos, un atributo error que está por defecto a false, pero en caso de que haya un error en la llamada, pasará a ser true en la parte de captura de error (try-catch), y el atributo message, que en caso de que se produzca un error, obtendremos el mensaje y lo guardaremos aquí dentro para poder visualizarlo (o no) más tarde. 32 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Archivos que se entregan Los archivos que se entregan en este proyecto es la página web completa (a excepción de algunas partes de la página web que no funcionan del todo correctamente una vez alojadas en el hosting web para acceder mediante la dirección del dominio). Un archivo SQL llamado nova.sql el cual creará la base de datos con todas sus tablas y datos de prueba para poder visualizar las funcionalidades de la página web. Todos los archivos de la página web, ya sea la versión con las cadenas de conexión utilizadas para trabajar con phpmyadmin en modo local, o los archivos configurados para trabajar con la base de datos phpmyadmin de mi dominio. Esta memoria también es entregada junto a todo el proyecto de curso. 33 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Comentarios Este proyecto lo veo más bien como una fase principal de lo que podría llegar a diseñar en un futuro. Aunque solo es como una fase “beta” de una idea que tengo en mi mente, creo que a partir de ahora (quizás empleando otras tecnologías como .net, eso ya está reservado para futuros planteamientos acerca de una nueva web de administración) podré utilizar como referencia esta estructura creada aquí, o quizás las funciones o demás conocimientos adquiridos durante el desarrollo de la página web. Muchas son las horas invertidas en adquirir conocimientos (puede que igual o más horas que para desarrollar la página) porque antes de ponerme a diseñar como tal, tuve que mirar mucha documentación acerca de las diferentes tecnologías como ASPX o PHP, y decidir qué encajaría mejor en el diseño de esta página. Al final opté por utilizar PHP. ASP.NET puede ofrecer quizás una manera diferente de programar una página web, ya que ofrece controles web para trabajar en el lado servidor (los cuales quedan ocultos al usuario) y controles de usuario para poder trabajar con las etiquetas HTML. Al final me decanté por PHP y HTML ya que no es muy complicado de utilizar, y el hecho de querer desarrollar en ASP.NET me obligaba a instalarme visual studio para poder trabajar cómodamente. 34 Proyecto NOVA Estudiante del 2º año de Desarrollo de Aplicaciones Web Fuentes y otras páginas Bootstrap 3: http://getbootstrap.com/ jQuery: http://jquery.com/ Datatables: https://datatables.net/ Base de datos y apache para servidor local: Xampp: https://www.apachefriends.org/es/index.html Editor de código: SublimeText: http://www.sublimetext.com/ NetBeans: https://netbeans.org/ Páginas que han ayudado en la resolución de problemas surgidor a lo largo del proyecto: GitHub: https://github.com/ StackOverflow: http://stackoverflow.com/ Foros del web: http://www.forosdelweb.com/ Betabeers: http://betabeers.com/ Bootsnipp: http://bootsnipp.com/ 35
© Copyright 2024