Defensa_Proyecto_Adam_Lorenzo_DAW
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:
Hola, buenas tardes. Hoy, día 7 de mayo, a las 6.25 horas, estamos convocados a través de Jefatura de Departamento para la Defensa del Módulo Profesional de Proyecto del Ciclo Formativo de Grado Superior de DAU.
00:00:01
Te informo de que esta defensa está siendo grabada, 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 evaluadores en el aula virtual para llevar a cabo la evaluación y calificación de la defensa del proyecto.
00:00:17
En el aula virtual de proyectos habéis sido informados de criterios de evaluación y rúbrica. El orden de la presentación de proyectos será el siguiente, 15 minutos para la defensa del proyecto y 15 minutos para preguntas por parte del tribunal. En este caso sería yo.
00:00:31
Dicho esto, tu tiempo de exposición comienza a partir de este momento. Adelante y mucha suerte.
00:00:49
Vale, muchas gracias. Pues hola, soy Edda Lorenzo Gómez, no sé si debo presentarme, pero bueno, alumno del grado superior de Desarrollo de Aplicaciones Web y este es mi proyecto, que lo he titulado Desarrollo de Plataforma Web Escalable con Panel de Control.
00:00:56
Mi tutor ha sido Víctor Borja Martín
00:01:15
Y bueno, procedo a ello
00:01:19
Bueno, esto es solo el índice
00:01:22
Que aparecen los puntos que se van a comentar
00:01:27
Y bueno
00:01:31
¿En qué consiste el proyecto?
00:01:32
Pues el proyecto consiste
00:01:35
En una aplicación web o una página web
00:01:38
O un sitio web
00:01:41
que podría decirse que es como una red social
00:01:43
en la que el objetivo principal es en el que los usuarios
00:01:47
al igual que en otras redes sociales como TikTok, YouTube y tal
00:01:54
al final son los que suben el contenido
00:01:57
pero obviamente también pueden verlo
00:02:00
así que por un lado el proyecto se ha dividido en los usuarios
00:02:03
que son los que entran a la web y pueden ver los vídeos, filtrarlos y además añadir nuevos aportes mediante un formulario.
00:02:12
Y luego, por otro lado, otra parte importante del proyecto sería el panel de administrador,
00:02:20
que se compone de un sitio donde los vídeos que se han enviado los usuarios tienen que ser aprobados o rechazados.
00:02:26
O sea, los vídeos que mandan los usuarios no aparecen, por así decirlo, a todo el mundo hasta que ha pasado por un equipo de moderación o administración. Los administradores también pueden modificar los vídeos que han sido aceptados, por ejemplo, alguna errata o incluso jamberle la categoría o eliminarlos más adelante también si procede.
00:02:35
procede. También pueden gestionar los usuarios, que en este caso solo son usuarios de administrador
00:02:56
o moderación, pero bueno, los puedes añadir, eliminar o editar también. Y también puedes
00:03:02
añadir o eliminar categorías y subcategorías, que son la forma de, aunque sea redundante,
00:03:07
categorizar los vídeos. Para acceder al panel admin, se accede mediante un sistema de login
00:03:14
al que se accede por url no hay por así decirlo un acceso directo desde el home o el index para
00:03:22
acceder al login sino que se accede directamente poniendo en la url el login esto al principio
00:03:30
pensé en poner un acceso y tal pero como es sólo para administradores pues pensé al estilo de
00:03:37
wordpress que tú cuando una página está hecha con wordpress pones en la propia url w admin creo que
00:03:43
Y te lleva al panel de inicio de sesión. Los usuarios a día de hoy no pueden iniciar sesión, pero bueno, eso es una de las mejoras que se podrían implementar en el futuro y que se han planteado, pero bueno, al final nos ha llevado por falta de tiempo y esas cosas.
00:03:51
Y en resumen sería eso, en lo que consiste la página web. Por un lado los usuarios que pueden ver vídeos, buscar vídeos, además de añadir aportes. Y luego por otro lado los administradores que son los que aceptan o rechazan esos vídeos y administran el sitio en general.
00:04:09
Eso serían como las dos partes, igual de importantes, pero bueno, se distingue muy claramente una de otra.
00:04:26
Y en general el proyecto sería eso. Vale, ahora pasamos a la metodología.
00:04:35
Para el proyecto se ha usado una metodología ágil, es decir, se ha enfocado el proyecto en distintas fases y se ha hecho hincapié en la mejora continua,
00:04:44
adaptándome a lo que me iba encontrando y mejorando sobre todo lo que ella iba haciendo.
00:04:55
Se ha hecho un enfoque, aunque también está incluido dentro de la metodología ágil,
00:05:03
incremental porque el proyecto se ha dividido en bloques o mini proyectos,
00:05:08
es decir, no se hacía como todo a la vez, obviamente tampoco se pueda,
00:05:11
pero se ha ido haciendo de modo que se establecía primero el objetivo de,
00:05:19
Por ejemplo, crear el login o, bueno, en este caso fue primero el index. Una vez el index funciona y aparecen los vídeos, se da como por finiquitado, entre comillas, ese bloque y pasamos al siguiente que a lo mejor era la creación del login.
00:05:24
una vez el login funciona, pues hemos pasado
00:05:40
por ejemplo al panel admin, en este caso
00:05:42
pero también
00:05:44
el proyecto o la metodología que se ha usado
00:05:46
es iterativa, porque todo lo que
00:05:48
se ha ido haciendo, no es como que se le pusiese
00:05:50
el punto final, sino que se ha ido revisando, porque a lo mejor
00:05:52
encontraba una forma
00:05:54
mejor de hacerlo, o podía optimizar
00:05:56
más el código
00:05:58
o no sé, si me ocurría
00:05:59
algo y lo podía mejorar, o podía
00:06:02
reutilizar algo de código que he creado en una
00:06:04
función que al principio pensaba que iba a ser como muy concreta
00:06:06
para una página y luego he visto que la podía reutilizar
00:06:08
y así he creado una función y la he reutilizado en más sitios.
00:06:11
Así que, bueno, esa es la metodología que se ha llevado
00:06:16
hasta que se ha terminado, aunque, bueno, incluso habiéndose terminado
00:06:18
se pueden añadir, seguir añadiendo cosas y demás.
00:06:21
Las tecnologías y herramientas que se han utilizado
00:06:29
son las que aparecen por pantalla, que en este caso son HTML
00:06:32
para darle estructura
00:06:37
o un esqueleto al código
00:06:40
CSS para darle
00:06:43
estilo y diseño visual, Javascript
00:06:46
que en este caso no se ha utilizado
00:06:49
ningún framework ni nada y se ha utilizado
00:06:52
lo que se llama Javascript vanilla que es Javascript puro
00:06:54
eso, sin ayuda de framework ni nada
00:06:58
y bueno, ahora que también he mencionado el HTML
00:07:01
es, aunque también lo resaltaré más adelante
00:07:04
La web obviamente lleva HTML, pero no lleva mucho HTML. ¿Por qué? Porque la mayoría se ha generado de forma dinámica mediante el DOM de JavaScript. Se han generado dinámicamente los propios elementos mediante las etiquetas o herramientas o funcionalidades como Create Element y ahí creamos un input o una tabla, cosas así.
00:07:07
Luego también se ha utilizado PHP para el backend, al igual que las tres primeras se orientan más al frontend, PHP para el backend, que sirve para gestionar toda la lógica de backend, interacción con la base de datos y eso.
00:07:31
Luego, SQL para comunicarnos con, bueno, no para comunicarnos con la base de datos, pero bueno, el lenguaje utilizado para interaccionar con la base de datos, a los cuales los llamamos desde PHP, pero claro, con sentencias SQL de normales.
00:07:48
Luego
00:08:02
Como framework
00:08:05
El único que se ha utilizado es Bootstrap
00:08:08
Básicamente para no tener que crear un CSS desde cero
00:08:10
Y porque con su sistema de rejilla
00:08:15
Nos ha ayudado mucho el responsive
00:08:17
Tiene muchos estilos que vienen muy bien
00:08:20
También tiene funcionalidades como los modales
00:08:23
Que se llaman, que son como ventanas
00:08:27
No emergentes, porque al final es el usuario el que elige
00:08:29
cuando se abren pero bueno son como ventanas que se ponen encima del html en este caso en la que
00:08:31
pues podría aparecer pues en este caso en la página pues vídeos o formularios y también se ha utilizado
00:08:38
bootstrap icons que también es una librería que hay que importar al proyecto que también está hecha
00:08:45
por bootstrap y pues básicamente nos aporta una serie de iconos que además se adaptan a bootstrap
00:08:52
Y pues, no sé, se pueden utilizar para representar usuarios o para íconos de redes sociales y demás.
00:08:59
También, aunque no lo meto aquí en esta diapositiva, se ha utilizado una librería externa que se llama Sweet Alert, que básicamente sirve para poner como pop-ups, eso sí que lo definiría como un pop-up, de alertas para usuarios o para los administradores.
00:09:08
Por ejemplo, cuando actualizas un usuario, se hace la petición entre el JavaScript y el PHP y si el resultado es exitoso o no, sale una ventana de si ha actualizado correctamente o no se ha actualizado correctamente.
00:09:25
Básicamente para eso.
00:09:39
Luego también MySQL, que se ha utilizado como gestor de base de datos para almacenarla.
00:09:42
Solo un apunte, Adam, llevamos un poco de tiempo para que sepas.
00:09:51
¿Mitad del tiempo? Vale, se ha utilizado, bueno, YouTube como tal no se ha utilizado, pero al final es la API para la que hemos obtenido los datos y porque hemos utilizado su sistema de E-Frame para visualizar los vídeos.
00:09:55
Github para el repositorio y para el control de versiones y Visual Studio como, ahí no me sale la palabra, para editos de código. Perdón, le meto el turbo.
00:10:13
Los recursos, pues a nivel casero lo he hecho yo solo en un ordenador que me tuve que comprar con las propiedades de G7 y en un entorno local.
00:10:26
Los tiempos son un poco los que se ven aproximadamente en esa imagen
00:10:37
Luego también estas imágenes y la mayoría de estos datos también están en la memoria para consultarlos
00:10:42
Y bueno, un poco los tiempos que se han llevado son estos
00:10:46
A nivel económico pues lo he hecho todo gratis y me tuve que comprar un portátil de 400 euros
00:10:49
Luego en un entorno real se profundiza más en la memoria
00:10:54
Para el diseño, una vez obtenida la API de YouTube
00:10:59
y visto que todo se puede realizar, creadas las variables de entorno, la conexión a base de datos, pues lo que se hizo fue crear la base de datos.
00:11:05
Son cinco tablas, podrían haber sido tres, bueno, no, cuatro. Cada una con una función distinta y es verdad que la de vídeos aprobados y vídeos pendientes
00:11:18
Podría haber sido una sola tabla en la que se distinga mediante un campo adicional que unos vídeos están aprobados o no, mediante un campo boleano, un check o lo que sea. Pero se decidió hacerlo en dos tablas distintas para separar de forma más clara la lógica entre una y otra.
00:11:26
Luego, como parte también del diseño, pues se ha utilizado el modelo vista controlador
00:11:44
Porque estaba familiarizado, lo conocía y tal
00:11:53
Los modelos definen los datos de la aplicación
00:11:55
Hay uno por tabla, además de uno extra, que lo he llamado functions
00:12:00
Que es básicamente un modelo que crea funciones que luego las demás pueden heredar
00:12:05
En ese sentido, los modelos tienen un formato muy similar al de las clases de Java. Luego, las vistas para mostrar los datos y los controladores para gestionar los datos, para pasarlos a las vistas y para consultar a SQL y luego para actualizar también cuando se comunique mediante las funciones asíncronas de JavaScript con el frontend o con el backend.
00:12:12
y luego pues la codificación de todo el código
00:12:39
más o menos una vez estaba ya el SQL de todo hecho
00:12:43
donde se puede destacar lo que he comentado ya de los modelos
00:12:46
que al final son muy similares a lo que es una clase de Java
00:12:49
en el proyecto también como he mencionado
00:12:52
hay muy poquito HTML, casi todo es
00:12:56
generado mediante el DOM de JavaScript
00:12:58
las funciones asíncronas que hay bastantes
00:13:01
para comunicar el frontend con el backend
00:13:05
ya sea cuando se actualiza una tabla, cuando se eliminan unos datos, cuando se acepta un vídeo, lo que sea, todo eso se hace mediante una función asincrona
00:13:08
que se envía desde el frontend hasta el backend, que se comunican con los endpoints, que son las funciones del backend, que reciben los datos y gestionan ya los datos.
00:13:17
Las vistas comparten todas el mismo layout para evitar la repetición de código, sobre todo para no tener que importar de nuevo librerías o el CSS,
00:13:27
O, por ejemplo, todas comparten el mismo header y el mismo footer. Y así lo haces todo en el mismo sitio y lo único que haces es cambiar el contenido y el JavaScript que toque en esa vista. Y, al final, el diseño es minimalista, sencillo, intuitivo y responsive porque es verdad que no tiene un diseño, a lo mejor, muy logo, pero es muy simple, fácil de usar y todo esto también le hace un poco a post-trap.
00:13:36
Os quedan dos minutos.
00:13:59
Uff, guapos
00:14:00
Lo hacemos tan complicado
00:14:01
Los aspectos legales, un poco los que se ven
00:14:03
en pantalla, esto se me olvidó
00:14:06
comentarlo hasta que tú me lo dijiste, lo añadí a la memoria
00:14:08
YouTube permite
00:14:10
que se usen los vídeos siempre y cuando
00:14:12
sea mediante su reproductor
00:14:14
y se adjudique los derechos
00:14:15
al autor original
00:14:18
y bueno
00:14:19
todas las contraseñas están cifradas
00:14:21
las cookies
00:14:24
la verdad que no se añaden, pero bueno
00:14:26
las que haya de YouTube terceros
00:14:28
El contexto laboral. Se puede utilizar en un montón de contextos debido a la creciente importancia del contenido multimedia de las redes sociales.
00:14:30
Es verdad que este proyecto se ha enfocado al ocio, pero bueno, se podría haber enfocado a la educación, a medios de comunicación, videojuegos y un montón de plataformas de distintos tipos,
00:14:42
las que sean los usuarios los que suben el contenido y haya un equipo de moderación que dice esto sí, esto no, por así decirlo.
00:14:50
Respecto a las mejoras futuras, la mayoría no se han implementado por falta de tiempo o recursos o conocimientos. Algunas me las comentó el tutor Borja, otras simplemente se me han ido ocurriendo a mí, como son el sistema de reportes para que los usuarios digan este vídeo es inapropiado o este vídeo ha caducado porque ya no está en YouTube.
00:14:59
panel de estadísticas
00:15:15
para administradores, sistema de registro
00:15:18
donde los usuarios pueden almacenar sus videos favoritos
00:15:20
o tal, sistema de notificaciones
00:15:22
para que un usuario cuando se le ha aceptado un video
00:15:24
le llegue un email, ese tipo de cosas
00:15:26
este video
00:15:27
creo que daba como dos minutos y medio
00:15:30
así que paso directamente a la demostración
00:15:31
donde tenemos por ejemplo
00:15:33
o sea, este sería el home
00:15:38
con un footer genérico
00:15:39
con videos y tal
00:15:43
después de ver el video
00:15:44
puedes recuperar el volumen gracias a la API de
00:15:47
YouTube, lo puedes detener
00:15:49
empezar otro
00:15:51
luego aquí puedes
00:15:53
buscar, por ejemplo, hay uno que tiene la palabra
00:15:55
parque, pues le damos a filtrar
00:15:57
y lo que aparece es parque
00:15:59
restablecemos, ahora queremos ver solo
00:16:01
los que son de ocio, por ejemplo
00:16:03
creo que no hay ninguno, mira, hay uno, el mismo
00:16:05
y así, ¿qué otras opciones
00:16:07
tenemos? Tengo aquí un video preparado para
00:16:09
compartirlo aleatorio, tú como usuario
00:16:11
puedes llegar, darle aportes
00:16:13
tienes que pasar la URL
00:16:15
un título el que sea, voy a poner hola para ser más rápidos, categoría la que sea, subcategoría y descripción son opcionales, son voluntarios, se avisa al usuario y ahora habría que pasar al sistema de login donde por ejemplo si no metemos las cosas pues no nos deja, si por ejemplo metemos un usuario que tampoco existe tampoco nos deja,
00:16:17
Así que habría que poner el completo. Y aquí, por ejemplo, lo que acabamos de crear es este. Aquí tú como administrador podrías ver el vídeo, lo que sea, juzga si te parece bien y lo puedes o rechazar o aceptar. Lo aceptamos y ahora, por ejemplo, si nos ponemos aquí a gestionar vídeos, vemos que el que acabamos de agregar aparece.
00:16:45
Nosotros aquí como administradores podríamos cambiarle la categoría, podríamos volver a verlo, le podemos añadir descripción, hola nos parece muy genérico así que ponemos hola 2 y se actualiza también, incluso podemos eliminarlo si no nos gusta porque ya no nos parece bien.
00:17:11
Los usuarios, lo mismo
00:17:28
Desde aquí también podemos crear usuarios
00:17:30
Con la particularidad, por ejemplo
00:17:33
De que si creamos
00:17:35
Uno
00:17:37
Con un correo que ya existe
00:17:38
Nos salta el chivato
00:17:40
Porque al final el campo de inicio de sesión es este
00:17:41
Este es el usuario, aunque este sea el nombre
00:17:44
Y aquí ponemos lo que sea
00:17:46
Pero no nos va a dejar porque
00:17:48
Este campo que es único en la base de datos
00:17:50
Pues ya nos echa para atrás
00:17:52
Es verdad que si por ejemplo hacemos esto
00:17:53
Pues sí que nos va a dejar porque
00:17:55
tal, la vista se
00:17:57
autoriza automáticamente, no hemos tenido que refrescar
00:18:01
por ejemplo, pero si refresco vemos que efectivamente ya se había
00:18:03
creado y las categorías es un poco lo mismo, podemos
00:18:07
añadirlas, eliminarlas, editarlas, por ejemplo creamos esta
00:18:09
categoría, se llama hola
00:18:13
y ahora si nos venimos aquí a gestionar vídeos, a cambiarnos
00:18:15
por ejemplo, aquí vemos que el hola sale
00:18:19
y las categorías son un poco eso, el hola por ejemplo
00:18:21
no lo queremos cargar y ya no sale
00:18:25
Y ahora, si volvemos al home, vemos que el vídeo que acabamos de aceptar aparece aquí ya en el home. Y bueno, eso sería como la vista súper rápida respecto a la presentación.
00:18:27
Presentación. Conclusiones. Esto desde el día uno lo hablé con mi tutor Borja. O sea, soy consciente de que tampoco es la idea más innovadora del mundo, pero sí que creo que es muy completa.
00:18:44
Al final se tocan un poco todos los módulos del radio superior, sin contar FOL inglés quizá, pero de algún modo u otro se tocan todos los módulos y por eso considero que al final es buen proyecto.
00:18:55
y bueno, en fin, que creo que me he pasado de tiempo
00:19:08
de sobra, muchas gracias
00:19:14
a mi tutor que siempre me contestó muy rápido
00:19:16
a los correos y punto por punto
00:19:18
porque yo a lo mejor le hacía cinco preguntas
00:19:20
en cinco puntos y él me contestaba punto por punto
00:19:22
en forma correcta, me recordaba cosas
00:19:24
y me hacía hincapié un poco en lo que podía mejorar y tal
00:19:26
y bueno, perdón
00:19:28
lo único que, claro, al final
00:19:30
le he metido, bueno, no sabía
00:19:34
que me sobraba tanto contenido, la verdad.
00:19:36
Está bien, está bien. Al final
00:19:39
el problema no ha sido acabar
00:19:40
antes, sino...
00:19:42
Hablar sobre lo que querías hablar.
00:19:43
Me he dejado demasiadas cosas
00:19:47
sin hablar, pero bueno.
00:19:48
No, está bien. Vale, pues
00:19:49
nada, te voy a hacer alguna... Bueno, lo primero
00:19:52
es felicitarte por el proyecto, porque
00:19:54
pienso que está muy bien lo que has
00:19:56
hecho.
00:19:58
Muchas gracias.
00:20:00
Creo que tocas muchos
00:20:01
temas que son
00:20:03
importante es acción de programación y nos parece que la ejecución es bastante impecable
00:20:05
vale pues cuál crees que es la mayor fortaleza del proyecto que crees que es
00:20:14
la mayor fortaleza yo creo que no sé si puedo seguir compartiendo y comentando un poco lo que
00:20:21
Yo creo que en Fortaleza, por ejemplo, una cosa que a mí me gusta es que tú, por ejemplo, si actualizas este campo, ahora, por ejemplo, ponemos hola 3, se ha actualizado directamente y no tienes como que refrescar.
00:20:29
Aquí no se refleja tan bien, pero, por ejemplo, si creamos un nuevo usuario, vemos que al darle a la casilla esta, por ejemplo, se genera una fila en la tabla.
00:20:45
y sin tener que refrescar
00:20:54
se ha creado automáticamente y se han
00:21:03
devuelto al formato
00:21:05
original de la tabla. Si reflejamos
00:21:07
la verdad que está ordenado por orden alfabético y tal, pero bueno
00:21:09
las contraseñas aparecen
00:21:11
encriptadas, pero si las actualizamos
00:21:13
pues obviamente aquí aparece así
00:21:15
pero a la que refrescamos
00:21:17
se ve de aquí el modo
00:21:19
y no sé, ese tipo de cosas a mí me gusta
00:21:20
O como cuando vas a añadir un usuario, ese email, aunque no hace falta que sea un email, pero bueno, ese email ya está cogido y te salta el chivato.
00:21:23
El no ser tan mucho feedback de lo que estás haciendo.
00:21:36
El comunicarse constantemente el frontend con el backend, que en ese sentido, te lo puedo mostrar aquí rápidamente.
00:21:41
creamos funciones
00:21:47
asíncronas a las que les asignamos
00:21:50
una URL con la que
00:21:52
se va a comunicar
00:21:54
y ahora aquí
00:21:54
la busco para no tener que bajar la mano
00:21:57
y aquí se comunica
00:21:59
automáticamente con esto
00:22:02
que ya sería el endpoint o el PHP
00:22:03
y bueno pues desde aquí
00:22:06
recibimos los datos y nos comunicamos
00:22:08
y no sé, en ese sentido me parece
00:22:10
todo como muy limpio
00:22:12
y no sé
00:22:14
me gusta, también es como estoy acostumbrado a trabajar
00:22:16
y no sé, al final me gusta
00:22:18
¿Tenías experiencia en programación o es
00:22:22
lo que has visto en el módulo?
00:22:24
No, tengo, o sea, trabajo
00:22:26
de esto, más o menos
00:22:28
Ya me parecía
00:22:29
Claro, o sea, no
00:22:31
si fuese solo con el HTML
00:22:33
y estas cosas que se dan, a ver, que se da un poco
00:22:36
de todo, pero sí, un poco de experiencia
00:22:38
sí que tengo, no soy experto, porque como
00:22:40
también digo en la memoria y tal, me falta sobre todo
00:22:42
aprender, o sea, yo creo que ahora mi siguiente paso
00:22:44
es aprender frameworks
00:22:46
frameworks, sobre todo Laravel y React
00:22:47
ese sería como mi siguiente
00:22:49
paso, pero diría que
00:22:51
hasta ese punto más o menos sí que lo tengo un poquito
00:22:53
o sea, controlo un poquito
00:22:55
no por fliparme, pero
00:22:57
no voy de cero en ese sentido
00:22:59
No, está muy bien, ya me parecía
00:23:01
a mí que tenías algo de experiencia
00:23:03
o sea, todo el dinamismo de la página
00:23:05
lo estás haciendo con funciones asíncronas de
00:23:07
Javascript, sustituyendo
00:23:09
el contenido HTML de algún
00:23:11
elemento que tienes ahí que es
00:23:13
común, digamos
00:23:14
claro por ejemplo en una vista o sea esto sería esto de aprobar vídeos sería por ejemplo esta
00:23:16
vista que al final es pues bueno esto se importa desde aquí o sea esto es esto el sidebar admin
00:23:25
que es un elemento flotante luego la verdad que no te sea el responsivo y tal pero bueno
00:23:35
si hacemos el responsive
00:23:41
pues esto vemos como se oculta
00:23:44
y si lo abrimos pues aparece aquí en el panel
00:23:46
lateral y esas cositas
00:23:48
si lo podemos ampliar pues
00:23:49
vuelve a aparecer
00:23:52
y
00:23:52
es eso, no tiene mucho HTML
00:23:55
o sea, básicamente le doy un contenedor
00:23:58
que en este caso lo puedo llamar body admin
00:24:00
o
00:24:02
o este tipo y luego
00:24:03
en la vista lo que hago es
00:24:05
seleccionarlo
00:24:08
y ya pues le digo
00:24:10
mira, créame esta tabla, este
00:24:12
tg, este tbody
00:24:14
estos th
00:24:16
a cada uno le doy lo que necesite
00:24:17
le puedo dar eventos, le doy las clases
00:24:20
le doy los dataset y tal
00:24:23
y luego pues todo lo anido dentro
00:24:24
del elemento que quiero
00:24:26
y no sé, eso por ejemplo también me gusta mucho
00:24:27
que html como tal y nada
00:24:30
y de este modo como que se hace
00:24:32
muy dinámico
00:24:34
Ha replicado de alguna manera
00:24:36
lo que hace un framework javascript
00:24:38
un poco, ¿no? porque
00:24:40
por ejemplo que trabajaría con componentes
00:24:41
claro, eso es
00:24:44
por eso es un poco a donde me quiero orientar
00:24:46
al igual que Laravel se orienta mucho hacia el modelo
00:24:47
vista controlador
00:24:50
pues por ahí es un poco
00:24:51
por lo que quiero tirar, claro, pero esto es
00:24:53
creo que es el término correcto
00:24:55
javascript vanilla, esto es
00:24:57
a mano, todo, esto
00:25:00
no hay framework
00:25:01
el único framework es
00:25:04
pues chave en ese caso
00:25:05
Está muy bien, porque has aprendido, digamos, la base que ahora te permite enfrentarte a los...
00:25:08
Claro, entiendo que el momento en el que me ponga a aprender esas cosas voy a entenderlo bien.
00:25:15
Sí, veo que manejas bastante bien las funciones de JavaScript.
00:25:21
Tienes que mirar las funciones estas tipo filter, map y todo eso, porque se usan mucho en este tipo de frameworks para ahorrar código y demás.
00:25:27
Claro, es verdad que muchas veces es muy repetitivo
00:25:38
tener que crear no sé cuántos elementos
00:25:40
Claro
00:25:42
Pero sí, sí, o sea
00:25:43
eso es totalmente cierto
00:25:46
Vale, luego
00:25:48
otra preguntilla que tenía por aquí
00:25:50
¿Qué parte del proyecto fue la que te costó más
00:25:51
hacer, implementar?
00:25:54
La que más, con diferencia
00:25:56
lo tengo clarísimo
00:25:57
Lo que es empezar de cero
00:26:00
o sea, crear la base de datos
00:26:04
O sea, por ejemplo, crear esto no es, o sea, sé hacer bases de datos y comunicarme con ellas con SQL también. Mi problema estaba en crear como la base de todo el sistema de rutas, empezar el proyecto desde cero.
00:26:05
O sea, yo puedo crear el repositorio, obviamente, eso es una tontería, pero lo que más me costó es lo que viene a ser esto, el index. Claro, esto sí que tuve que ayudarme de cosas de por ahí y esto al final es una constante, pero bueno, no tanto.
00:26:26
Estos son las variables de entorno
00:26:41
Que básicamente le digo
00:26:43
En el host, localhost, comunícate con la base de datos
00:26:44
Que se llama proyecto DAO
00:26:48
Usuario, contraseña
00:26:49
Y eso es la database
00:26:51
Y para mí esto es lo más difícil
00:26:53
O lo que menos entiendo
00:26:56
Lo tengo todo lo comentado que puedo
00:26:57
Pero esto para mí es lo más difícil
00:26:59
Y luego aquí, todo eso conlleva
00:27:02
A esto, que es el sistema de rutas
00:27:04
Una vez conseguí esto
00:27:05
El proyecto para mí fue
00:27:06
Como bastante rodado
00:27:09
O sea, porque yo aquí lo único que tengo que hacer es añadir, estas son las vistas, por así decirlo, y estos son los endpoints. Son métodos, pero no son vistas, no están hechos para visualizarse nunca, simplemente gestionan datos.
00:27:11
y para mí la parte más compleja fue esta
00:27:26
lo tengo comentado para entenderlo
00:27:29
pero para mí esto es un poquito lo más
00:27:31
también la verdad que creo que estoy yo un poquito
00:27:32
o sea, creo que se me da un poquito mejor el frontend
00:27:35
que el backend, porque al final hay un montón
00:27:37
de PHP y de
00:27:39
y de cosas
00:27:41
pero para mí lo más
00:27:42
complejo fue esto
00:27:45
una vez conseguí que funcionase
00:27:46
ya estaba perfecto
00:27:48
de hecho, cuando menciono
00:27:51
el
00:27:53
Aquí en el diagrama de Gantt
00:27:54
Mira, creación y configuración
00:27:58
Del sitio, al final
00:27:59
Me llevó más que crear el login
00:28:00
A ver, esto es un poco aproximado a todo
00:28:02
Pero lo más difícil para mí
00:28:04
De largo fue eso
00:28:07
Configurar el sitio de base
00:28:08
Porque claro, también podría haber trabajado
00:28:10
Con rutas
00:28:12
Absolutas, creo que
00:28:13
Se dice, rollo
00:28:16
En vez de
00:28:18
Si por ejemplo estamos en este archivo y queremos llegar al este
00:28:20
Pues nos vamos para atrás, para atrás
00:28:22
Y luego entramos en app, controllers
00:28:24
En el documento, tal
00:28:26
Pero quería trabajar con esto
00:28:27
Con rutas
00:28:30
Relativas, creo que se dice
00:28:32
Y
00:28:34
Eso fue para mí lo más complejo
00:28:36
De largo
00:28:39
Claro, es que lo has hecho
00:28:40
De cero, esto si hubieses
00:28:42
Utilizado algún framework tipo
00:28:44
Porque en React es un poco
00:28:46
Más complejo, pero si utilizas Next.js
00:28:49
Que no sé si lo conoces
00:28:51
Next es como...
00:28:52
No te oigo, no te oigo
00:28:56
¿No me oyes?
00:28:58
No sé si estabas hablando de antes, ahora
00:29:00
Sí, no sé desde cuándo no te oigo
00:29:01
Pero no te oía desde hace un ratito
00:29:04
No pasa nada porque has estado hablando tú
00:29:06
Casi todo el rato, solo ahora te estaba
00:29:08
Contestando un poco
00:29:10
Que bueno, que es un poco porque no has usado
00:29:11
Ningún framework, sabes que has tenido que hacer
00:29:14
Todo el sistema de enrutamiento tú
00:29:16
Para lo más difícil
00:29:18
Pero vamos
00:29:21
Claro, pero bueno, ¿te ha permitido aprender?
00:29:22
Sí, sí, sí.
00:29:25
Te iba a recordar, no sé si conoces Next.js, que es también un framework tipo React.
00:29:26
Está hecho sobre React.
00:29:30
Y esto, el sistema de rutas, lo único que hacen es meterlas dentro de un directorio porque están hechos como por convención.
00:29:33
Entonces, tú metes dentro de Pages tus diferentes páginas a las que vas a navegar y él ya entiende cuando pones esa ruta que tiene que ir a esa página, ¿sabes? Es como que lo tiene muy simplificado.
00:29:41
Está relacionado con NPM, ¿no? Y ese tipo de tecnologías, creo. En plan, lo típico de que tienes que poner en la consola NPM install y NPM run dev y este tipo de cosas. Me suena mucho que está relacionado con eso.
00:29:55
Igual que tienes Create React App
00:30:09
Que es como la
00:30:13
La pasta que te crea una base
00:30:14
Tienes Create Next App o algo así
00:30:15
Ah, pues
00:30:18
Esa es una cosa genial, la verdad
00:30:19
Te lo hace, si te genera un proyecto de cero
00:30:21
Así
00:30:24
Básico para que veas un poco como está hecho y tal
00:30:24
Y bueno, si
00:30:27
Si te quieres poner con ello
00:30:28
Yo la verdad que sí que trabajo con React
00:30:31
Yo en empresas
00:30:33
Y bueno, en recursos y tal
00:30:35
y es verdad que la parte de las rutas
00:30:37
la parte de las llamadas
00:30:39
asíncronas y todo eso, el middleware
00:30:41
que llaman y tal, todo eso es un
00:30:43
súper farragoso
00:30:45
si te puedes evitar eso
00:30:46
que yo creo que Next.js como que lo simplifica
00:30:49
es verdad que una vez
00:30:52
esto ya me funcionó, era muy fácil
00:30:57
porque si por ejemplo quería crear una nueva ruta
00:30:59
o un nuevo endpoint, yo hacía así
00:31:01
añadía el nuevo con un nombre
00:31:03
distinto y ya está pero claro hasta que llegue a eso fue sí sí sí eso fue ahí tuve que consultar
00:31:05
a todos los lados así hacemos todos al final también funciona un poco de memoria pues una
00:31:18
última pregunta, luego te hago
00:31:29
un comentario sobre el proyecto
00:31:31
y acabamos. ¿Qué harías
00:31:33
diferente para un siguiente proyecto?
00:31:35
¿Qué parte
00:31:39
mejor harías en cuanto a tu proceso
00:31:39
de ejecutar el proyecto?
00:31:41
En ese sentido,
00:31:46
además de tener más conocimientos,
00:31:47
aprender frameworks y tal, por ejemplo, esto como que me acabas
00:31:49
de comentar,
00:31:51
a lo mejor pensar más en una
00:31:53
idea guapa, novedosa,
00:31:55
pero es verdad que como yo ya
00:31:57
tenía experiencia
00:31:59
como que tenía
00:32:01
un poco claro los pasos que quería seguir
00:32:04
en ese sentido
00:32:06
primero creabas la base de datos
00:32:07
creabas el repositorio en github
00:32:09
te lo clonas aquí en github desktop
00:32:11
y luego
00:32:14
pues digo vale, mi primera parte
00:32:16
del proyecto por así decirlo
00:32:17
es que funcione
00:32:20
al principio hacía las pruebas en el propio html
00:32:21
con el javascript ahí metido en el propio documento
00:32:23
html hasta que me funcionaba
00:32:26
Y luego una vez ves que es viable, pues ya como que lo empiezas a estructurar bien. Y luego, pues aquí, por ejemplo, desde el principio como que cada commit, en ese sentido que hago, bueno, al principio son un poco genéricos, pero luego es home creado, login creado, se pueden aceptar vídeos, tal.
00:32:27
O sea, en ese sentido, como que me lo he estructurado bien y si lo volviese a empezar, pues no tengo claro qué contestarte en ese sentido. O sea, porque he seguido un poco y se ha cumplido un poco como el procedimiento que más o menos tenía pensado.
00:32:45
Está bien, está bien. Pues que lo has hecho bien a la primera.
00:33:03
Claro, no es como que sea inmejorable, pero no sabría qué mejorar porque al final lo que he hecho es un poco lo que sé, aunque también he improvisado mucho sobre la marcha, obviamente. Pero sí, a lo mejor, no sé, desde el día uno hacer esto y hasta que no saliese no ponerme con otras cosas, por así decirlo. A lo mejor eso sería yo creo que la mejora principal.
00:33:07
¿Usas algún sistema de
00:33:32
gestión de proyectos
00:33:34
tipo Trello
00:33:37
tipo, no sé
00:33:39
No
00:33:41
Lo que conozco es Notion
00:33:42
es lo que te refieres
00:33:45
Sí, sí, también
00:33:47
Claro, lo único que es de pago
00:33:47
No, pero Notion es gratis
00:33:50
Es que te escucho mencionarlo
00:33:53
Yo Notion lo uso constantemente
00:33:55
para, aquí en el centro
00:33:57
Bueno, de hecho lo estoy usando
00:33:59
para compartir prácticas a los alumnos
00:34:01
me guardo
00:34:02
todo lo que genero a través de
00:34:05
IA, no sé, tengo como una
00:34:07
base de datos ahí
00:34:09
es como yo llevo mis clases
00:34:10
entonces, claro, Notion tiene plantillas
00:34:13
que te pueden ayudar mucho
00:34:15
a gestionar un proyecto
00:34:17
o sea, en plan, pues
00:34:19
generas tareas, cuando las completas las pasas
00:34:20
a otra lista o tal
00:34:23
Claro, eso es lo que yo conozco en Notion
00:34:25
creo una tarea que se llama, por ejemplo, crear login
00:34:27
asigno
00:34:29
a lo mejor tiempos si quiero, documentación
00:34:31
comentarios y una vez está
00:34:34
terminada, yo sé que con Notion por ejemplo
00:34:35
sobre todo a nivel
00:34:37
cuando lo haces pull request y tal
00:34:39
si lo tienes vinculado
00:34:41
como que incluso se vincula el propio
00:34:43
pull request ahí de GitHub
00:34:45
y eso es muy guay
00:34:47
la verdad, no sé cómo lo harán pero es muy guay
00:34:50
y eso es lo que yo
00:34:52
conozco y yo pensaba que era de pago
00:34:54
al final el control
00:34:56
que he llevado es un poco pues
00:34:58
el planning que yo tenía, las notas
00:34:59
que yo me tomaba a mí en mis bloques de notas.
00:35:01
O sea,
00:35:05
punto txt, me
00:35:05
funcionó bastante eso.
00:35:07
Y es un poco
00:35:09
la ruta que he llevado.
00:35:10
O bueno, yo, por ejemplo, también, lo que he utilizado
00:35:13
mucho, a ver si por aquí tienes algún
00:35:15
ejemplo. Yo me pongo todo mucho
00:35:17
en los códigos.
00:35:19
No sé si ahora mismo vamos a encontrar algún ejemplo.
00:35:21
Pero
00:35:24
yo lo que pongo mucho es
00:35:24
todo en todos los lados. Sobre todo
00:35:27
en los controllers
00:35:29
bueno, no sé si ahora mismo voy a encontrar alguno
00:35:30
pero bueno, me pongo todo
00:35:36
y es como
00:35:38
lo que utilizo para acordarme al día siguiente de
00:35:39
hey, continúo por aquí
00:35:42
los buscas y ya sabes
00:35:44
claro, hago control F
00:35:46
de todo y
00:35:48
bueno, justo
00:35:51
no encuentro ninguno
00:35:53
pero sí, al final son como
00:35:54
notas de mí para mí
00:35:58
Pues sí
00:35:59
Muy buena forma de trabajar
00:36:04
Nada, pues tengo unos comentarios
00:36:05
Así que yo he visto
00:36:07
Y ya acabamos
00:36:09
A ver, lo primero
00:36:12
Nada, muy bien
00:36:14
En usar tecnologías
00:36:15
Con las que ya estabas
00:36:17
Aquí tengo los tu-do, perdón
00:36:18
Crear, log y tal, gestionar
00:36:20
Sí, sí
00:36:23
Claro, luego me lo cargo y ya está
00:36:24
Nada, eso
00:36:28
que el tema de trabajar tecnologías
00:36:29
con la que ya conocías, que está muy bien
00:36:31
sobre todo en un proyecto que tiene
00:36:33
una fecha de entrega muy concreta
00:36:35
que te puede llevar
00:36:37
mucho tiempo el meterte directamente a lo mejor
00:36:39
con framework tipo React
00:36:41
y eso, y al final has logrado
00:36:43
implementarlo perfectamente
00:36:45
y no te ha hecho falta
00:36:48
nada más, muy bien
00:36:48
la presentación, como has puesto
00:36:51
las cosas muy limpio
00:36:53
todo, la generación dinámica
00:36:55
de los vídeos está muy bien pensado también
00:36:57
has hecho hasta un logo que está muy bien
00:36:59
y nada
00:37:04
el uso que has hecho de iconos
00:37:06
la interfaz de usuario y todo eso
00:37:08
también está genial
00:37:10
en cuanto a mejoras que yo
00:37:11
he visto, a lo mejor
00:37:14
usar Node.js en vez de PHP
00:37:16
por ejemplo
00:37:18
de esa forma mantendrías todo el stack
00:37:19
en Javascript
00:37:22
también tiene
00:37:23
mejor rendimiento y
00:37:25
Se integra mejor con frameworks
00:37:27
Tipo Next o React
00:37:30
¿Ese cuál es?
00:37:32
Node.js
00:37:35
¿Cómo lo llamas?
00:37:36
Node.js
00:37:38
Eso es
00:37:38
Claro, pero
00:37:41
Si esto alguna vez lo he instalado, pero
00:37:43
Sería un poco el mismo problema
00:37:45
Que a lo mejor con React y con Laravel
00:37:48
Un poco
00:37:50
Ahora yo me he instalado esto y no sé qué me aporta
00:37:51
Y a lo mejor solo el
00:37:54
O sea, no sé si tengo que configurar algo
00:37:56
Ya, hombre, claro
00:37:58
No sé qué magia tiene dentro, ¿sabes? Por así decirlo
00:37:59
Es otra tecnología que tendrías que aprender aparte
00:38:01
Pero es Javascript al final, o sea, es como
00:38:04
Gestionar tu backend a través de Javascript
00:38:06
Ah, pues
00:38:09
Es un poco muy
00:38:11
Eficiente
00:38:12
No sé, es como más moderno, ¿vale?
00:38:13
Sí
00:38:18
Enqueja bastante, ¿no?
00:38:19
Con un poco lo que he hecho en general, yo creo
00:38:21
Encaja muy bien, sí
00:38:24
Y bueno, y luego
00:38:25
en el caso de que migrases el front a React
00:38:26
y tal, pues se integra mejor.
00:38:29
Ah, pues
00:38:31
esto sí que tomó nota.
00:38:32
Luego, bueno, el tema que ya
00:38:35
te comenté creo por correo, el tema del
00:38:37
que no acabas de elegir un nicho, aunque no es
00:38:38
no es una cosa
00:38:41
o sea, porque claro
00:38:42
tú vas a un portal genérico de vídeo
00:38:45
¿no? Estarías compitiendo a lo mejor
00:38:47
con YouTube directamente
00:38:49
en vez de a lo mejor centrarte en
00:38:50
planes de ocio o en planes
00:38:53
Claro, o sea, al principio
00:38:55
sí que quería como enfocarlo ahí
00:38:57
y de hecho
00:38:58
bueno, había de ir, pues todas las categorías
00:39:00
pues van un poco por ahí, ¿sabes?
00:39:02
Pero sí que es verdad que lo he dejado como más abierto
00:39:04
lo he dejado más abierto también
00:39:06
para demostrar que realmente
00:39:08
se puede expandir o que
00:39:10
si llega mañana, por ejemplo
00:39:12
me lo invento, y una empresa quiere comprar
00:39:14
esto
00:39:16
pues de un día para otro se puede convertir
00:39:17
en vez de en ocio en
00:39:20
yo qué sé, videojuegos, me lo invento
00:39:22
en ese sentido por eso lo he dejado un poco
00:39:24
o sea, sí, pero
00:39:26
esa es como mi excusa para haberlo dejado
00:39:29
así, genérico
00:39:31
claro, es que todo depende de cómo lo enfoques
00:39:33
o sea, en realidad, porque tú
00:39:35
claro, podrías usar este proyecto como base
00:39:37
para otros, como dices
00:39:39
o podrías
00:39:40
crearlo como un producto tuyo ya directamente
00:39:42
pero claro, si es un producto ya
00:39:45
y no le das un nicho
00:39:46
muy concreto, a lo mejor vas a tener más problemas
00:39:49
para luego, bueno, sacar
00:39:51
claro, en plan, compite con otro youtuber
00:39:52
pero bueno
00:39:54
sí que es verdad que por ejemplo
00:39:56
una idea
00:39:59
que se me ocurrió como por la que puede
00:40:01
funcionar esto es
00:40:03
por ejemplo un creador de contenido que tenga
00:40:05
sus vídeos yendo a
00:40:07
comer a restaurantes
00:40:09
a lo mejor en TikTok o Youtube o donde sea
00:40:10
pues
00:40:13
yo que sé, tiene 10 visitas
00:40:15
te metes aquí
00:40:16
te autopromocionas un poquito
00:40:18
y al final pues yo que sé
00:40:20
como que nos retroalimentamos el uno
00:40:23
al otro, ¿sabes? Es un poco también como
00:40:25
pienso que se podría incentivar
00:40:27
este tipo de páginas web.
00:40:29
Sí, luego como idea
00:40:31
yo no sé si
00:40:33
convertirlo en una app móvil
00:40:34
por ejemplo y que la gente
00:40:37
pueda ir a restaurantes a hacer vídeos
00:40:39
y recibir descuentos
00:40:40
a lo mejor del restaurante porque al final y tal.
00:40:43
Ah, pues sí, eso sería una locura. Sí, como cuando
00:40:46
en un restaurante te piden que le pongas una reseña.
00:40:48
Eso es. Claro.
00:40:50
Sí, sí, eso sería una locura
00:40:51
Convertirlo en app móvil
00:40:54
Claro, porque tú ahora mismo esto
00:40:56
Bueno, si estuviese publicado en internet esto
00:40:59
Porque está solo en local
00:41:01
Tú esto si lo publicas en internet
00:41:02
Realmente lo puedes abrir desde internet
00:41:04
Y además es responsivitar
00:41:07
Claro, pero no es una aplicación
00:41:08
Sería desde el móvil pero en web
00:41:09
Pero sí, esta página pega mucho
00:41:12
Dentro de la propia aplicación
00:41:15
Que te permitiese grabar ese vídeo
00:41:17
Y ya subirlo a la plataforma
00:41:18
ya eso sería
00:41:20
claro, el problema que tú
00:41:22
que la estás creando en YouTube
00:41:24
entonces aquí es donde
00:41:25
tendrías que subir el vídeo al final es a YouTube
00:41:28
y luego...
00:41:30
Claro, porque esta aplicación no...
00:41:31
bueno, de hecho es una de las políticas que tiene
00:41:33
YouTube que no
00:41:35
permite que yo guarde este vídeo
00:41:36
y haga uso de él en otra página
00:41:39
sino que
00:41:41
es eso, es una de las normas que tiene
00:41:43
YouTube, que cuando me comentaste
00:41:46
lo de que tenía que comentar los aspectos
00:41:48
legales, pues dije, claro, es que tiene todo el sentido porque encima
00:41:49
estoy usando contenido de terceros.
00:41:52
Una de las normas que tienes es eso,
00:41:54
que no puedes descargarte el vídeo y tal,
00:41:55
y que tienes que usar su reproductor. Así que yo
00:41:57
por eso con lo que trabajo es solo con URLs.
00:41:59
Yo lo que almaceno son URLs
00:42:02
como la que he cogido aquí. Es verdad
00:42:03
que del modo que tú dices,
00:42:05
tendrían que almacenarse en algún sitio.
00:42:07
O que se suban a YouTube y ya se muestran aquí.
00:42:09
Serían las alternativas.
00:42:11
Sería más complejo, pero bueno.
00:42:13
Simplemente como idea, ¿no?
00:42:15
Sí, sí, estaría genial eso.
00:42:16
Sí, sí, sí.
00:42:19
Vale, pues nada, por mi parte, nada más.
00:42:20
La nota creo que es la gana a finales de junio, ¿vale?
00:42:25
¿A finales de junio?
00:42:29
A finales de junio, sí.
00:42:30
La comenté la...
00:42:31
Jueves, no queda ni nada.
00:42:32
Sí, hay que esperar un poquito.
00:42:35
Y nada más, nada, nada, felicitarte y que sigas así.
00:42:38
No sé qué planes tienes ahora, después de...
00:42:43
Me imagino que ya acabas, ¿no?
00:42:45
El ciclo y...
00:42:46
Bueno, de momento aprobar los exámenes
00:42:47
de dentro más.
00:42:49
Esa es la prioridad.
00:42:51
Y luego, pues bueno, seguir trabajando
00:42:54
y aumentar el currículum
00:42:56
e irme a buscar sitios donde me paguen más.
00:42:58
Ese es el plan.
00:43:00
Ese es el plan. Buen plan.
00:43:02
Creo que me he quedado
00:43:05
un montón de cosas sin comentar, pero
00:43:06
bueno, al final
00:43:08
sí que te he podido enseñar un poco todo lo que quería,
00:43:10
lo que tenía en mente, o si no, también está en la memoria
00:43:12
al final. Voy a ir parando la grabación,
00:43:14
Ah, vale, sí.
00:43:16
- Etiquetas:
- Desarrollo de Aplicaciones Web
- Subido por:
- Víctor Borja M.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 1
- Fecha:
- 7 de mayo de 2025 - 19:25
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 43′ 19″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 392.74 MBytes