DAW Defensa Manuel Luis Muñoz Sánchez - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Defensa del proyecto fin de grado de DAW
Buenas tardes, Manuel. Hoy día 22 de enero a las 7 y 20 horas estamos convocados a través de Jefatura de Deportamento para la defensa del módulo profesional de proyecto del ciclo formativo de grado superior de desarrollo de aplicaciones web.
00:00:01
Informo que esta grabación se usará en el entorno cerrado de EducaMadrid con fines educativos y sólo estará a disposición de los profesores en el aula virtual para llevar a cabo la evaluación y la calificación de la defensa del proyecto.
00:00:16
En el aula virtual de proyecto has sido informado de los criterios y rúbrica de calificación. El orden de la presentación del proyecto es el siguiente. 15 minutos máximo para defender el proyecto, 5 minutos para preguntas por parte del tribunal y dicho esto, tu tiempo de exposición comienza a partir de este momento. Adelante y mucha suerte.
00:00:29
Buenas tardes. ¿Alguna vez has tenido la sensación de querer mejorar en algún punto de tu vida, pero no has sabido por dónde empezar?
00:00:52
Tal vez tu objetivo sea leer más libros, pero ¿te abruma la cantidad de opciones disponibles o no tienes la capacidad de mantener el hábito?
00:01:03
Soy Manuel Luis Muñoz, estudiante del grado superior de Desarrollo de Aplicaciones Web y tengo el honor de presentar Enhanced Reads,
00:01:11
Una plataforma web dedicada para mejorar este proyecto. Actualmente, pese a vivir en una sociedad repleta de información, mucha gente, gran parte de la población, no tiene acceso a recursos de alto valor en áreas claves como son las habilidades sociales, los recursos financieros y la salud mental.
00:01:20
Enhanced Reads tiene como misión ser el punto de encuentro para todas aquellas personas interesadas en el ámbito de la mejora personal y colectiva.
00:01:43
Entre los objetivos se destacan facilitar la integración e intercambio de conocimientos, ofrecer una amplia variedad de libros y recursos de gran valor y diseñar una interfaz intuitiva, minimalista y accesible a todo tipo de usuarios y dispositivos.
00:01:53
Para el desarrollo de este proyecto se ha empleado el ciclo de vida iterativo e incremental, pues permite un desarrollo flexible, eficiente y adaptable.
00:02:08
En cuanto a las tecnologías, en el frontend se ha empleado HTML, CSS, Javascript y jQuery para diseñar una interfaz minimalista y dotar de interactividad al sitio web.
00:02:20
En el backend se ha utilizado PHP, Composer como gestor de dependencias y MySQL como sistema gestor de base de datos.
00:02:33
En cuanto a las herramientas, Git y GitHub permiten el control de versiones del código, Visual Studio Code ha permitido la codificación del proyecto y VirtualBox es la herramienta encargada de desplegar las máquinas virtuales del proyecto.
00:02:42
En cuanto a la arquitectura, se ha ampliado el patrón modelo vista controlador
00:02:56
Pues permite un desarrollo organizado, modular y escalable
00:03:01
El sistema es transparente para el usuario
00:03:05
Pues cuando se realiza una petición, el controlador se comunica con el modelo
00:03:11
Este le responde los datos correspondientes y el controlador renderizará la vista necesaria al usuario
00:03:16
En cuanto al esquema de red, el proyecto se fundamenta en tres máquinas virtuales con sistema operativo Ubuntu, ejecutadas bajo un único sistema anfitrión con Windows. Esto ha permitido separar y aislar los servicios, mejorando el rendimiento, la seguridad y la optimización de los recursos.
00:03:22
Por un lado, el servidor DNS permite la traducción de nombres de dominio a direcciones IP.
00:03:44
El servidor web y de base de datos permite gestionar la aplicación web, servir la aplicación y almacenar los datos de la misma.
00:03:53
Por otro lado, el cliente web es la máquina que empleará el usuario para acceder a la aplicación desde un navegador.
00:04:05
El diseño de la plataforma está basado para crear una experiencia intuitiva, minimalista y accesible a todo tipo de usuarios. Para ello, se ha diseñado una interfaz de escritorio, ideal para ordenadores de sobremesa y portátiles, y una interfaz responsive, ideal para dispositivos móviles y tablets.
00:04:11
De igual manera, la aplicación cuenta con un tema claro y con un tema oscuro, ambos con una paleta de colores concreta para garantizar una calidad de lectura en cualquier tipo de entorno.
00:04:33
En cuanto al apartado de pruebas, a continuación se harán en tiempo real unas pruebas desde la máquina virtual del cliente.
00:04:45
Para ello, se accederá a la página principal, en donde se pueden apreciar las dos secciones principales de la web, tanto libros como publicaciones, un apartado donde se informa del objetivo de la web, así como las valoraciones de los usuarios, y un pie de página en donde aparecen los datos de contacto y la información legal.
00:04:55
Comenzando con la gestión de usuarios, el proceso inicia al dar clic en el botón de acceder
00:05:18
Se mostrará un formulario de inicio de sesión en donde además el usuario puede crear una cuenta o restablecer su contraseña
00:05:28
Para crear una cuenta se deberá indicar el nombre de usuario, que en este caso es Pablo
00:05:37
Un correo electrónico y una contraseña que debe de ser validada
00:05:42
Al crear la cuenta saldrá un mensaje de éxito y se redirigirá al formulario de inicio de sesión
00:05:50
Para ello indicamos las credenciales que acabamos de indicar y nos habremos logado correctamente
00:06:03
Una vez iniciada la sesión el usuario tiene la capacidad de cerrar la sesión y de modificar su perfil
00:06:12
En este caso se añadirá el apellido al usuario
00:06:18
Tras dar en aceptar aparecerán los datos ya actualizados
00:06:22
Asimismo, en esta interfaz, el usuario puede eliminar su cuenta haciendo clic en el botón correspondiente y aceptando la validación
00:06:30
Tras la confirmación, se regresará a la página de inicio y el usuario habrá quedado borrado
00:06:40
A continuación, se mostrará la sección de libros y recursos, en donde de manera principal se mostrará todo el catálogo de manera paginada
00:06:47
paginada. Asimismo, existe la capacidad de filtrar los resultados por diferentes criterios. A
00:06:56
continuación se mostrarán que al filtrar por libros de finanzas con más de 200 páginas,
00:07:05
existen dos resultados. Al hacer clic en la portada de un libro de recursos, se mostrarán los detalles
00:07:10
del mismo, incluyendo información esencial como enlaces a las diferentes plataformas para su
00:07:17
compra en caso de un libro por ejemplo amazon casa del libro nada y busca libre en cuanto a
00:07:23
la administración de los libros y recursos esta acción recae únicamente en el administrador para
00:07:31
ello se inicia la sesión con la cuenta de administrador que es menor y puesto que el
00:07:36
usuario de administrador requiere de una doble factor de autenticación se deberá de indicar un
00:07:45
código OTP, One Time Password, generado por Google Authenticator. Tras iniciar sesión y regresar a la
00:07:51
sección de libros, aparecerá un botón que se llama gestionar libros. Al pulsar en él, se podrán
00:07:58
insertar libros, autores, géneros y editoriales, cada uno con su formulario correspondiente.
00:08:06
En este ejemplo, para insertar un libro, se hará la inserción del título llamado Deja de ser tú, de Joy Dispensa
00:08:12
El cual recomiendo encarecidamente su lectura, pues es un libro de mentalidad que puede cambiar tu día a día
00:08:24
Para facilitar este proceso, la inserción de los diferentes datos solicitados los tengo anotados en un blog de notas
00:08:33
Pues esto voy a ir indicando los datos correspondientes. El año de publicación del libro fue 2012, idioma español, ISBN está por aquí, y en cuanto a la portada se indicará una imagen que tengo previamente descargada.
00:08:41
Para la descripción se insertará la sinopsis del libro y en cuanto a los enlaces se indicará el enlace de compra a la web de Amazon y a la casa del libro
00:08:59
Tras insertar el libro aparecerá un mensaje de éxito y al regresar a la sección veremos que aparece el libro ya insertado en el catálogo
00:09:14
Al hacer clic en el libro, el usuario administrador tiene la posibilidad de editarlo y eliminarlo
00:09:23
En este caso, vamos a cambiar el autor a Brian Tracy
00:09:31
Y tras actualizar los datos y regresar, se puede apreciar que ha cambiado
00:09:35
De igual manera, en caso de querer borrar el libro, tan simple como pulsar en borrar y aceptar la confirmación
00:09:40
Ahora para abordar el apartado de publicaciones voy a iniciar sesión con una cuenta de Google
00:09:46
Voy a introducir mis credenciales y me lo hará automáticamente
00:09:56
En este apartado de publicaciones aparecerán un listado de todos los posts vigentes, también de manera paginada
00:10:04
así como la posibilidad de hacer filtrado de los resultados por diferentes criterios en este caso
00:10:13
como el usuario está autenticado tiene un filtro adicional de favoritos en el que se muestran las
00:10:21
publicaciones a las que el usuario ha dado me gusta al hacer clic en una publicación esta se
00:10:28
mostrará de forma completa incluyendo el apartado de comentarios para crear una publicación es tan
00:10:35
simple como dar clic en el botón crear post y rellenar la categoría el idioma el título y su
00:10:43
contenido en esta ocasión se va a insertar una pequeña publicación de una frase motivacional
00:10:49
por tanto la categoría será mentalidad y el título es el poder está en ti ahora indicamos
00:10:57
el contenido del mismo y damos en publicar tras quitar el filtro de favoritos aparecerá en la
00:11:03
publicación recién creado puesto que somos el autor de dicha
00:11:11
publicación tenemos la posibilidad de editarlo en este caso vamos a cambiar el
00:11:16
idioma inglés y se puede apreciar cómo ha cambiado correctamente así como la
00:11:21
posibilidad de eliminar la publicación tras la previa confirmación
00:11:26
además los usuarios autenticados tienen la posibilidad de dar me gustas a las
00:11:32
publicaciones y realizar comentarios. En este caso se va a dejar me gusta a la publicación de Jorge
00:11:37
sobre las claves de mejorar tu productividad y se le dejará un comentario de apoyo.
00:11:43
Como vemos aparece aquí ya insertado hace un momento. Debido a esta interacción social cada
00:11:51
usuario autenticado tendrá un apartado de notificaciones representado por una campana
00:11:58
en donde se mostrará un listado en tiempo real de todas las interacciones a las que el usuario ha recibido.
00:12:03
Al hacer el clic en una de ellas, se mostrará la publicación de manera individual,
00:12:11
lo cual es ideal para compartirla con otros usuarios o para guardarla para su posterior lectura.
00:12:17
Regresando a la presentación, toca abordar el apartado de conclusiones,
00:12:25
Pues tras el desarrollo de este proyecto se han llevado a cabo varios de los objetivos propuestos inicialmente, tales como el desarrollo de una plataforma funcional que fomente la mejora personal y colectiva, el desarrollo de una interfaz minimalista que cumple con los estándares de accesibilidad y la implementación de medidas de seguridad que refuerzan la integridad del sistema.
00:12:29
Para el largo plazo se han planteado diversas mejoras y actualizaciones en la plataforma, tales como la personalización del contenido sugerido mediante inteligencia artificial, la creación de un chat entre los miembros de la plataforma, la traducción de la web a múltiples idiomas y la migración de la aplicación a la nube para una mayor escalabilidad.
00:12:55
Si alguna vez has tenido dudas de cómo empezar a mejorar tu vida, ahora ya sabes que en Enhanced Reach tienes todo el contenido y material necesario para dar este primer paso, pudiendo incluso mejorar en comunidad. Muchas gracias por su atención.
00:13:18
Muchas gracias a ti Manuel. Y pasamos ahora a las preguntas. ¿Nos puedes mostrar el entorno de desarrollo para ver dónde está el código, cómo se puede modificar y ver el diseño de la base de datos?
00:13:34
Sí, el código lo tengo por aquí en el Visual Studio Code. ¿Necesitas que te muestre algo en especial?
00:13:55
no únicamente ver el entorno como se ha desarrollado sí pues aquí tenemos la el
00:14:03
proyecto se divide en diferentes en directorios en este primer directorio de linux son los scripts
00:14:12
empleados para la configuración de las máquinas virtuales por tanto no están relacionados como
00:14:19
tal al proyecto a la página web y luego en él en el directorio public se encuentran alojados
00:14:26
los assets en donde aparece todo el contenido css las hojas de estilo las fuentes empleadas
00:14:37
las imágenes del proyecto tanto los avatares de los usuarios como las portadas de los libros
00:14:45
Y las diferentes imágenes empleadas en la aplicación. Además, se incluye todo el código JavaScript de la aplicación, en donde se puede, por ejemplo, mostrar este código de inicio, donde hay código que se referencia del Intersection Observer para cuando el apartado de Conoce no sé si te lo puedo llegar a mostrar.
00:14:52
Vale, pues esto es cuando estás haciendo scroll en la página, hay un apartado, este código detecta que el scroll ha llegado al viewport y entonces se muestra el contenido concretamente, para no mostrarlo de manera directa, únicamente cuando el usuario hace scroll.
00:15:22
También se incluye en este apartado de la carpeta public el fichero index.php que contiene todas las rutas de la aplicación
00:15:43
Por ejemplo, las rutas de los libros y las rutas de las publicaciones, es como los endpoints, por así decirlo
00:15:57
Luego se incluye la carpeta SQL que incluye todo el código de la base de datos para la creación de las tablas y la inserción de todos los datos, incluyendo notificaciones, libros, autores, etc.
00:16:05
En el directorio SRC se contiene toda la estructura modelo vista controlado. En la primera carpeta de controllers hay una clase main, una clase principal controller, encargada de gestionar y despachar las rutas y luego las diferentes subclases heredan de esta principal.
00:16:24
Y aquí cada clase tiene asociada una tarea concreta. Este controlador, por ejemplo, es el encargado de gestionar las publicaciones. Hace la conexión con el modelo y se realizan las peticiones a la base de datos.
00:16:51
Pasando a los modelos, pues igual incluye una clase principal de la conexión a la base de datos
00:17:14
Y las demás clases se heredan de esta
00:17:24
Por ejemplo, la clase de usuarios incluye todos los métodos para hacer las consultas a la base de datos
00:17:26
Por ejemplo, obtener el rol de usuario, pues se hace la conexión a la base de datos y se hace un select de la tabla correspondiente
00:17:36
En cuanto a las vistas, pues se han organizado las diferentes páginas que el usuario ve según las categorías
00:17:43
Por ejemplo, en el directorio de libros podemos ver este fichero, esta vista de libros
00:17:52
En donde aparece los diferentes filtros de la página
00:18:02
así como un contenedor en donde se albergarán todos los libros obtenidos de la base de datos.
00:18:09
También en este directorio de SRC se incluye el fichero RoutepHP, que es el encargado de gestionar las peticiones HTTP, ya sean GET o POST,
00:18:20
y despachar la solicitud según sea el método utilizado.
00:18:34
En cuanto al directorio de test, se incluyen las clases con las pruebas unitarias realizadas en cada apartado.
00:18:44
En este caso son las pruebas unitarias sobre el apartado de publicaciones.
00:18:54
Puesto que se ha utilizado PHP Unit y se han empleado mockups de las clases
00:18:58
Esto ha permitido que no se modifiquen los datos reales
00:19:04
Es hacer una simulación mientras se han realizado las pruebas unitarias
00:19:10
Luego el directorio vendor es creado por Composer para albergar todas las dependencias
00:19:14
Y en el directorio principal de la aplicación se incluye Gitignore
00:19:20
que son los directorios excluidos al subir el proyecto a GitHub. Composer.json y Composer.log son los ficheros necesarios de Composer.
00:19:26
El license.txt es el archivo de licencia, en este caso es una MIT license
00:19:40
Y el readme es un fichero markdown en donde se explica el objetivo del proyecto, su instalación y justamente lo que estamos tratando en los directorios de la aplicación
00:19:48
Muy bien, pues muchas gracias
00:20:02
¿Tienes algo más que añadir?
00:20:12
¿O algo que consideres oportuno?
00:20:16
Antes de dar por finalizada la presentación
00:20:19
No, puesto que ya me has comentado
00:20:21
Antes que las notas iban a ser el 29-30
00:20:24
No tengo ahora mismo ninguna objeción
00:20:28
Venga, pues muy bien, muchas gracias
00:20:30
Y damos por finalizada la presentación
00:20:33
A ti Pablo
00:20:35
- Idioma/s:
- Materias:
- Informática
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Autor/es:
- Pablo Arribas
- Subido por:
- Pablo A.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 3
- Fecha:
- 24 de enero de 2025 - 16:04
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Descripción ampliada:
- La defensa del proyecto se realizó el 22 de enero de 2025 a las 19:20 horas
- Duración:
- 20′ 40″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 171.94 MBytes