DEFENSA_ALEC_DAW - 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_ALEC_DAW
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
Sí
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
y
00:31:36
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:
- 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
- Ciclo formativo de grado básico
- 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