PROYECTO PAULA Y AITOR
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:
Buenos días. Hoy día 15 de mayo a las 12 de la mañana estamos convocados a través de la Secretaría de Departamento para la Defensa del Módulo Profesional del Proyecto del Ciclo Formativo de Grado Superior de DAU.
00:00:01
Os informo de que esta defensa está siendo grabada y que esta grabación se utilizará en el entorno cerrado de Eucamadrid con fines educativos
00:00:15
y estará a disposición de los profesores evaluadores en el aula virtual para llevar a cabo la evaluación y la calificación de la defensa del proyecto.
00:00:23
En el aula virtual de proyectos habéis sido informados de los criterios y rubrica de calificación.
00:00:31
El orden de presentación del proyecto es el siguiente, 15 minutos máximo para defender el proyecto y 15 minutos máximo para preguntas por parte del tribunal.
00:00:36
Dicho esto, vuestro tiempo de exposición comienza a partir de este momento. Adelante y mucha suerte. Son las 11.54, tenéis 15 minutos hasta las 12.14.
00:00:44
Vale, bueno, pues muchas gracias. Empezamos. Hemos desarrollado esta aplicación para centralizar la información de actividades extraescolares, permitiendo a padres que necesiten inscribir según el curso de sus hijos y mejorar la comunicación y evitar errores. También facilita la gestión para coordinadores del centro.
00:00:56
el objetivo es automatizar y mejorar la gestión y la experiencia, reduciendo errores y sobrecarga
00:01:14
del proceso manual. Aporta claridad a las empresas para presentar sus ofertas y gestionar inscripciones
00:01:22
y se ofrece a los padres mayor seguridad sobre las plazas y facilitamos una herramienta LAMPA
00:01:27
para disminuir la carga de trabajo y que haya menos errores. Como objetivos, tenemos el objetivo
00:01:33
general, que es crear una aplicación para optimizar el proceso de asignación de plazas en actividades
00:01:38
extraescolares. Y luego, de forma más específica, tenemos gestionar fácilmente la inscripción
00:01:43
de los hijos y sus actividades, simplificar el alta y organización de las actividades,
00:01:47
ofrecer a la AMPA una herramienta eficaz de administración, incorporar un sistema de
00:01:52
listas de espera para cubrir vacantes y mejorar la interacción entre familias, empresas y
00:01:56
AMPA. Ya continúa mi compañero.
00:02:00
Vale, pues comienzo a compartir.
00:02:03
de valores, es decir, a la siguiente reunión, entregar algo tangible con lo que trabajar.
00:02:47
Y a partir de ahí, pues ya adaptarnos a las distintas partes que había creado cada uno
00:02:52
para continuar cada uno en nuestra parcela de asignación de tareas.
00:02:56
En cuanto a cómo nos hemos organizado, en primer lugar se definieron tres roles,
00:03:02
finalmente nos hemos quedado dos, pero bueno, los tres roles que se definieron en un primer momento
00:03:09
Fueron una persona que iba a definir la base de datos y la lógica de negocio, otra persona la presentación de la página web y experiencia de usuario, es decir, definir las interfaces que se iban a presentar en la página web, y una tercera persona que iba a hacer la validación de formularios y darle dinamismo y funcionalidad a JavaScript a la página web.
00:03:14
Entonces, la primera parte, la definición de bases de datos y lógica de negocio, la realicé yo. Paula se encargó de validación de formulario, dinamismo y funcionalidades JavaScript. Y luego, la presentación de páginas web, pues finalmente nos la tenemos que repartir entre Paula y yo.
00:03:35
Bueno, aquí son simplemente ejemplos para que se pueda ver las reuniones que llevamos en Teams. Las hacíamos cada dos semanas para que se vea un poco la funcionalidad que íbamos consiguiendo, alguna duda de código que pudiese.
00:03:50
Para el mantenimiento de código nos basamos en Github. Aquí lo que estamos viendo también es un ejemplo en el Visual Code Studio, que es el editor de texto que hemos utilizado, distintos movimientos como Homey o Merge que hacíamos tanto en Aula como en Github.
00:04:05
En cuanto a las tecnologías y herramientas, se ha utilizado un sistema con una arquitectura cliente-servidor. El cliente, el navegador y el servidor, bueno, el software hosting que hemos utilizado para el despliegue.
00:04:22
En el frontend hemos utilizado HTML, Bootstrap y JavaScript. Y en el backend hemos utilizado PHP, MariaDB como base de datos, que es un port de MySQL y como servidor Apache.
00:04:36
¿Y por qué hemos utilizado estas tecnologías en el back-end? Pues porque todo esto lo conseguimos de forma integrada en SAMP, que es una tecnología que hemos utilizado a lo largo del ciclo formativo. Entonces, estamos con mediante opción en ella y que estamos trabajando con forma de back-end.
00:04:49
En cuanto a la planificación, hicimos un diagrama de GAMP donde hemos definido las distintas tareas a realizar, que son planificación del proyecto.
00:05:07
Bueno, aquí tomando las ideas, pues con esto se hizo un poco la idea del anteproyecto, se presentó, no hubo un tercero computador y a partir de ahí ya empezamos más exhaustivamente el análisis de requisitos del sistema.
00:05:18
el desarrollo que ha durado hasta la última semana, donde ya he llevado a cabo el despliegue en un hosting externo.
00:05:31
Luego la prueba ya se empezó a diseñar a mitad de desarrollo, cuando ya vimos que había gotas,
00:05:39
ya se empezaron con esas pruebas, que las realizó en mayor parte Paula.
00:05:44
Y luego la documentación tendría como la documentación del proyecto que hemos presentado.
00:05:49
Aquí incluiríamos las pruebas de proyecto, como la entrega intermedia, como la entrega final,
00:05:53
que, bueno, hablamos de estos días juntos, bueno, la planificación de la 15 de mayo, que es el último día, ¿de acuerdo?
00:05:58
La situación inicia. Bueno, esto es un poco lo que ha comentado mi compañero Paula.
00:06:04
Lo explicamos. ¿Por qué? Porque había una falta de centralización de la información a la hora de realizar inscripciones.
00:06:08
Entonces, ¿esto qué puede suponer? En muchos fallos, una carga administrativa excesiva,
00:06:14
así como dificultad para gestionar listas de esperas, modificaciones o incluso las propias asignaciones de plazas.
00:06:19
¿Qué hemos decidido? Lo que ha comentado con los objetivos. Centralizar toda la gestión de actividades en una plataforma, diseñar una interfaz sencilla e intuitiva para los usuarios. Esto lo puede utilizar junto al administrador, como el padre o madre que va a inscribir a su hijo en las actividades.
00:06:26
Y luego, pues, automatizar el proceso crítico con la gestión de plazas o la gestión de listas de espera. Y ello, pues, con un enfoque de los objetivos de desarrollo y manteniendo un enfoque muy claro escalable para que se encuentren pequeños campos para otro tipo de actividades.
00:06:43
En cuanto a cómo enfocamos el diseño del proyecto para definir la funcionalidad, como
00:07:01
pasamos en casos de uso, es una técnica que se utiliza para obtener las funcionalidades
00:07:11
desde el punto de vista del usuario. Desde aquí se definieron tres usuarios. El padre
00:07:17
o madre no registrado, que puede hacerlo más sencillo, que es el registrante, los
00:07:22
noticias, actividades, empresas colaboradoras. Luego, un padrón registrado que heredaría
00:07:26
todo aquello que pueda hacer el padrón registrado y, aparte de ello, ver datos personales, modificarlos,
00:07:31
ver los registrados, verlos de alta, modificarlos, eliminarlos, darles su contraseña o escribir
00:07:37
en actividades a sus hijos. Y, por último, un administrador que puede hacer todas aquellas
00:07:43
funciones que se espera de un administrador de una aplicación. En este caso sería la
00:07:49
que es tener las inscripciones, las actividades, las empresas o las noticias.
00:07:54
En cuanto a la estructura de la base de datos, pues se ha representado con un diagrama de entidad-relación
00:08:00
y simplemente comentar que se pueden ver las distintas tablas que tiene nuestra base de datos y sus operaciones.
00:08:05
Y que como es esencial, tenemos el usuario registrado.
00:08:11
Puede funcionar tanto como una U, que es el usuario de un padre o madre, un usuario digamos común,
00:08:15
o como una A que es un administrador. También está pensado para que en el futuro, bueno, pues se pudiera actuar también como empresa, ¿no?
00:08:21
Para poner, pues, las actividades de precios, etcétera. Y ya por último de mi parte, decir que el despliegue se ha hecho en X10 Hosting
00:08:30
debido a la compatibilidad con PHP y MariaDB o MySQL, ¿vale? Y que si se quiere ver nuestra página web, bueno, pues en esta URL de aquí se podría realizar.
00:08:38
Y ya, bueno, ya Paula va a finalizar la presentación con todas las pruebas y mostrarnos un poquito la intencionalidad.
00:08:49
Estamos viendo que nos está dando un error en la fecha de nacimiento porque hemos concretado que la fecha de registro para los padres y padres de los suscriptores no puede ser inferior a 15 años. En este caso está intentando que la fecha sea de 2024 y nos sale el error justo debajo del campo. Esto está hecho con Javascript.
00:09:21
Luego, a continuación, hemos hecho distintos tipos de pruebas. En esto se ve la prueba de límites, en la que intentamos meter menores plazas si no nos da y luego como que sí. Prueba de manejos vacíos, en las que vemos que no podemos meter datos que estén como obligatorios y dejarlos vacíos, nos enviaría el formulario.
00:09:40
Hemos hecho prueba de transición de datos, que aquí se ve cómo se crea un periodo de actividad. Hemos hecho prueba de entradas incorrectas, intentando meter en el campo de nombre números de generación de PDF desde el periodo de script.
00:10:00
Y luego pruebas unitarias de evaluación del backend. Como sabemos, aunque se hagan las pruebas de validación con Javascript, el usuario siempre puede desactivarlo. Entonces, es obligatorio también que estén hechas en el backend.
00:10:17
Entonces, aquí, por ejemplo, vemos que están introducidos de forma errónea el zip, el teléfono y el correo electrónico y que además de que aparecen ahí el mensaje con esos errores, nosotros lo tenemos guardado en un registro de logs.
00:10:31
Luego la interfaz se vería más o menos con esta presentación
00:10:43
Esto sería la pantalla de inicio y la descripción de actividades
00:10:47
El laborador así de contacto
00:10:51
Y luego esto se vería si entramos como usuario, que es padre, madre o tutor
00:10:54
Se ve el menú desplegable en este punto para el usuario
00:10:58
Podemos acceder a los datos personales, podemos cambiarlos, o sea, modificarlos
00:11:03
Podemos entrar a los hijos registrados en los que pudimos añadir hijos o los que ya tenemos añadidos, modificarlos o eliminarlos
00:11:09
Acceder a las actividades inscritas o inscribir a nuestros hijos siempre que haya un periodo de inscripción completo
00:11:17
Y esto sería lo que se ve desde el acceso como administrador
00:11:24
Tenemos ese menú desplegable y aparecería una gestión de usuarios en la que vamos a ver los usuarios, lo que decimos padre, madre o tutor que están inscritos
00:11:29
Y lo único que podríamos hacer es eliminarlos porque hay modificaciones desde el usuario y lo que sí que podemos es dar de alta nuevos administradores. Luego tenemos la gestión de inscripciones en la que habría periodos de inscripción. Una vez esté finalizado, podemos gestionar un listado en el que se pueden ver las actividades que tenemos, los hijos que están inscritos y si hubiera algún problema en esta espera.
00:11:39
Luego tenemos la gestión de actividades en la que podemos crear una nueva actividad o modificar las que ya están creadas.
00:12:07
Igual con empresas, crear una nueva empresa o modificar la que está creada.
00:12:13
Y lo mismo con las noticias, esto es como un tablón de noticias donde poner para que los padres vean las actualizaciones.
00:12:17
Y luego, tanto el usuario como el administrador pueden cambiarla con la línea.
00:12:26
Luego, el contexto laboral que tenemos, pues al final es un contexto laboral muy amplio porque podemos hacer pequeñas variaciones y que la aplicación sirva para diferentes ámbitos que estén relacionados un poco con la gestión de actividades.
00:12:30
Podemos, por ejemplo, cambiar que en lugar de que aparezca que estén las actividades por cursos, se puedan gestionar actividades o que si las personas sean mayores de edad no haya una opción de agregar a sus hijos y se puedan gestionar ellos mismos esas actividades.
00:12:46
Las conclusiones. Bueno, pues nos hemos dado cuenta de la importancia de tener un diseño bien estructurado para una gestión gráfica. La importancia del uso de tecnologías de software, en este caso, ha sido mejor para nosotros porque no ha tenido un costo adicional.
00:13:01
Y como la selección de los sistemas es muy importante, ya que nosotros tuvimos un problema que se nos actualizó Windows y tuvimos problemas con MySQL, de Instagram y tal.
00:13:14
Luego, por ejemplo, el uso de GitHub al trabajar en equipo también nos ha parecido súper importante.
00:13:23
Además, hemos tenido problemas al no haber estado muchas veces trabajando en la última versión y luego había problemas a la hora de hacer Pull-O-Mesh y luego nos hemos tenido también que reorganizar el equipo.
00:13:31
Como obvia, tenemos que es una aplicación muy escalable que permite adaptarse bien o a otros centros educativos o se podría, por ejemplo, también poner un cúdulo de pago para facilitar la inscripción aún más o, por ejemplo, poner también un chat para mejorar la comunicación y no depender tanto de llamadas o correos electrónicos. Y esto sería todo.
00:13:45
Perfecto. Bueno, esta presentación no la habéis enviado, si la podéis enviar para que la tengamos también para la evaluación sería perfecto.
00:14:09
Y os veo, vamos a pasar a las preguntas. Bueno, con las preguntas no tenéis que responder de manera muy larga, serían un minutito cada una y bueno, querría un poquito eso que me respondierais si simplemente son para constatar autoría, etc.
00:14:21
Entonces, para Hitor, ¿cómo resolvisteis técnicamente el despliegue del servidor en X10 Hosting que habéis comentado? ¿Tenéis que adaptar algo de código, configuración respecto al entorno local de XAMPP que se suele utilizar para trabajar primero?
00:14:42
Sí, a ver, tuvimos
00:15:02
fue muy sencillo, ¿vale? porque simplemente
00:15:05
es una carpeta
00:15:07
donde tú tienes que meter todo tu proyecto
00:15:09
y luego es verdad que haciendo
00:15:10
Pablo y yo las pruebas no nos funcionaba
00:15:13
correctamente, y ya nos dimos cuenta
00:15:14
de por qué, era porque
00:15:17
cuando la ruta relativa
00:15:18
de que cuando tiene que ir a otra página web
00:15:21
que está enlazada
00:15:23
nosotros creemos que es porque SAM
00:15:23
al final nosotros lo instalamos en un entorno
00:15:26
Windows, entonces la ruta relativa se trata de un poco
00:15:28
distinto en Windows y Linux. Y yo creo que este hosting estaba basado en Linux. Entonces todas las
00:15:31
redirecciones las tuvimos que cambiar. Pues buscamos cómo había que ponerlo y nada, un trabajo un poco
00:15:35
algo porque bueno tuvimos que ir buscando todos los códigos y cambiar, ya te digo, todo lo que te digo yo.
00:15:41
O sea, KHP te dicen, lo primero que se suele declarar son los require, que son las clases que vas a utilizar,
00:15:48
con las que te vas a arreglar. Entonces, ahí tienes que
00:15:55
crear la ruta donde está y bueno, tuvimos que cambiar todas esas rutas.
00:15:58
Vale, perfecto. Para Paula,
00:16:01
en el proyecto se menciona que habéis utilizado
00:16:04
validaciones tanto en el cliente como en el
00:16:07
servidor. ¿Podrías brevemente
00:16:10
explicar cómo habéis implementado
00:16:13
en Javascript esto y qué errores controla exactamente así
00:16:16
de manera breve? Vale, pues
00:16:19
para Javascript lo que nos hemos querido ha sido no juntar
00:16:22
código entonces hemos puesto un script con el enlace para la pantalla de javascript y sobre
00:16:25
todo lo hemos hecho con expresiones regulares para decir pues el dni tiene que tener nueve
00:16:32
números y una el nombre pues eso no puede tener números sobre todo con expresiones regulares y
00:16:40
Y ya te digo, que lo hemos puesto como aparte para que no se mezcle con el código.
00:16:49
Vale. Para Hitor, ¿puedes explicar cómo habéis estructurado la base de datos y cuál fue el criterio para separar, por ejemplo, entidades que tenéis como pedidos históricos, actividades?
00:16:52
Sí, a ver, lo primero, lo central fue, ya te digo, usuario registrado, ¿vale? Entonces, a partir de ahí, del usuario registrado, ya partimos al enlace con el resto de tablas.
00:17:04
El usuario registrado hay que entenderlo como que puede actuar tanto como usuario que he dicho, padre o madre, como administrador. Entonces, a partir de ahí, dependiendo cuál sea tu rol, vas a poder tener esto en una tabla u otra.
00:17:19
Quizás si esto creciese, pues estaría bien crear un usuario registrado del que le dasen ya, digamos, un usuario más específico.
00:17:34
Pero bueno, para primeras, pues pensamos que podría estar todo incluido con un atributo en un, que lo que te dice es que, bueno, sabes que el enum se utiliza para decirle, solo pueden ser distintos tipos.
00:17:41
Vale, o tres o cuatro, o los que sean. Entonces, así lo enlazamos, sí, un poquillo como lo distinguió.
00:17:52
Vale, perfecto. Y bueno, por último, para ambos, habéis tenido un problema dentro del proyecto, que uno de los miembros lo dejó, bueno, son cosas que pueden pasar en la realidad en cualquier proyecto, no solo aquí, sino incluso en trabajos reales.
00:17:59
Y bueno, ¿cómo os organizasteis para redistribuir este trabajo y qué aprendisteis de esta experiencia a nivel de colaboración técnica?
00:18:17
Bueno, yo diría que es que fue
00:18:24
como de repente un poco progresivo
00:18:27
vimos que no recibíamos
00:18:29
respuestas de Adrián, entonces
00:18:31
fue como un poco, oye, pues voy haciendo
00:18:33
esto, pues tú ve haciendo esto
00:18:35
un poco así, hasta
00:18:37
que hicimos la segunda entrega
00:18:39
ya que ya prácticamente estaba todo hecho, pero yo creo
00:18:41
que fue como ir bien
00:18:43
íbamos necesitando cada uno
00:18:45
un poco decir, venga, pues voy a hacer esto
00:18:47
tú vete haciendo esto, fue un poco así
00:18:49
al final, la verdad, porque ya te digo
00:18:51
como que no fue el que nos dijo, oye mira
00:18:53
no voy a poder, que entonces nos hubiéramos
00:18:55
vuelto a reunir y decir, íbamos viendo
00:18:57
que no teníamos
00:18:59
respuesta de Adrián y entonces fue como
00:19:01
voy necesitando esto, pues voy haciendo esto
00:19:03
¿sabes? Claro, yo
00:19:05
creo que nos ayudó bastante
00:19:07
para mí, opinión personal, el lenguaje
00:19:08
PHP, porque el lenguaje PHP
00:19:11
como te reúnes en un archivo lógica de negocio
00:19:13
que eso me encargaba yo un poco más, con una
00:19:15
presentación, pues es verdad que esa presentación
00:19:17
no tenía el CSS
00:19:19
linkado, pero es verdad que sí mostraba
00:19:20
algo ya que tú en pantalla
00:19:23
podías ir viendo, ¿vale? Era una
00:19:25
presentación muy rudimentaria
00:19:27
y quedaba muy mal, ¿no? Pero ya teníamos, digamos,
00:19:29
ya fue, venga, ya tenemos esto,
00:19:31
vamos a hacer la presentación, vamos a
00:19:33
regalar el sistema HTML, pero
00:19:35
al estar con el mismo código nos ayudó bastante.
00:19:37
Que si hubiera sido más
00:19:39
separado, es verdad que a lo mejor no se hubiera
00:19:41
dado. Sí, como que lo teníamos
00:19:43
y había que ir dándole forma.
00:19:46
Vale, perfecto, pues nada,
00:19:47
con esto termina la presentación
00:19:49
voy a cortar la grabación
00:19:51
- Etiquetas:
- Desarrollo de Aplicaciones Web
- Autor/es:
- PEDRO JOSÉ MARTÍNEZ
- Subido por:
- Pedro Jose M.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 1
- Fecha:
- 25 de mayo de 2025 - 12:11
- Visibilidad:
- Clave
- Centro:
- IES CIFP a Distancia Ignacio Ellacuría
- Duración:
- 19′ 55″
- Relación de aspecto:
- 1.49:1
- Resolución:
- 1074x720 píxeles
- Tamaño:
- 75.67 MBytes