Saltar navegación

DEFENSA_ALEC_DAW - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 22 de enero de 2026 por Francisco J. G.

1 visualizaciones

DEFENSA_ALEC_DAW

Descargar la transcripción

Bueno, perfecto. Bien, buenos días. Hoy día 21 de enero a las 10 y 53 estamos convocados a través de la Jefatura de Departamento para la defensa del módulo profesional del proyecto de ciclo formativo de grado superior de desarrollo de aplicaciones web. 00:00:07
Y informo de que esta defensa está siendo grabada y que dicha grabación se utilizará 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:25
En el aula virtual de proyectos habéis sido informados de los criterios y de la rúbrica de calificación. 00:00:40
El orden de la presentación del proyecto es el siguiente. Tendrás 15 minutos máximo para la defensa del proyecto. De ahí podrás dejar unos minutos si quieres enseñarme lo que has realizado. 00:00:46
y luego habrá 15 minutos máximo para las preguntas por parte del tribunal. 00:00:55
Dicho esto, tu tiempo de exposición comienza a partir de este momento. Adelante y mucha suerte. 00:01:00
Vale, bueno, pues nada, el proyecto consiste en una aplicación, una aplicación web de una tienda de ciclismo. 00:01:07
Entonces, bueno, pues básicamente vamos a empezar un poquito con el contenido. 00:01:16
el nombre de la tienda es 00:01:20
Vicio Bike Store 00:01:21
y bueno, se contiene más o menos 00:01:22
lo que se ha ido haciendo hasta llegar al 00:01:25
paso que hemos ido siguiendo 00:01:27
para llegar a 00:01:29
al resultado final 00:01:30
entonces bueno, tenemos la parte de análisis 00:01:33
planificación, diseño, programación, pruebas 00:01:35
implementación 00:01:37
presupuesto, problemas encontrados y mejoras 00:01:39
entonces pasamos a la parte 00:01:42
de análisis 00:01:43
el proyecto nace de un requerimiento 00:01:44
de cliente que necesita 00:01:47
darse mayor visibilidad, llegar a un mayor número de clientes y, por tanto, tener más ventas. 00:01:48
Entonces, la opción de crear necesita una página web para poder llegar a más clientes. 00:01:54
Entonces, bueno, después tras recopilar las necesidades o los requisitos y tal que el cliente, 00:02:03
podemos dividirlos en funcionales, no funcionales, de hardware y de software. 00:02:09
Los funcionales, por el trabajo que se hace con el cliente, necesitamos un registro autónomo 00:02:13
de nuevos usuarios, que estos usuarios puedan iniciar sesión y además validar sus credenciales, 00:02:21
que cualquier usuario pueda consultar el catálogo de productos por categorías y subcategorías, 00:02:28
con esto también lleva a que hay que visualizar las categorías, las características y tallas 00:02:35
de cada producto. Estos productos se deben también de poder añadir, eliminar y actualizar 00:02:39
en una cesta de la compra para luego poder ser tramitada posteriormente. Y además, bueno, 00:02:44
cuando un usuario esté registrado y logueado, pues bueno, pues además podrá consultar 00:02:50
los pedidos que ha tenido, que ha realizado durante tiempo. 00:02:54
Pasamos a los no funcionales. Bueno, pues en cuanto a usabilidad, pues bueno, habrá 00:02:59
que diseñar una interfaz que sea, bueno, pues aplicable, que sea fácil de navegar 00:03:03
por el usuario que se sienta cómodo. Es fácil de entender que pueda llegar a los objetivos que tenga 00:03:06
tanto de loguearse, de acceder a los productos, incluso a mover más adelante preferencias y tal 00:03:15
de su usuario. Para ello hemos creado unas secciones, una que es para login del usuario 00:03:25
y eso se identifica con un icono característico que es una personita, que cuadra tanto en tu menú 00:03:32
desplegable como se verá después. Pinzar sesión o registrarse. Al lado pues tendremos una cesta de 00:03:39
la compra y ahí se irán acumulando los productos para luego poder ser tramitados al final de todo, 00:03:46
una vez que el usuario esté también logueado. Y luego para navegar a los productos pues se ha 00:03:51
quedado un menú en la parte superior y bueno irás navegando por las distintas categorías y se irán 00:03:57
mostrando las subcategorías en las que podrás ir entrando para llegar a un producto de una 00:04:03
categoría concreta y bueno básicamente esto se diseñará de una forma eficiente y bueno y aparte 00:04:08
también de que sea también eficiente que sea fácil para el usuario pues también que la carga sea 00:04:15
rápida y para ello por ejemplo de imágenes tenemos un poco poco espacio en cuanto a 00:04:21
seguridad bueno pues aquí vamos a hacer uso de crecer para el usuario 00:04:30
en la página web y bueno y aparte también se va a encriptar esta contraseña en base 00:04:36
de datos para que para que no quede a la vista mantenimiento bueno suyo sería también tener 00:04:44
esto sería más bien un desarrollo 00:04:50
paralelo, que no está incluido en este 00:04:53
y sería bueno, porque se pudieran 00:04:55
mantener los productos, los precios 00:04:57
de las imágenes, la gestión de los productos 00:04:59
pero claro, ya te digo 00:05:01
esto tendría que ser una 00:05:03
web paralela, más bien para 00:05:04
empleados sería 00:05:07
en cuanto al rendimiento, bueno 00:05:08
lo que comentaba antes, que las imágenes 00:05:11
pues serán de poco peso 00:05:13
y así podremos hacer una carga rápida 00:05:15
de la web y que 00:05:17
el usuario no se frustre tampoco. En cuanto al hardware, tenemos la parte del desarrollo 00:05:18
y la parte del servidor. En cuanto al desarrollo, aquí vamos a utilizar como mínimo un PC 00:05:24
o un portátil con 13 GB de memoria y un Intel, al menos un i5 o similar, un superior, y con 00:05:31
250 GB de almacenamiento para el servidor. Hemos utilizado una Raspberry Pi modelo 4B, 00:05:39
4 gigas de RAM y 64 de almacenamiento. En cuanto a software, para el desarrollo vamos a utilizar 00:05:44
MySQL Workbench, que utilizaremos para el diseño y el modelado de la base de datos. 00:05:52
Es un estudio de code para poder desarrollar la parte de control front como el back, HP, HTML, 00:05:58
Javascript y todo. También tendremos un suite ofimático. También hemos utilizado Git para poder 00:06:05
ser versionado según vayamos avanzando en el proyecto y aparte también tenemos un backup del mismo 00:06:12
montaremos un entorno WMP 00:06:20
ya que vamos a utilizar Windows entonces necesitamos un web y luego las aplicaciones 00:06:23
Sputti y Filezilla para poder manejar luego el servidor de producción digamos la Raspberry 00:06:30
para poder manejarla sin tener que estar conectados a IEA físicamente digamos y Filezilla 00:06:35
para hacer la transferencia de lo que es la página web a esta Raspberry. 00:06:41
Luego en el servidor, se ha optado por un servidor basado en Linux y correrá un servidor 00:06:45
Apache con variada DB como base de datos y como lenguaje de servidor PHP. Además también 00:06:51
utilizaremos Composer para poder hacer uso de plantillas para el tema de la vista de 00:06:58
las páginas. Tenemos también los casos de uso. Una vez 00:07:04
realizado un análisis, podemos extraer en este mono los casos de uso que se espera, 00:07:11
que tendremos en el sistema. Un usuario puede ser un nuevo cliente o puede ser incluso un cliente 00:07:18
registrado y luego dependiendo del tipo de cliente que sea, si es nuevo cliente obviamente 00:07:26
primero se tendrá que ir a su usuario para que se tenga que validar, si es un cliente registrado 00:07:34
pues tendría que estar en sesión, al mismo tiempo también 00:07:38
se tendría que validar. Luego lo que son 00:07:40
por ejemplo consultar productos 00:07:42
por categorías y tal, ver artículos 00:07:44
por ejemplo, eso es común 00:07:46
poder hacerlo ambos tipos de usuario 00:07:48
pero lo que viene siendo ya 00:07:50
por ejemplo añadir productos a 00:07:52
a la cesta o no, lo que viene siendo 00:07:54
más bien finalizar la compra, consultar 00:07:56
pedidos, eso obviamente sería algo exclusivo 00:07:58
del cliente registrado. Entonces bueno 00:08:00
al otro lado está siempre 00:08:02
la aplicación vamos, que es la que irá dando 00:08:04
la respuesta según 00:08:06
el tipo de cliente según lo que vaya 00:08:07
necesitando el cliente, lo que vaya 00:08:10
pidiendo el cliente a la web 00:08:12
la parte de la planificación 00:08:14
hemos utilizado un modelo 00:08:18
Kanban 00:08:20
en el que hemos utilizado una aplicación de Jira 00:08:21
esto nos permite, es flexible 00:08:23
ya que hemos podido 00:08:27
hemos hecho una planificación 00:08:27
con las distintas partes 00:08:30
del desarrollo 00:08:32
hemos dividido 00:08:34
cuánto desarrollo de categorías 00:08:35
bueno, pantalla de inicio 00:08:38
cuánto pantalla, si el desarrollo de la parte 00:08:39
PHP de cada, que se vaya necesitando 00:08:42
entonces bueno, según hemos ido avanzando 00:08:44
nos permite un poquito de flexibilidad 00:08:46
porque según vamos avanzando, vamos a ir marcando las tareas 00:08:48
como si están en pruebas, en curso, o bueno 00:08:50
incluso si se hubiera que ir hacia atrás, pues bueno, también podríamos 00:08:52
llevárnosla 00:08:54
a un punto, digamos, de desarrollo 00:08:56
en el caso que hubiera que 00:08:58
volver a 00:09:01
probarlo 00:09:03
Luego también lo que tenemos es otra planificación pero más lineal, por las mismas partes, digamos que tenemos la parte de Jira, la parte de Kanban, pero bueno, esto sería algo más lineal. Esto sería la estimación que se tiene en el tiempo, lo que duraría cada desarrollo de cada parte del proyecto. 00:09:04
en cuanto al diseño 00:09:33
pues bueno, aquí estamos en la arquitectura del cliente 00:09:35
y servidor, el navegador web 00:09:38
y tal, y bueno 00:09:40
lo que vienen siendo estructuras de carpetas 00:09:41
para poder alojar 00:09:44
todos los fuentes 00:09:45
y lo que es la aplicación web 00:09:47
lo hemos dividido en 00:09:49
básicamente en public y en 00:09:51
carpetas de fuentes, en public pues bueno 00:09:53
aquí tenemos todo lo que va a poder acceder a Apache 00:09:55
y que básicamente tenemos 00:09:57
en una parte de Ajax que nos envía 00:10:00
de enlace con las clases que tenemos 00:10:02
en deshacerse de router 00:10:04
en CSS tenemos las hojas 00:10:06
de estilos, en IMG 00:10:10
aquí básicamente tenemos imágenes 00:10:12
de los productos y tal 00:10:14
en JS tenemos el javascript 00:10:16
y luego con las distintas páginas que se divide 00:10:18
la web 00:10:20
en la que hay en fuentes 00:10:22
es una carpeta config donde tenemos algunos archivos 00:10:24
de configuración, en controles 00:10:26
los controladores que se encargarán básicamente 00:10:28
de acceder a los modelos 00:10:30
y orquestar el tema 00:10:32
ya las llamadas a la tinta y a la función entre los modelos 00:10:33
los modelos 00:10:36
aquí tenemos las clases que van a acceder 00:10:37
directamente a la base de datos 00:10:40
de la aplicación 00:10:41
en router, pues aquí lo que 00:10:44
tenemos es 00:10:46
unas clases con ciertas funciones 00:10:47
que va a llamar a los 00:10:50
controladores 00:10:52
va a servir de enlace 00:10:53
entre la parte de IaaS 00:10:56
con la parte de HP 00:10:58
y en BIOS, bueno, pues aquí 00:11:00
tenemos pues todas las todas las vistas que componen cada página de la web 00:11:02
hemos ido dividiendo componentes plantillas 00:11:09
que hacen falta pero bueno que son de marín de composer 00:11:13
el diseño de datos 00:11:21
Esto es lo que se ha diseñado, la tabla de usuario, tenemos una tabla principal que sería básicamente el usuario donde parte todo, parte de productos, luego producto, bueno, pues vemos que tenemos categorías, que además es una tabla recursiva, una categoría puede estar incluida, bueno, de hecho está dentro de otra. 00:11:23
el usuario 00:11:42
bueno, con sus pedidos, una vez que haya 00:11:46
hecho algún pedido, que previamente 00:11:48
debería haber entrado con la cesta 00:11:50
el inventario de los productos 00:11:52
el inventario final, bueno, se compone 00:11:54
de un producto y las tallas 00:11:56
que puede tener ese producto 00:11:58
cuando se va a añadir algo 00:12:01
a la cesta, pues bueno, básicamente se añade 00:12:02
directamente del inventario puesto que debería estar disponible 00:12:04
en una talla 00:12:06
una vez que, bueno, el cliente hubiera tramitado la compra 00:12:09
comprado, esta cesta pasaría a pedido, se generaría un nuevo identificador de pedido 00:12:12
y los productos se alojarían en pedido producto. 00:12:20
El diseño de las interfaces, esto básicamente sería una plantilla, básicamente ese componente 00:12:25
del menú principal, que lo vemos aquí arriba, el menú de categorías, un pie y luego el 00:12:35
principal que éste irá cambiando anteriormente tenemos un logo para el usuario que dependerá 00:12:40
de si está logrado o no pues otras y la cesta de productos 00:12:51
la navegación esta navegación en cuanto a los productos tenemos pues efectivamente una 00:12:59
categoría digamos superiores que serían de bicicletas, equipación, accesorios y nutrición. 00:13:05
Simplemente nos permitiría posicionarnos sobre ellas y se desplegarían las subcategorías que 00:13:09
hay dentro de cada categoría. En este caso está desplegado lo que es equipación y se 00:13:18
muestra con un subrayado inferior. ¿Contenido principal? Aquí esa parte central ya dependerá 00:13:22
de dónde estemos pues irá irá cambiando digamos el contenido que te mostrará 00:13:30
si vete acelerando un poquito si luego vas a enseñar la aplicación 00:13:36
más rápido 00:13:42
la página que está común a todos y luego tema de la navegación pues como decía antes 00:13:45
segundo de que se accede se mostrarán los productos de textil se mostrarán todas las 00:13:52
categorías, si se hace eso en una subcategoría pues se mostrarán solamente los productos de esa subcategoría, bueno, el producto dependiendo de lo que pulsemos pues se mostrarán una cantidad de unidades disponibles y tal, gestión de usuarios pues lo mismo, ese botoncillo dependiendo de si está registrado o no pues se mostrará una cosa u otra, si no está registrado pues se abrirá esta ventana, para hacer el login pues bueno, te darás tu usuario y se mostraría 00:13:58
tu nombre de usuario, tu nombre y las opciones que tendrías, las preferencias, te llevaría a una página de preferencias donde podrías cambiar tus datos personales, el fin de contacto, el nacimiento, los pedidos que has hecho durante el tiempo, que lo puedes hacer al detalle de los mismos, productos, 00:14:28
y esto ya sería el detalle 00:14:51
digamos, por la dirección, número y tal 00:14:55
y a ver que los productos 00:14:56
la cesta, pues nada, vas añadiendo productos a la cesta 00:14:57
a partir de, ya vas a ir solo 00:15:00
al producto 00:15:02
para realizar la compra, pues nada, botón de realizar la compra 00:15:03
pasarías por una serie de pasos después 00:15:06
datos personales, pues aquí confirmaría los productos 00:15:09
vas a los datos personales, si quieres borrar 00:15:10
alguno porque te hayas arrepentido 00:15:12
pues bueno, lo puedes eliminar 00:15:14
que no, pues continuas a datos personales, rellena el dato 00:15:16
finaliza la compra, se te pregunta 00:15:18
si quieres finalizarlo o no 00:15:20
la confirmación y bueno, te hemos traído un mensajillo 00:15:22
con el número de pedido y aparte 00:15:25
un enlace para poder ir directamente ya 00:15:27
al pedido que has realizado 00:15:28
en lenguaje de programación 00:15:30
para el lenguaje BAC 00:15:31
pues tenemos el PHP y luego para la parte de Chrome 00:15:34
tenemos el Javascript y el HTML 00:15:37
junto con CSS 00:15:38
todo eso programado utilizando 00:15:39
la herramienta de desarrollo Visual Studio Code 00:15:42
en cuanto a pruebas 00:15:44
vale, pues la prueba la podemos dividir en 00:15:46
unitarias e integradas 00:15:48
y las unitarias, pues bueno, pues se ha creado un script 00:15:50
para ir probando 00:15:53
cada modelo, cada función de cada modelo 00:15:55
y con los controladores, pues lo mismo 00:15:57
he ido probando un script para probar 00:15:59
cada función de cada controlador 00:16:03
en los programas integrados, bueno, pues aquí ya 00:16:05
ha sido una prueba, digamos, en conjunto 00:16:07
de la parte de abajo a la parte del front 00:16:09
para ver que todo va 00:16:11
va sincronizado, digamos 00:16:13
para implementarlo, bueno, pues 00:16:15
lo que comentaba en un principio 00:16:18
se ha hecho un RRP, hemos utilizado 00:16:20
un sistema operativo Ubuntu Server 00:16:22
en la versión 24.03 00:16:25
y bueno 00:16:27
esto realmente se ha hecho, bueno, esto ya está más extendido 00:16:29
en un anexo 00:16:31
con la aplicación Raspberry Pi 00:16:33
y mayor, y bueno, y luego en cuanto 00:16:35
al app software 00:16:37
que hemos tenido que instalar junto con Ubuntu 00:16:37
bueno, hemos tenido que instalar 00:16:42
aparte en el servidor un Apache 00:16:44
también hemos tenido que 00:16:45
instalar y configurar y hacer una 00:16:48
carga inicial de la base de datos MariaDB 00:16:50
luego, bueno, posteriormente 00:16:52
hemos tenido que hacer la instalación de la aplicación en el servidor 00:16:55
y esto, bueno, esto lo haremos 00:16:57
con FileZilla 00:16:59
hemos implementado también seguridad en el servidor 00:17:02
con SSL, con certificados 00:17:05
bueno, luego 00:17:07
como aquí decía antes, pues unas herramientas para poder hacer 00:17:08
al servidor en remoto 00:17:11
Compute y FileZilla, así que luego aparte 00:17:12
la instalación de Compuser también 00:17:14
a nivel de la aplicación 00:17:16
vale, vale 00:17:18
por supuesto, me resultaba 00:17:21
Por supuesto, el presupuesto inicial que hemos realizado de lo que costaría en un comienzo el proyecto, 00:17:22
tenemos lo que es el ordenador, un suelto afirmático, teclado, monitor, las herramientas de desarrollo, que son gratuitas, 00:17:30
el hardware, que sería el servidor, que sería la red de repeat, el sistema operativo, Ubuntu, 00:17:41
y bueno, luego si se quisiera 00:17:47
comprar un dominio, pues bueno, pues sería 00:17:48
por lo que he encontrado en esta página 00:17:50
pues 10,99 al año 00:17:53
el primer desembolso inicial sería de 00:17:54
1.500, 1.775 00:17:56
aproximadamente 00:17:59
problemas, pues los problemas que he encontrado 00:17:59
prácticamente han sido muchos 00:18:02
con el tema de las vistas, hasta que he conseguido 00:18:04
entender cómo funcionaban 00:18:07
pues he tenido 00:18:08
algunos problemas, pues bueno, como 00:18:11
básicamente el tema de crear 00:18:12
pistas dentro de vistas, que esto era por el tema de 00:18:14
crear componentes, entonces va a tenerlo todo un poquito 00:18:16
así diferenciado y cada cosa 00:18:19
por su sitio 00:18:20
pues vemos que costó un poquito 00:18:21
digamos como implementar 00:18:24
plantillas dentro de plantillas 00:18:25
esto fue un problema 00:18:29
que me llevó tiempo 00:18:31
entender, luego una vez claro 00:18:32
ese problema de haber 00:18:34
solucionado, me salió otro 00:18:37
que era el tema de compartir datos 00:18:39
entre vistas, porque solamente conseguía 00:18:41
llegar una vista, pero esa vista no 00:18:43
digamos, no transfería esa información a la siguiente 00:18:44
vista. 00:18:46
Bueno, pues tras investigar 00:18:48
al final encontré en la página de Arable que 00:18:50
se hacía con esta función, con share, y entonces 00:18:52
con esto puedes compartir, puedes llamar a la función share todas las veces 00:18:54
que quieras y compartir así 00:18:56
toda la información que necesites y pasa de una vista 00:18:58
a otra. 00:19:00
Esto luego aparte también metió 00:19:02
otro error y era que, bueno, resulta que 00:19:04
no se puede compartir estructuras de 00:19:06
datos. Entonces había 00:19:08
que mandarlo, digamos, como texto 00:19:10
plano. Entonces, bueno, te conté eso en 00:19:12
code pero decía que no podía tampoco podía mandar objetos así que al final la opción fue puede ser 00:19:14
pues con serializarlos y así bueno se mandaba como un churrillo de caracteres y ya una vez que llega 00:19:19
a la vista se deserializan y ya se puede tratar como si fuera un array normal y corriente en php 00:19:26
vale este fue otro problema que me encontré también que era que bueno el tema de la descripción de los 00:19:35
productos que luego estoy guardando en un campo de texto que básicamente guarda digamos lo que sería 00:19:42
el texto con un formato html con los retornos de carro o los retornos de carro tipo de carro como 00:19:48
br incluso las tablas con table idad lo que ocurre es que para poder hacer que no te pusiera que no 00:19:54
te lo entrecomillara blade pues tienes que utilizar tienes que poner digamos ese campo 00:20:01
entre las miraciones de esa forma digamos que no te lo entrecomillaba y directamente lo ponía 00:20:07
en pantalla te lo añadía al código html como si fuera código html entrecomillarlo 00:20:12
luego pues el login del usuario bueno login del usuario desplegable vale aquí otro problema que 00:20:20
tuve por lo que utilicé ajax y tal era bueno que claro si llamabas a seguridad del formulario pues 00:20:25
claro, obviamente se recargará la página. Para no recargar esa página he utilizado Ajax para poder 00:20:32
hacer el tema de la validación de los datos de Logi. Si no son correctos, pues mostrar un 00:20:39
mensajito sin que se recargue la página. Porque si no, en este caso lo que me ocurría es que desaparecía 00:20:45
lo que es la ventanita. Pues va a ser un desplegable, pues desaparece, se vuelve a cargar, entonces el usuario 00:20:49
realmente no iba a saber qué había ocurrido, a menos que volviera a desplegarlo. 00:20:54
Otro caso 00:20:59
que me encontré 00:21:02
que lo solucioné 00:21:03
con el tema 00:21:04
con atributos data 00:21:05
data guión 00:21:06
y era que claro 00:21:06
que a mí en formularios 00:21:07
pues me ocurrió 00:21:09
básicamente 00:21:10
el tema de los productos 00:21:10
cuando vas a añadirlos 00:21:12
a la cesta 00:21:13
tienes que guardar 00:21:13
digamos el interfaz 00:21:16
del producto 00:21:16
en algún sitio 00:21:17
entonces una opción 00:21:17
hubiera sido 00:21:18
utilizar 00:21:19
utilizar campos 00:21:20
en Haydn 00:21:23
pero claro 00:21:24
ya serían 00:21:25
ya utilizar muchos campos 00:21:25
entonces al final 00:21:27
digamos que 00:21:29
buscando por la web y que había una opción que era que podías añadir atributos data-guión y luego 00:21:29
me dejaba escribir, podías acceder a ellos. Los he utilizado para poder, digamos, tener toda la 00:21:33
información en un producto, digamos, y así tener, pues, tanto las tallas como, vamos, como todo, 00:21:39
todo en una etiqueta. Y así luego poder enviar estos datos, pues, por red o por post. En cuanto 00:21:48
mejoras, pues vale, aquí 00:21:59
no ha dado tiempo, pero bueno 00:22:01
hubiera gustado implementar un buscador 00:22:03
y entonces poder buscar por marca, por ejemplo 00:22:05
o buscar 00:22:07
no sé, a poner un futuro sería buscar por 00:22:08
colores quizás 00:22:11
o por un nombre en concreto de un producto 00:22:12
entonces así irías más rápido ahí 00:22:15
y también haber implementado una 00:22:17
paginación, porque claro 00:22:19
a veces, bueno, en el proyecto pues hay 00:22:21
pocos productos, entonces 00:22:23
se mostrarían poquitos, pero claro, si 00:22:24
esto crece mucho 00:22:27
sea lo suyo 00:22:29
pues entonces mostrar todos los productos 00:22:30
de golpe pues cargaría 00:22:33
sería de tiempo 00:22:36
en cuanto al usuario pues sería 00:22:37
serían unos tiempos de espera muy largos 00:22:41
y al final 00:22:43
empobrece la usabilidad de la página 00:22:45
y la experiencia del usuario además 00:22:47
y bueno, creo que 00:22:51
con esto ya 00:22:53
sería finalizada 00:22:54
Si quieres muéstrame 00:22:56
Sí, en la web funciona. 00:22:59
Vale, a ver, por aquí. 00:23:02
Vale. 00:23:08
Bueno. 00:23:10
O sea, la página de inicio. 00:23:12
En principio no estamos registrados. 00:23:13
No estamos registrados. 00:23:14
Pero bueno, tú puedes hacer igualmente 00:23:16
el producto que hubiera. 00:23:18
Si estuviéramos registrados, 00:23:21
pues bueno. 00:23:23
A ver, algo personal. 00:23:24
Bueno, esto sería 00:23:37
el ejemplo de cuando das unas 00:23:38
credenciales erróneas. 00:23:40
si tenemos allá el mensajito 00:23:41
ahora ya sí, correctamente 00:23:44
ya estaremos registrados y tendríamos 00:23:47
las opciones de preferencia pedidos en la sesión 00:23:49
bueno 00:23:51
como vemos aquí en un principio 00:23:52
hemos accedido a la categoría 00:23:54
de bicicletas que es una categoría 00:23:57
principal y se nos muestra todo 00:23:59
dentro de aquí tenemos 00:24:01
por ejemplo bicicletas que son de doble suspensión 00:24:03
que serían estas primeras y luego las rígidas 00:24:05
entonces bueno, si fuéramos 00:24:07
directamente a las rígidas 00:24:09
pues solamente se muestran en las dirigidas 00:24:10
también aquí en la amiga 00:24:12
pues nos permite verlo 00:24:14
en donde nos encontramos 00:24:16
si queremos incluso ir hacia atrás pues podemos ir directamente 00:24:19
a montaña y 00:24:21
estaríamos en la montaña 00:24:22
entonces, a ver 00:24:23
si quisiéramos añadir un producto 00:24:28
en el momento en que tenemos este disponible 00:24:30
marcaríamos la talla 00:24:34
luego aparte se nos muestran las unidades disponibles 00:24:35
si quisiéramos añadir a la cesta 00:24:37
más de las que están disponibles no nos dejaría 00:24:39
y vamos a 00:24:41
a una que hay menos unidades 00:24:44
ya que ese auto 00:24:46
nos refresca, digamos 00:24:47
bueno, el que hemos elegido 00:24:49
bueno, tenemos las fotos 00:24:51
digamos 00:24:54
vamos a ver las fotos, pues bueno, se nos iría mostrando 00:24:55
luego, aquí abajo tenemos 00:24:58
bueno, detalles, características 00:25:02
vale, esta es la parte que me dio problemas 00:25:03
con el tema de la excepción 00:25:05
de las vistas 00:25:08
porque me lo pegaba tal cual y entonces bueno 00:25:10
me lo pegaba entrecomillado, entonces claro 00:25:12
nos hemos tomado por ejemplo es un tipo es una tabla dejar mostraría lo que es las etiquetas 00:25:13
no pondría el table y en fin con el ejército la historia entonces fue el problema que me encontré 00:25:22
que se solucionó poniendo la admiración en el campo entonces lo que es añadir la cesta 00:25:28
la actualizaría, aquí tendríamos la talla, el producto, si quisiéramos quitarlo, bueno, 00:25:36
pues le daríamos al botoncillo correspondiente, si queremos añadirlo, lo añadimos, lo volveríamos 00:25:44
a tener, podemos añadir más productos, equipación, por ejemplo, aquí en textil 00:25:53
tenemos también, por ejemplo este, talla M tenemos disponibles, vamos a añadir dos, 00:25:59
los actualizaría 00:26:05
aquí tendríamos el nuevo producto que hemos añadido 00:26:08
la cantidad y la talla 00:26:11
entonces si quisiéramos realizar la compra 00:26:14
pues bueno, básicamente iríamos a 00:26:15
aquí tenemos el total 00:26:17
de los dos productos 00:26:21
si quisiéramos realizar la compra 00:26:23
pues lo tendríamos aquí 00:26:25
aquí tenemos el resumen de lo que vamos a 00:26:26
comprar, el producto, los dos productos 00:26:29
el total 00:26:31
podríamos también eliminar los productos si quisiéramos 00:26:32
aquí estamos estamos de acuerdo seguimos a datos personales aquí se actualizan los datos de las 00:26:35
preferencias que que tendríamos del usuario si quisiéramos cambiarlo bueno pues podemos 00:26:42
cambiarlo perfectamente un poco ahí el problema por ejemplo 00:26:49
se podrían cambiar 00:26:55
iríamos a finalizar la compra 00:27:04
nos pregunta si estamos de acuerdo 00:27:06
aquí tenemos 00:27:09
el número de pedido que se ha creado 00:27:12
podemos volver al inicio 00:27:15
o si no podemos ir directamente a la sección de pedidos 00:27:18
del usuario con el que estamos bloqueados 00:27:20
Entonces nos muestra en orden descendente los pedidos y aquí tenemos el pedido número 11, que es el último que hemos hecho, que son dos unidades, el maillot, la fecha, el día de hoy, el total de la compra, el pedido que se ha adoptado, que está de momento ya registrado, el producto, dos unidades, el precio por unidad de 199, el total sería este, la bici. 00:27:23
entonces bueno así que seamos ver los detalles que nos iríamos a mostrar los detalles digamos 00:27:48
personales correo el número de teléfono que hemos cambiado aquí también se puede ver que hemos 00:27:56
cambiado la localidad y el código postal y bueno y los productos también vamos a volver y bueno 00:28:03
aquí tenemos los productos que hemos hecho durante el tiempo y bueno esto por ejemplo fue entregado 00:28:11
no lo mostraría como tal, en el estado de pedido 00:28:18
registrado 00:28:21
también el usuario 00:28:21
podemos ir a las referencias 00:28:25
aquí lo tendríamos, de aquí es de donde nos lo ha recogido 00:28:26
cuando hemos ido a finalizar la compra 00:28:29
pues de aquí es donde nos ha recogido los datos 00:28:31
bueno, de aquí es lo mismo 00:28:32
si queremos cambiarlo, bueno, vamos a cambiarlo 00:28:35
preferencias guardadas correctamente 00:28:37
nos da mensajillo, de que ha ido bien 00:28:41
y bueno 00:28:42
bueno 00:28:44
Nos quedaría, bueno, pues la página de registro, que bueno, podemos poner aquí Antonio, lo registraríamos y automáticamente además se logra también. 00:28:47
Vale, pues muy bien. Pasamos ahora a las preguntas. Deja de compartir si quieres. 00:29:14
A ver, primero, ¿por qué has elegido Raspberry Pi para...? 00:29:27
Sí, pues esto ha sido porque hace un mes y medio más o menos me di cuenta de que tenía una Raspberry por casa y la he utilizado para otras cosas. 00:29:41
Pero sabía que se podía instalar en un servidor y como trabajo y tal me parecía interesante añadirlo. 00:29:54
No sé por qué no muestra ahora. 00:30:01
Como está con el móvil, no sé si es por eso. 00:30:16
A ver si compartís cámara. 00:30:18
Y luego, en cuanto a las pruebas unitarias, ¿qué sacaste en claro? 00:30:23
Me has dicho que has hecho un script, ¿no? 00:30:29
Sí, sí, sí, bueno, me he dado un esquiz para cada modelo, para cada controlador y bueno, claro, lo bueno es que se me está yendo, no sé por qué, ah, que está demasiado caliente me dicen, joder, vale, me está dando problemas 00:30:30
No te preocupes, nada, sí, sí, no te preocupes 00:30:44
00:30:48
Bueno, he sacado claro 00:30:50
que tenía que hacerlas porque sí que es verdad 00:30:54
que aunque al principio 00:30:55
lo he hecho todo un poco, digamos, más bien 00:30:57
todo en conjunto 00:30:59
es verdad que luego probándolo por separado 00:31:01
pues había errores que no tenía 00:31:04
que no había controlado 00:31:05
entonces digamos que me ha venido bien para poderlo 00:31:06
controlarlo mejor en las pruebas 00:31:09
integradas 00:31:12
me ha permitido 00:31:12
más que nada ver fugas 00:31:15
de errores que tenía 00:31:17
que no tenía que ir a otro lado 00:31:19
¿Y cómo adaptarías 00:31:21
este proyecto, por ejemplo, a una empresa más grande? 00:31:24
¿Cómo lo...? 00:31:26
¿Adaptarlo? Bueno, lo primero 00:31:28
obviamente una Raspberry no podría 00:31:30
alojar una página web 00:31:31
una página pequeña, esto ya habría que pasar a otro nivel 00:31:33
bueno, a ver, a una empresa más grande 00:31:38
a ver, esto 00:31:40
habría faltado, lo que decía también 00:31:40
uno de los puntos, habría faltado una parte 00:31:43
digamos de 00:31:46
de los empleados y que ellos pudieran manejar toda esta información pero añadir subir los 00:31:46
productos y claro subir inventario porque claro el tema de inventario pues tampoco está tampoco 00:31:54
está controlado yo creo que eso cogería de eso falta esa parte por el resto yo creo que más o 00:32:00
menos las funcionalidades están más o menos son las básicas y se debería de permitir una página 00:32:07
de compras. Bueno, claro, también le faltaría 00:32:15
el tema de, bueno, de que pongas una tarjeta de crédito 00:32:17
y puedas pagar con Paypal o tal, 00:32:19
pero bueno. O sea, sería 00:32:21
otro punto a añadir 00:32:23
en una situación real. Y luego, 00:32:25
¿el problema más importante de todos los temas 00:32:28
detallados? ¿Cuál es el que más guerra te dio? 00:32:31
El de las vistas, sobre todo el de las vistas 00:32:33
y, bueno, el de las vistas 00:32:35
y el tema de los atributos 00:32:36
de data. El de poder llevar toda la información 00:32:38
del producto cuando vas a añadirlo a la cesta. 00:32:40
Ese fue, eso fueron de los que más 00:32:43
tiempo me llevo. Vamos. 00:32:45
sobre todo el de las vistas, eso me frustró bastante 00:32:46
porque como lo estuve dividiendo 00:32:49
en componentes hasta que conseguí que encajaran 00:32:51
entre ellos 00:32:53
que no sabía cómo hacerlo en un principio y al final 00:32:53
bueno, no sé, pensando y tal, digo bueno, pues 00:32:56
igual que llamo aquí a uno con sección 00:32:58
digo pues bueno, intento crear otro y que lo llame 00:33:01
también con un shield y lo enganche ahí 00:33:03
al final vamos, conseguí enganchar uno 00:33:05
con otro, pero eso me llevó 00:33:07
me llevó tiempo, sí 00:33:09
y luego 00:33:10
la elección de la arquitectura modelo vista controlador 00:33:12
porque lo has usado 00:33:15
Pues por tenerlo todo bien dividido, las vistas por un sitio, los modelos que se encarguen solamente de su parte, que sería el acceso a las tablas y los controladores para que sean los que se encarguen de ir llamando a los distintos modelos y poder orquestar, por ejemplo, lo que viene siendo una compra, porque necesitas bajar inventario, añadir productos al usuario, generar un pedido, 00:33:16
Entonces, era la manera de tener a todo más, digamos, cada cosa en su sitio. 00:33:46
Vale. Bueno, pues yo creo que no, creo que hemos terminado. No te voy a hacer ninguna pregunta más. Ya puedes respirar. 00:33:52
Vale. 00:34:01
Y, vale, pues con esto concluimos. Esto será una libia ya para ti. 00:34:03
Sí, jo, la verdad que sí. 00:34:10
Estaba esperando que ya se terminaba ya. 00:34:13
Vale, y nada, pues nada, mucha suerte y nada, enhorabuena, me gustó el trabajo y poco más. 00:34:16
Le he puesto bastante tiempo y horas y sueño, bueno, o falta de sueño. 00:34:26
Ya, se ve, se ve. Vale, pues nada, encantado Ángel y nada, suerte. 00:34:32
Muchas gracias. 00:34:37
Gracias. 00:34:38
Hasta luego. 00:34:39
Idioma/s:
es
Materias:
Informática
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Francisco José González Constanza
Subido por:
Francisco J. G.
Licencia:
Todos los derechos reservados
Visualizaciones:
1
Fecha:
22 de enero de 2026 - 12:28
Visibilidad:
Clave
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
35′ 23″
Relación de aspecto:
2.08:1
Resolución:
1080x520 píxeles
Tamaño:
54.66 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid