Defensa del proyecto DAW de José Antonio Vaquero Almarcha - 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 telemática del proyecto en el CIFPD Ignacio Ellacuría de Alcorcón
Buenas tardes, José Antonio. Hoy, 15 de mayo, a las 16.30, estamos convocados a través de la Jefatura de Departamento para la defensa del módulo profesional de proyecto del ciclo formativo de grado superior de desarrollo de aplicaciones web.
00:00:00
Te informo que esta grabación se usará en el entorno cerrado de EducaMadrid con fines educativos y solo estará a disposición de los profesores 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 del proyecto ha sido informado de los criterios y rubricas de calificación.
00:00:35
El orden de presentación del proyecto es el siguiente.
00:00:43
15 minutos más para empezar el proyecto. 5 minutos para preguntas por parte de la tribuna. Y dicho esto, la exposición comienza a partir de este momento. Adelante y mucha suerte.
00:00:46
Gracias. Voy a empezar con el PowerPoint. Pues vamos para allá. El proyecto DAO, almacén tecnológico, es el proyecto que ha generado.
00:01:01
Y bien, ¿qué es el almacén tecnológico? Bueno, lo primero ante nada, este proyecto, aunque ponga almacén tecnológico, vale para cualquier tienda,
00:01:21
para cualquier almacén, para cualquier sitio
00:01:30
está estructurado para que sea
00:01:32
ambivalente para todos los sitios
00:01:34
ha cogido un almacén tecnológico
00:01:36
por ejemplo de aquí
00:01:37
pero bueno
00:01:40
el primer punto está basado en
00:01:41
PHP, MySQL, Javascript
00:01:44
una capa de estilos y está
00:01:46
implementado con el patrón modelo vista controlador
00:01:48
que es más o menos
00:01:50
lo que en estos momentos es
00:01:53
lo que sería
00:01:54
vale, objetivos
00:01:56
un sistema eficiente y seguro
00:02:03
pues, y estar en un producto
00:02:06
clientes y ventas, que es lo más general
00:02:08
en todos los sitios tiene que haber un producto, un cliente y unas ventas
00:02:10
es una
00:02:12
asociación interactiva para muchas pequeñas y medianas
00:02:14
empresas, cualquier tienda
00:02:16
podría coger este producto
00:02:18
y es un interfaz
00:02:20
que se ha puesto tanto para teléfono móvil
00:02:22
como para tablet, que quiere decir esto
00:02:24
que la pantalla está optimizada
00:02:26
para un rango grande
00:02:27
600 mil y pico megapíxeles
00:02:29
como para el teléfono móvil, los botones se acoplan, todo se acopla para una telefonía o una pantalla de ordenador o tablet.
00:02:32
La metodología. La metodología es la que he dicho antes, modelo vista controlador, ya se sabe, está, bueno, modelo, acceso a base de datos,
00:02:41
controlador, donde están las funciones y vista, donde está la pantalla principal de HTML, donde se muestra.
00:02:52
En cascada con la implementación
00:02:58
¿Qué quiere decir esto? Un diseño, un desarrollo
00:03:00
Unas pruebas y una implementación y un mantenimiento
00:03:02
Esto es exclusivo, pues si se quiere hacer
00:03:04
Pues un mantenimiento
00:03:06
Más exhaustivo, un crecimiento
00:03:08
Pues volvería al primer momento, quiero añadir
00:03:10
Este módulo, lo otro y demás
00:03:12
Con pruebas y mejoras continuas
00:03:13
Tecnología
00:03:16
Ya he dicho, PHP, JavaScript, Kappa
00:03:18
Resetom SQL, la herramienta
00:03:20
NetBeans, el SAM para conectar
00:03:22
Otras bases de datos y demás
00:03:24
y el servidor, por lo menos
00:03:26
el utilizado como sistema de base de datos
00:03:29
y esto es importante en librerías
00:03:31
todo lo que es, lo he hecho yo
00:03:33
y lo único que he cogido es librerías abiertas
00:03:35
el CDPDC para sacar los albaranes
00:03:37
JHS para sacar
00:03:39
los gráficos y más acceso
00:03:41
a correos, porque le he enfocado
00:03:43
que también tenga acceso a correos
00:03:45
para que sea algo distintivo
00:03:47
seguridad, bueno, la seguridad
00:03:48
en la primera, la contraseña
00:03:52
el inicio de datos, pues es el típico
00:03:54
de validación, de encriptación
00:03:56
y un proceso seguro
00:03:58
para que esté todo encriptado
00:04:00
y nos pueda ser accesible de las
00:04:01
edades. Seguridad
00:04:04
de páginas. Importante, va con un
00:04:06
sistema de rol.
00:04:08
Cada usuario, según el rol que lleva,
00:04:10
hay tres roles, de usuario, administrador, superadministrador,
00:04:12
como se muestra en la pantalla,
00:04:14
puede ver los diferentes tipos de páginas.
00:04:16
Ahora mismo,
00:04:19
está estandarizado que un usuario solo pueda
00:04:20
ver la configuración
00:04:22
y nueva venta, que pueda realizar una
00:04:24
venta un administrador puede meter diferentes tipos de productos que su administrador lo
00:04:26
puede manejar todo esto va por una sesión cuando se mete un usuario el rol que tiene
00:04:33
le da acceso a las páginas de seguridad email se ha accedido al mail como es el mail que yo
00:04:39
he puesto en este pues tiene que ser modificable para el mail que cada uno quiera meter en su
00:04:49
empresa tiene dos partes una que sea en la invitación que va dentro del conflicto hp y
00:04:53
luego está pues él en la tabla de configuración donde se mete esto es decir que si no te has
00:05:00
acceso las dos partes nunca vas a tener el correo ni la clave y es complicado con un hacker entre
00:05:09
en las dos. Pero bueno, es un motivo
00:05:16
de seguridad. El día de mañana
00:05:19
cuando se acoge una empresa
00:05:21
meterá su correo electrónico, meterá su
00:05:22
password y luego en el
00:05:25
config.php yo tengo una encriptación
00:05:27
él la puede variar. O sea, es más
00:05:29
hay un HTTP access para que no pueda
00:05:31
ser accesible esta carpeta por
00:05:33
nadie, para que no llegue uno y se meta
00:05:35
y vea la encriptación.
00:05:37
Un punto HTTP access.
00:05:41
Vale. La protección contra
00:05:44
SQL e inyección.
00:05:46
todas las SQL están metidas
00:05:47
por el sistema PDO
00:05:51
que quiere decir, en la imagen esta
00:05:52
que no veo un parámetro que se va recorriendo
00:05:54
y pongo un SQL
00:05:57
un ampliSAN
00:05:59
y meto esto, así evitamos
00:06:00
las comillas simples, evitamos
00:06:03
lo que se mete muchas veces son los scripts que meten
00:06:04
un script simulado
00:06:07
para que casque o entre
00:06:08
va dentro
00:06:10
del parámetro, por lo cual
00:06:12
es un sistema de seguridad
00:06:14
a los dos lados
00:06:16
planificación
00:06:17
bueno, esto es simplemente la planificación
00:06:20
como se va metiendo, pues de Magdagan
00:06:22
de los tiempos
00:06:24
en que se ha ejecutado este
00:06:26
este proyecto, despliegue y pruebas
00:06:28
como he dicho antes
00:06:32
ha habido la prueba de inicio de sesión con diferentes
00:06:33
usuarios y password, prueba de seguridad de usuarios
00:06:35
para acceder a los diferentes roles, que un usuario
00:06:37
con un rol solo puede entrar a esas páginas
00:06:40
prueba de aplicación
00:06:42
todos los casos de uso que se han generado
00:06:44
para que vaya a la aplicación
00:06:46
validación de seguridad de acceso remoto
00:06:47
lo que os hablaba antes, selección de SQL
00:06:50
sentencias de escape, meter una comilla simple
00:06:52
meter un script
00:06:54
anidad, que no entre
00:06:56
puedo arreglar el mensaje de consulta de SQL
00:06:57
vale, pues analización de la ejecutación
00:06:59
todos los SQLs de los logs
00:07:02
pruebas de carga de convoy y SQL de SELAP
00:07:04
con SQL para ver que
00:07:06
no se va ninguna SQL de mar de tarde
00:07:08
mucho y demás
00:07:10
despliegue, pues
00:07:11
configuración de servidor local
00:07:13
apache
00:07:15
con SAM
00:07:20
instalación SQL, bueno, es el despliegue normal
00:07:21
de un apache, de PHP
00:07:24
funcionalidad de la aplicación
00:07:26
es una funcionalidad que viene, bueno
00:07:31
típico con una imagen
00:07:33
con un scroll cuando paso por encima
00:07:35
que se mueve, que sea muy visible
00:07:37
como he dicho antes
00:07:39
acciones comunes, vale, el truco completo
00:07:40
que es el consulta al editar para las páginas
00:07:44
para que yo cree, edite y elimine registros.
00:07:46
Eso es para todas las páginas, menos para gráficos y correo.
00:07:49
Un buscador integrado, un botón de reclamo de prioridad.
00:07:55
Aquí solo hay dos niveles.
00:07:59
Para hacerlo sencillo, no sencillo sino visualmente,
00:08:00
y quizá aplicable al móvil, hay dos niveles.
00:08:03
El principal y un retorno.
00:08:06
O sea, yo entro dentro del módulo que yo quiera
00:08:08
y tengo una salida para afuera.
00:08:12
No hay varios niveles, voy entrando uno a uno.
00:08:13
Un retorno, confirmación de validaciones, cada vez que hay una validación, una edición, grabar datos, siempre hay una ventana de confirmación, el javascript y demás. Todo está metido también, hay que decirlo, dentro de, hay sus try-cats, todo lo que hay para que no salte ninguna control de secciones fuera, sea todo controlado.
00:08:16
diseño responsable de transferencia de datos para los dispositivos móviles y de escritorio
00:08:37
para que sea una aplicación actual. He cogido uno cualquiera, simplemente leo los registros que hay,
00:08:46
estas son las marcas, se ha cogido en esta aplicación lo que son marcas, lo que son
00:08:54
tipos, para que sean
00:09:02
para todas las operaciones de las tiendas
00:09:05
un create, que yo genere
00:09:07
un registro metiendo los datos arriba
00:09:09
lo que he dicho antes
00:09:11
la validación
00:09:12
y me inserta el registro
00:09:15
con el
00:09:16
update lo mismo, edito un registro
00:09:19
lo modifico, me pregunta si
00:09:21
voy a guardar los datos, si lo quiero guardar
00:09:23
acepto y lo modifica
00:09:24
y un delete, simplemente la misma operación
00:09:26
elimino registros
00:09:29
buscador, todas las páginas tienen
00:09:30
un buscador y un limpiador para buscar exactamente los campos principales que es lo que quiero buscar.
00:09:35
Aquí en pruebas y en todos los campos en la aplicación real pues habría muchísima. Lo que he hecho, botón de retorno
00:09:42
y de salida del logout de la aplicación, iría matando la sesión, saldría mal. Confirmación y validaciones, siempre hay
00:09:49
una pantalla de script donde me dice si estoy seguro para continuar y cuando lo he hecho, o sea, la aceptación
00:09:57
de que sea real.
00:10:04
Vale, el diseño
00:10:07
hemos dicho, que sea para todos
00:10:08
aunque sea posible. Aquí viene un ejemplo
00:10:10
cómo sería para un teléfono móvil.
00:10:12
Aquí sería para una pantalla
00:10:17
de escritorio de un ordenador.
00:10:18
Vale,
00:10:21
y voy a empezar un poquillo, un resumen
00:10:22
de las pantallas que hay. Marcas, pues siempre
00:10:24
tiene una marca. Aquí he puesto tecnológico,
00:10:26
pero si fuese zapatillas, pues sean zapatillas
00:10:28
o para ropa.
00:10:30
Tipo de productos, siempre
00:10:32
entre las marcas tiene que ser un impresor,
00:10:34
un portátil, si fuese zapatillas, el anterior
00:10:36
sería Adidas, Lime, no sé qué
00:10:38
y aquí sería zapatillas, camisetas
00:10:40
pues, valia
00:10:41
descuentos
00:10:43
importante, yo aplico los descuentos
00:10:46
aquí en la tabla, el descuento que yo quiera que sea
00:10:48
puntual, que sea por
00:10:50
por Black Friday
00:10:51
que sea cero, que no haya descuento
00:10:53
producto, pues el
00:10:55
producto ya se le pone todo lo que es
00:10:58
la referencia, el producto, el nombre
00:11:00
ya voy a todo lo que es
00:11:02
todas las tablas, estoy cogiendo arriba las tablas
00:11:03
de las plantas anteriores, que es el tipo
00:11:06
impresora, lo que sea
00:11:08
el descuento, si voy a meterlo, la marca
00:11:09
de aquí genero el producto
00:11:12
puede ser una impresora de Samsung, de
00:11:13
Inves, de lo que sea, sin descuento, con descuento
00:11:16
las cantidades que yo estoy ingresando, no me lo hacen
00:11:18
el precio que yo ingreso
00:11:20
el nombre, para mí, descriptivo
00:11:22
y una referencia propia
00:11:24
nueva
00:11:26
venta, aquí es donde yo realizo
00:11:28
la venta, esto es lo importante
00:11:30
bueno, lo importante es todo
00:11:32
Y esta es la peor angular. Aquí algo descriptivo, que primero selecciono el cliente. Seguidamente, después de seleccionar el cliente que viene a la parte de arriba, selecciono cuántos productos y qué cantidad voy a generar en el albarán y yo genero esta venta.
00:11:33
Esta venta tiene abajo un albarán donde me muestra que sería el ticket de compra, el albarán de compra, con su descuento, los precios, las cantidades y demás.
00:11:52
Los clientes, clientes son los clientes que se generan, las facturas que puedo hacer devolución, que es importante que yo cuando vengo un cliente me pase una devolución,
00:12:07
esto. Genera
00:12:17
un albarán nuevo en base de datos
00:12:19
este es el ejemplo anterior
00:12:21
donde se ha quitado y se ha generado
00:12:23
y se quedaría
00:12:25
aquí se ve
00:12:26
con que esto ha sido una devolución
00:12:29
que da en base de datos pero con devolución.
00:12:31
Bien, este es el típico albarán
00:12:35
donde viene los datos que
00:12:37
vienen dentro de la configuración
00:12:39
de la tienda, el cliente y que
00:12:41
se ha comprado en el momento dado.
00:12:43
Roles. Lo que hemos dicho antes de
00:12:46
cada usuario tiene unos roles.
00:12:48
identificados, esos roles pueden variar, yo puedo a una persona quitarle, meterle roles a un tipo de
00:12:50
usuario, una persona, por ejemplo, estos roles de usuario ahora mismo solo tendría dos pantallas,
00:12:58
el de administrador tendría todas menos la de roles y usuarios, que son las de superadministrador
00:13:03
que irá dando los permisos. Usuario es igual, gestión de usuario, pues lo mismo, un usuario y
00:13:08
contraseña, que se va metiendo un usuario y el tipo, sobre todo aquí lo importante es el tipo,
00:13:15
qué tipo es admin y el usuario superando estos son estadísticas de totales promedio venta por
00:13:20
clientes y productos de stock mínimo para ver productos están acabados la configuración en
00:13:27
dos partes el nombre que viene en el albarán el teléfono dirección y el correo electrónico
00:13:34
bueno esto es simplemente la edición del correo electrónico esto es la parte de correos que donde
00:13:38
yo esté accediendo a un correo de yahoo donde yo puedo tener todo mi correo visualizarlos es una
00:13:47
revisión licación y yo tengo el detalle donde lo hago y veo lo que está llegando bueno base de
00:13:54
datos la base de datos es un árbol rápido normalizado y con consistencia qué quiere
00:14:02
decir esto no hay relaciones circulares yo no llevo a los sitios por el mismo lado todos la
00:14:09
la tabla de datos tiene sus índices
00:14:14
y todo está relacionado.
00:14:16
Menos configuración, aparte, claro que está.
00:14:18
Bueno, estos resultados, que se puede
00:14:21
aplicar a cualquier sitio, que es un
00:14:22
control detallado, tiene agilidad,
00:14:24
una interfaz amigable,
00:14:28
mejor en tomar decisiones
00:14:29
por las gráficas y centralización de datos.
00:14:30
Hay mejoras futuras,
00:14:35
como interacción de comercio,
00:14:36
multilinguaje, modelos de forma avanzados
00:14:38
y ya, se podría meter y correo electrónico
00:14:40
no envío correo, solo lo recibo ahora mismo
00:14:43
sería enviarlos
00:14:44
por la anterior conclusión
00:14:46
y ahora me voy a la otra parte
00:14:48
que os quiero enseñaros como funciona
00:14:51
esto es
00:14:53
lo que estáis viendo, bueno, entro como administrador
00:15:19
ahora mismo y bueno pues
00:15:21
me da tiempo pues a generar
00:15:25
una venta, una nueva venta
00:15:27
yo busco primero el cliente
00:15:29
que sea Tesla, yo por ejemplo le meto
00:15:32
aquí un láser
00:15:35
y le meto de láser jet
00:15:37
pues le voy a meter dos.
00:15:39
Así le voy a meter
00:15:41
esto y le voy a meter
00:15:42
uno. Abajo se van
00:15:44
abriendo todas, genero la venta
00:15:47
venta procesada
00:15:49
correctamente y aquí está, aquí le daría
00:15:51
yo a mi albarán
00:15:53
donde sale el producto, todo lo
00:15:54
que he comprado con su descuento.
00:15:59
Estos descuentos los meto yo porque
00:16:00
conmovio al electro. Un minuto.
00:16:02
Vale, que quiero devolver un producto, pues aquí, bueno, esto sería estadísticas también desde el ciclo de verlo, como era, en facturas, esta última factura que he creado, que estaría aquí, por esos tres productos, y quiero devolver esta, la devuelvo, devolvería al cliente su dinero,
00:16:04
y ahora mismo
00:16:28
me sale esta de vuelta
00:16:31
y el albarán pues me saldría
00:16:33
pues el único producto
00:16:35
se debería de estar al barán
00:16:37
que ha comprado
00:16:38
y el nuevo
00:16:40
y los nuevos, bueno, no al barán
00:16:41
vale
00:16:45
y aquí pues
00:16:47
gestión de roles, configuración
00:16:51
así se va a editar
00:16:53
el permiso, lo he parado antes, aquí puedo editar
00:16:55
lo que quiera
00:16:57
descuentos, también la gestión de descuentos
00:16:58
y lo de productos también es interesante
00:17:03
porque aquí es donde, digamos,
00:17:05
un producto genera todo
00:17:07
genera qué tipo es el descuento
00:17:08
o no aplica, que sería un cero
00:17:11
el tipo de marca, el tipo de impresora
00:17:13
la cantidad que estoy metiendo en el almacén
00:17:15
por ejemplo, 120 cogidos
00:17:16
el precio, pues 121 euros
00:17:19
producto
00:17:22
impresora
00:17:22
75, creo que va a llamar
00:17:24
y referencia
00:17:27
pues
00:17:29
Philips
00:17:30
impresora 001
00:17:33
vale, producto
00:17:35
listo
00:17:39
un día aquí, aquí está el libro
00:17:40
y aquí sería para editar, por ejemplo, si al final
00:17:42
viene pues una Brad Friday
00:17:45
y le quiero meter un descuento, le metería aquí
00:17:47
y atendría aquí, pues esto
00:17:49
con su descuento y con todo
00:17:53
es el 15 de Brad Friday
00:17:54
Y esto, bueno, ya con esta presentación, lo más rápido y condensada que he podido, pues este sería el producto, el proyecto que he generado, que es gestión de almacenes tecnológicos.
00:17:57
Perfecto, muchas gracias José Antonio. Bueno, te voy a trasladar dos preguntas por partes del tribunal.
00:18:10
Una es una pregunta que tienes que contestar y otra es una pregunta que lo que tienes que hacer es desarrollarlo en la aplicación.
00:18:18
Lo primero, es un programa más completo, hecho en relativamente muy poco tiempo.
00:18:30
Y lo que te pregunta el tribunal es si has recibido alguna ayuda en el código, a través del código hecho, generado por la inteligencia artificial o han sido tiempos hechos por ti.
00:18:40
Yo soy informático.
00:18:58
Y la segunda pregunta es, que cogiendo en tu exposición la impresora 77, nos digas cómo la impresora como producto entra en el sistema, en la base de datos,
00:19:00
cómo cuánto se hace la venta, sale del sistema y se genera la factura, y cómo si hay una posible devolución, cómo vuelve a entrar otra vez en la base de datos.
00:19:16
perfecto voy primero con la primera pregunta lo he hecho rápido porque yo soy informático y
00:19:27
estoy en un presente proyectos amando escribir y en ese proyecto yo voy al trabajo todo estas
00:19:41
ocho horas pero ahora mismo no tenía nada que hacer por lo cual me he dedicado ocho horas
00:19:46
todos los días a hacerlo si yo no estuviese en un pendiente proyectos este proyecto que
00:19:50
parece que es pequeñito no lo hubiese realizado el trabajo trabajo si no te ven viendo youtube
00:19:55
internet o algo no te dicen a tener programando y además puede poder puedo decir que yo estoy
00:20:02
adquiriendo conocimientos nuevos de php por lo cual hay nadie está que se estoy haciendo un
00:20:08
trabajo medio algo presente el proyecto no me dice nada segundo impresora 77 que se ha generado
00:20:14
No me acuerdo bien de la pregunta, pero bueno, un poco la gestión, si se devolvía, dónde se guarda la relación. Es un producto que está relacionado con los campos, además, el campo de producto está relacionado con los campos tipo, marcas y descuentos, o sea, es el campo que está relacionado con esos tres.
00:20:21
Entonces, ¿qué pasa si yo lo modifico? Se modifica lo que es, yo no puedo modificar tipo ni marca de producto dentro del producto, puedo modificar afuera e incluir un producto o modificarlo, o sea, un tipo, una marca.
00:20:38
lo que es el producto en sí,
00:20:53
podemos fijar precios y demás.
00:20:55
Si queríamos crearle un tipo, tendría que irme
00:20:57
fuera y decir, ahora ya no se llama Phyllis, se llama
00:20:59
Phyllis Ibérica.
00:21:01
Bueno, me saldría, yo lo haría con un ID,
00:21:03
no con un string. Por lo cual, en el momento
00:21:05
saldría Phyllis Ibérica como tipo.
00:21:07
¿Me explico? En el momento
00:21:10
que yo devuelvo, eso se
00:21:11
incrementa en productos, hay una cantidad
00:21:13
que he metido al principio. No sé si os acordáis
00:21:15
que decía, el número de cantidades que he metido en el almacén
00:21:17
se incrementa. En el momento que yo vendo una
00:21:19
cosa, se decrementa. Y por eso está
00:21:21
el gráfico el tres gráficos y uno es de esto mínimo hay productos que están estos mínimos
00:21:23
que hay que meter porque en ese momento pues se están acabando y hay que visualizar lo que
00:21:29
se están acabando es importante en el momento que yo resto uno o dos o cuatro los que compré
00:21:33
es más no le echo la prueba ahora pero si yo resto más de lo que me salió alerta no puedes
00:21:40
porque no hay tanto esto. En el momento que yo elimine o devuelva, pues se suma, se suma a los productos.
00:21:44
No sé si me queda alguna pregunta pendiente de todo. No sé si está respondido todo o me falta algo.
00:21:55
Bueno, aquí acabo. Es lo que has dicho. Bueno, pues vamos a dar por terminada la presentación.
00:22:03
Y ahora quedamos a la esperanza de comprobar que todo se haya hecho correctamente.
00:22:14
De acuerdo, Luis.
00:22:21
Muchas gracias.
00:22:22
- Idioma/s:
- Materias:
- Programación
- Etiquetas:
- Aplicaciones WEB
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Segundo Curso
- Autor/es:
- Pablo Arribas
- Subido por:
- Pablo A.
- Licencia:
- Dominio público
- Visualizaciones:
- 4
- Fecha:
- 15 de mayo de 2025 - 17:25
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Descripción ampliada:
- Grabación realizada con la herramienta OBS para poder ser visualizada por el tribunal calificador
- Duración:
- 22′ 25″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 211.23 MBytes