Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Juan Pablo e Iván - Desarrollo - 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 junio de 2024 por Mario S.

49 visualizaciones

Descargar la transcripción

Buenas tardes a todos, Iván, Martín y yo, Juan Pablo Caro Peñuela, les vamos a presentar nuestro proyecto de grado, en este caso nuestro proyecto se llama Identifica. 00:00:00
Lo que vamos a ver durante la presentación va a ser la introducción de lo que es Identifica, vamos a ver el análisis del sistema actual, de cuál es el problema y el por qué Identifica creemos que es una buena solución. 00:00:14
y claramente la solución propuesta 00:00:26
cómo funciona la aplicación 00:00:29
y cómo sería la ejecución 00:00:31
en ámbito general a futuro 00:00:33
también vamos a hablar 00:00:35
un poco del desarrollo del proyecto 00:00:37
ya un poco más la parte interna 00:00:38
vamos a hablar de las validaciones y la seguridad 00:00:40
que tiene esta aplicación 00:00:43
también tenemos una sección de desafíos 00:00:44
y soluciones que es donde encontramos 00:00:49
unos problemas 00:00:51
al realizar este proyecto 00:00:53
entonces queremos comentarlo 00:00:55
y por último realizaríamos la presentación 00:00:56
de la página web 00:00:59
primero y después de la aplicación 00:01:01
¿vale? 00:01:03
y por último pues ya algunas conclusiones 00:01:04
y ya las preguntas ¿listo? 00:01:07
¿vale? ¿qué es Identifica? 00:01:09
bueno, Identifica 00:01:11
es una aplicación móvil diseñada 00:01:13
pues para estandarizar la autenticación 00:01:14
de las personas pues a nivel 00:01:17
global ¿vale? 00:01:19
ya que actualmente 00:01:20
en el ámbito de internet 00:01:22
como cada vez es un mundo más interconectado 00:01:24
y que va creciendo a gran escala. 00:01:27
Asimismo, todos los días se aumenta lo que es el fraude, 00:01:30
las estafas, la suplantación de identidad 00:01:35
y entre muchas otras cosas, ya sea para estafar a la gente, 00:01:37
para robar o para sacar información, X o Y. 00:01:41
En este caso, lo que falta son métodos estandarizados y seguros 00:01:46
para que las personas puedan confiar 00:01:51
de que no les va a pasar nada malo frente a internet, 00:01:53
ya sea por correos electrónicos, por teléfonos o por redes sociales. 00:01:58
El objetivo de Identifica es precisamente 00:02:02
estandarizar la autenticación de las personas a nivel global, 00:02:05
pero entonces de una manera muy eficiente, muy segura 00:02:09
y que da confianza a los usuarios 00:02:12
para que no caigan en estos fraudes o estafas. 00:02:15
el análisis del sistema actual 00:02:19
que son los problemas de la seguridad de internet 00:02:24
como podemos ver en las redes sociales 00:02:26
cada una tiene sus propios métodos de validación 00:02:30
por ejemplo, Facebook o Twitter 00:02:34
cada una de ellas decide cuál usuario es real 00:02:37
y los verifica con un chulito azul de estos de Twitter 00:02:39
o Facebook y asimismo Instagram 00:02:43
pero cada una tiene un sistema propio 00:02:45
entonces Instagram valida que ese usuario es real 00:02:48
dentro de Instagram 00:02:51
y ya está, Facebook valida que es usuario real 00:02:52
dentro de Facebook, lo mismo Twitter 00:02:55
y frente a los correos o a los 00:02:56
teléfonos claramente tampoco hay una validación 00:02:59
estandarizada de saber 00:03:01
a quién le pertenece, entonces 00:03:02
ahí es donde nosotros 00:03:04
vimos esa necesidad 00:03:06
de una aplicación que centralice 00:03:09
todo eso y podamos 00:03:11
centralizar 00:03:13
todas las redes sociales, los correos 00:03:14
los teléfonos de una 00:03:17
persona mediante identifica 00:03:19
que es nuestra solución. 00:03:20
Esta sería la solución propuesta. 00:03:24
Tenemos el problema con el usuario 00:03:31
o contacta, mejor dicho, con el usuario 00:03:38
por correo, por teléfono 00:03:40
o por una llamada 00:03:42
o por un mensaje en una red social. 00:03:44
El objetivo de Identifica es 00:03:47
acabar con esos estafadores, 00:03:48
o sea, digamos, acabar con el anonimato en Internet, 00:03:51
tener a todos los usuarios registrados correctamente 00:03:54
para identificarles 00:03:57
y así crear de un entorno, de un medio digital, o sea, hacer un entorno más seguro. 00:03:58
¿Qué uso de Identifica? 00:04:05
Pues bueno, cuando un usuario recibe un correo electrónico, una llamada telefónica 00:04:08
o un mensaje en alguna red social de tipo sospechoso, va a acudir a Identifica 00:04:12
para buscar si ese correo, si esa dirección de correo electrónico, 00:04:20
si esa llamada de teléfono o el mensaje por red social 00:04:25
pertenece realmente a la persona que está detrás de esa cuenta 00:04:29
o de ese número de teléfono. 00:04:33
Entonces, así poder saber si se trata de una estafa, 00:04:35
es decir, si el usuario existe realmente o no existe. 00:04:38
Vale, perfecto. 00:04:43
Identifica lo tenemos que ver como una red de colaboración. 00:04:45
Claramente, cuando cualquier persona se registre 00:04:48
en la aplicación Identifica, 00:04:51
automáticamente no van a parar 00:04:52
de llegarnos correos de spam 00:04:55
ni van a parar de llamarnos 00:04:57
o escribirnos por redes sociales 00:04:59
gente falsa, obviamente eso no va a pasar 00:05:01
pero lo que sí hacemos cuando nos registramos 00:05:03
en Identifica es 00:05:05
colaborar en la 00:05:07
comunidad, así de esta forma 00:05:09
todas las personas que se registren 00:05:11
cada vez que se registren vamos a 00:05:13
entre todos a ayudarnos a 00:05:15
cada vez quitar el anonimato de Intermedia 00:05:17
que haya menos fraude, porque si yo me 00:05:19
registro en Identifica, cualquier persona 00:05:21
de aquí a mañana puede buscar cualquier correo 00:05:23
que piense que soy yo 00:05:25
pero sabe que si no estoy yo registrado en Identifica 00:05:27
entonces puede que sea un correo 00:05:29
falso, más adelante vamos a explicar 00:05:31
esta situación para 00:05:33
ejemplos de casos reales, pero 00:05:35
la idea principal aquí es que 00:05:37
Identifica es una red 00:05:39
de colaboración en una comunidad 00:05:41
y así entre todos vamos a acabar con 00:05:43
este tema de las estafas o claudes 00:05:45
vale 00:05:47
un diagrama de planificación 00:05:50
de cómo vemos que sería la última semana de marzo en la que hicimos un análisis. 00:05:53
La siguiente semana ya sería un diseño de la arquitectura y del diseño que queríamos que tuviera la aplicación 00:06:05
para después continuar con una implementación de la base de datos y caché. 00:06:18
Las tres semanas siguientes ya sería el desarrollo del backend, sería una estructura inicial 00:06:25
porque luego hemos tenido que ir cambiando cosas y modificando 00:06:31
las tres siguientes 00:06:34
sería el desarrollo del frontend 00:06:36
igual, sería una base 00:06:37
y luego hemos ido modificando cosas 00:06:40
para las dos semanas siguientes 00:06:42
ya sería la integración 00:06:44
del backend y el frontend 00:06:46
y ya la semana pasada que fue la última 00:06:47
ya fue la fase de pruebas 00:06:50
y la puesta en marcha para ir 00:06:52
perfeccionando cosas 00:06:54
Vale, las tecnologías que utilizamos 00:06:56
para nuestra aplicación 00:06:58
fue en la base de datos 00:07:00
a Mongo como una base de datos no relacional 00:07:02
y a Redis para el uso del caché 00:07:04
también en el backend 00:07:06
utilizamos el lenguaje Java y Spring Boot 00:07:08
en el frontend 00:07:10
utilizamos el lenguaje Kotlin con Android 00:07:12
Jetpack Compose y utilizamos 00:07:14
Firebase para el tema de 00:07:16
autenticación de notificaciones 00:07:17
y de almacenamiento de imágenes 00:07:20
y Retrofit para la comunicación 00:07:21
con el backend ¿vale? también 00:07:24
hicimos una 00:07:25
página web y esta página web 00:07:28
está en los lenguajes básicos de HTML, CSS, Javascript 00:07:30
y diseñada con Bootstrap. 00:07:33
Vale, entonces aquí más o menos vamos a explicar 00:07:36
la arquitectura de cómo funciona la aplicación. 00:07:38
Simplemente, en la arquitectura general 00:07:41
tenemos al servidor Spring Boot, 00:07:44
que lo que tiene dentro de sí es un modelo de datos. 00:07:46
Este modelo tiene unos repositorios. 00:07:49
Los repositorios se van a comunicar con la base de datos, 00:07:51
pero como implementamos Redis Cache, 00:07:54
entonces lo que hacemos es lo siguiente. 00:07:56
cuando hacemos una petición al repositorio 00:07:57
él va a preguntar 00:08:00
si la base de datos ya tiene 00:08:02
ese dato almacenado 00:08:04
si es así, en vez de ir 00:08:06
hasta la base de datos, nos lo trae 00:08:08
directamente de Redis Cache porque ya lo va a tener en el 00:08:10
caché y nos lo devuelve 00:08:12
así disminuimos el tiempo de carga 00:08:14
de las peticiones, si en tal caso 00:08:16
solicitamos una petición 00:08:18
que no está en el caché, entonces 00:08:20
automáticamente se va a la base de datos, se carga 00:08:22
el caché y así mismo devuelve el dato 00:08:24
para seguir mejorando lo que es el tema de la comunicación 00:08:26
y reducir los tiempos de demora en las respuestas. 00:08:32
Asimismo, estos repositorios se comunican con los servicios 00:08:36
y los servicios los tenemos comunicados 00:08:39
con un servidor de llamadas 00:08:43
porque ya nuestra aplicación para el tema de la validación 00:08:44
utilizamos un servidor de llamadas 00:08:47
para poder validar que la persona no es un robot. 00:08:48
Y asimismo, pues ya están comunicados también 00:08:52
con los controladores. 00:08:53
estos controladores ya se comunican por medio de retrofit 00:08:54
ya con lo que es Kotlin con Android Studio 00:08:57
y ya utilizamos pues simplemente 00:09:00
lo que es Firebase para el tema de autenticación 00:09:02
y notificaciones para que el usuario final 00:09:04
pues ya tenga toda la arquitectura 00:09:06
o sea pues para que le llegue todo al usuario final 00:09:08
¿vale? esta sería como la explicación de la arquitectura 00:09:10
más o menos en general sin entrar mucho a detalle 00:09:12
aquí voy a explicar el tema de Redis Cache 00:09:14
precisamente porque nosotros lo que hacemos es 00:09:20
cuando, por ejemplo, buscamos 00:09:23
un objeto 00:09:26
cuando solicitamos un objeto, una petición 00:09:29
get 00:09:31
con este cachable lo que hacemos es 00:09:32
ver si está en el caché de 00:09:35
Redis, ¿vale? 00:09:37
Si está, lo trae, y si no, pues entonces va a ir 00:09:38
a la base de datos. Pero, ¿qué pasa? 00:09:41
Que cada vez que nosotros insertamos datos 00:09:43
en la aplicación, cada vez que actualizamos 00:09:45
o cada vez que eliminamos, este caché 00:09:47
va a quedar incompleto. Entonces, en las que 00:09:49
son las peticiones de insertar, actualizar 00:09:51
o eliminar, lo que hacemos es 00:09:53
con el caché evict, recargamos 00:09:55
el caché, lo refrescamos para que vuelva 00:09:57
a estar con todo 00:09:59
lo último que se haya hecho 00:10:02
ya sea una actualización, una inserción 00:10:03
o una eliminación 00:10:05
entonces de esta forma se comporta 00:10:07
dentro de nuestros controladores 00:10:09
dentro de nuestros servicios 00:10:11
se controlan así 00:10:13
el caché, para eliminar o para 00:10:14
actualizar el caché, que es más o menos 00:10:17
este esquema que tenemos aquí, si hay datos 00:10:19
en la caché, pues entonces simplemente 00:10:21
nos da la respuesta a RAIDs y si no hay datos 00:10:22
lo que hacemos es consultar a la base de datos 00:10:25
actualizamos la caché de RAIDs y damos 00:10:27
la respuesta al usuario, vale 00:10:29
aquí tenemos 00:10:30
un prototipo funcional de la aplicación 00:10:33
si quieren, lo tenemos para 00:10:35
que lo puedan ver, es que es un poco grande y no se ve 00:10:37
a detalle, pero si lo quieren 00:10:39
tener un poco más cerca 00:10:40
este prototipo, principalmente 00:10:42
tenemos cuatro clasificaciones 00:10:48
que son las pantallas de inicio, que son 00:10:50
las amarillas, que son las pantallas de inicio 00:10:52
de registro, tenemos las pantallas azules 00:10:54
que son las del uso normal de la aplicación 00:10:56
cuando un usuario ya está registrado en la aplicación 00:10:58
o sea, que entra todas las 00:11:00
funcionalidades de por sí 00:11:02
tenemos las pantallas verdes, estas pantallas 00:11:03
son las de validación 00:11:06
el usuario no va a poder hacer uso de la aplicación 00:11:07
hasta que no se valide 00:11:10
y tenemos también lo que es la pantalla negra 00:11:11
nuestra aplicación 00:11:14
lo que tiene es dos accesos 00:11:16
un acceso como persona registrada y un acceso 00:11:18
como invitado, como anónimo 00:11:20
entonces la pantalla negra lo único que tiene 00:11:21
es acceder como invitado. 00:11:24
¿Qué diferencia hay? 00:11:26
Cuando ingresamos a la aplicación como usuario registrado, 00:11:27
tenemos la opción de, obviamente, registrar todos nuestros correos, 00:11:32
nuestras redes sociales, nuestros teléfonos 00:11:35
y, asimismo, hacer consultas en nuestra base de datos de Identifica. 00:11:36
Pero si accedemos por medio del anónimo, 00:11:41
lo único que vamos a tener es el acceso a las búsquedas. 00:11:42
No vamos a tener nada del perfil, 00:11:46
ni vamos a poder registrar correos ni teléfonos a nuestro nombre. 00:11:47
Simplemente es para hacer búsquedas. 00:11:50
De pronto yo quiero buscar un correo a ver si ese correo está registrado a nombre de alguna persona o no, ¿vale? 00:11:52
La acción está diseñada para la acción en español, dependiendo de... 00:11:57
Vale, antes de continuar, todo esto que hemos hablado y así mismo como en la memoria, 00:12:10
también está el acceso al código del proyecto, que bien pueden acceder tanto al backend como al frontend. 00:12:16
Ahí está también bien a detalle cualquier cosa, por si hay alguna duda o algo. 00:12:21
Pero bueno, solo era para detallar ese punto, ¿vale? 00:12:26
vale, validación y seguridad 00:12:28
vale, entonces aquí la pregunta es 00:12:31
¿cómo logra identifica ese objetivo de 00:12:32
validar a las personas? entonces 00:12:34
la idea es que identifica, establezca 00:12:36
un proceso pues seguro y confiable 00:12:38
para saber que una persona es quien dice ser 00:12:39
y que no es un robot, vale 00:12:42
entonces, tenemos dos validaciones, la validación 00:12:44
número uno es, ¿cómo sabemos que no es un robot? 00:12:46
pues entonces lo hacemos por medio de la 00:12:48
de los sentidos humanos 00:12:50
de los cinco sentidos, por ejemplo 00:12:52
en este caso utilizamos lo que es el oído 00:12:54
y el razonamiento, ya que 00:12:56
en la validación 1 lo que hacemos es una llamada por 00:12:57
Whatsapp, esta llamada dentro 00:13:00
de sí tiene un reto matemático 00:13:01
aleatorio, nosotros en nuestra clase 00:13:04
de identifica, en nuestras clases de 00:13:05
modelos, tenemos una clase 00:13:08
que es de retos matemáticos 00:13:10
y lo que hacen es generar 00:13:12
retos matemáticos aleatorios, cada vez 00:13:13
que se lanza una llamada se genera un reto matemático 00:13:16
aleatorio, le llaman 00:13:18
por Whatsapp, la persona debe contestar 00:13:20
dice algo, lo que sea 00:13:21
le dice, bueno, dime cuánto es 00:13:23
la suma de 5 más 5 00:13:26
o cuánto es 5 por 2, x 00:13:28
y debe contestar la respuesta 00:13:30
en la aplicación, si contesta la respuesta 00:13:32
correcta pasa a la validación 2 00:13:34
claramente si la contesta bien es porque es una 00:13:36
persona, ya que tiene que utilizar 00:13:38
el tema del oído, del razonamiento 00:13:40
del contestar, evitamos ahí 00:13:42
ya cortamos como el que se registre 00:13:44
no sea un robot, y en la validación 2 00:13:46
lo que hacemos es tomar una captura 00:13:48
del rostro para que sea 00:13:50
saber que por si es una persona 00:13:52
nosotros a principio 00:13:54
queríamos poder esa captura 00:13:57
después compararla con otra captura 00:13:58
de un documento de identidad y saber si 00:14:01
esa persona que está ahí en esa foto 00:14:02
si existe y si está validada y no se trata 00:14:04
de una suplantación, lastimosamente 00:14:06
por los tiempos que hemos tenido 00:14:08
no hemos podido llegar a implementar la parte 00:14:10
del DNI de validar 00:14:12
si esa persona existe, por el momento solo tenemos 00:14:14
la parte de la validación del rostro 00:14:16
pues para que sea una persona 00:14:18
¿vale? 00:14:19
usuarios para que cuando se haga una petición a buscar un usuario nos devuelva solo los datos que 00:14:30
necesitamos por ejemplo tenemos la clase de usuario con el teléfono al final es bastante 00:14:39
personal el email o datos del perfil pues hemos creado la clase de usuario de teo con solamente 00:14:49
los datos que queremos mostrar 00:14:56
cuando se busque al usuario. 00:14:58
Vale, los desafíos 00:15:03
y soluciones. Nosotros tuvimos 00:15:04
un desafío cuando... 00:15:06
Nosotros tuvimos un desafío cuando 00:15:07
empezamos la aplicación, cuando queríamos 00:15:10
poner el servidor en marcha y es que no tenemos 00:15:12
acceso a la cuenta de AWS 00:15:14
y por ese motivo no pudimos subir el servidor 00:15:15
a la nube, pero lo que encontramos fue la solución 00:15:18
de crear una URL pública desde 00:15:20
Visual Studio Code que apunta a mi 00:15:22
servidor local. En este caso, la aplicación 00:15:24
que está ahorita en línea 00:15:26
y, asimismo, la página web está apuntando a mi dirección local 00:15:27
desde una URL pública de Visual Studio Code 00:15:31
por medio de un túnel de acceso que se llama Visual Studio Code, ¿vale? 00:15:33
Entonces, así pudimos solucionar ese desafío. 00:15:38
Vale, aquí vamos a presentar la página web. 00:15:42
...que tiene como administrador ZPanel. 00:15:53
ZPanel se puede administrar la página web, los correos electrónicos, 00:15:57
aplicaciones también 00:16:01
paneles 00:16:06
datos de estadísticas 00:16:08
también, entonces lo que hacemos 00:16:10
es subir el archivo que 00:16:12
tenemos 00:16:14
del archivo 00:16:14
con la página web 00:16:18
a cPanel, es muy importante 00:16:19
tener el index.html 00:16:21
para que la página pueda 00:16:23
funcionar 00:16:25
os muestro 00:16:27
la página rápidamente 00:16:29
este sería el ingres 00:16:31
que daría la bienvenida a la página 00:16:46
si subes Juan Pablo 00:16:49
arriba a la 00:16:50
derecha 00:16:53
tenemos un botón 00:16:53
que sería para descargar la APK 00:16:57
en un código QR 00:16:59
desde aquí con el móvil se podría descargar 00:17:00
la APK directamente 00:17:02
se identifica, bueno pues 00:17:04
comenta un poco el funcionamiento 00:17:06
de la aplicación 00:17:09
¿qué te gustaría 00:17:11
a buscar, estas tres páginas 00:17:13
podemos buscar a un usuario por teléfono, por email 00:17:14
o por red social, si buscamos a un teléfono 00:17:17
por email 00:17:19
poniendo prueba 00:17:20
roberidentifica.com por ejemplo 00:17:22
este es un usuario que está registrado en nuestra base de datos 00:17:24
al buscarlo, nos va a dar 00:17:27
nos tiene que decir si el usuario 00:17:29
existe o no, en este caso nos dice bueno 00:17:31
este correo le 00:17:32
pertenece al usuario X 00:17:35
y con el identificador 00:17:36
y es un número que cada persona tiene único para 00:17:38
identificar a las personas 00:17:41
bueno aquí hemos añadido una API externa que es del tiempo en el que hemos puesto las diferentes ciudades españolas 00:17:42
y el tiempo que se va actualizando cada día 00:17:58
en el javascript las llamadas las hacemos con un fetch 00:18:02
a la API 00:18:06
aquí hemos añadido, bueno para que veáis 00:18:07
como va cambiando 00:18:14
esta parte 00:18:15
todos los días, hemos puesto 00:18:18
datos del 10 de junio, las temperaturas 00:18:20
del 14 de junio 00:18:23
y que también se actualiza el mismo día 00:18:24
el lunes a las 10 00:18:26
tenía estos valores y luego con la tarde 00:18:28
a las 6 y cuartos 00:18:31
cambió la temperatura 00:18:32
es decir que se va actualizando 00:18:34
vale 00:18:36
vale, ahora vamos a hacer la presentación 00:18:37
de la aplicación, vale 00:18:42
para presentar la aplicación, ustedes pueden 00:18:43
no, ahí estoy, ustedes pueden 00:18:46
entrar a la página web, descargarla por el QR 00:18:47
o también escaneando este QR 00:18:50
directamente, vale, voy a compartir la pantalla 00:18:52
de mi móvil, para que veamos 00:18:54
la aplicación, vale 00:18:56
este es mi móvil, entonces 00:19:05
yo ya tengo 00:19:07
la aplicación descargada, vale, la tengo instalada 00:19:09
entonces al yo abrirla, tenemos lo que 00:19:11
es la pantalla de acceso 00:19:13
como les comentaba, podemos ingresar 00:19:14
por el login normal registro identifica 00:19:16
podemos ingresar por medio de Google 00:19:18
o también podemos ingresar como invitados 00:19:20
en este caso 00:19:22
voy a ingresar directamente 00:19:23
con Google 00:19:25
si yo ingreso con Google 00:19:27
lo que estamos haciendo aquí es 00:19:29
directamente 00:19:31
selecciono mi cuenta y lo que hacemos es 00:19:32
recoger los datos que tiene Google 00:19:36
en su base de datos y pasarlos a nuestra base 00:19:37
de datos, entonces apenas ingreso 00:19:39
como es la primera vez que ingreso me dice 00:19:41
no tengo todavía el registro 00:19:43
completado, las validaciones, ¿vale? 00:19:45
Entonces me explica un poco que vamos a hacer 00:19:48
dos procesos de validaciones para poder 00:19:50
hacer uso de la aplicación normal. 00:19:51
Empiezo las validaciones, entonces me dice 00:19:54
registro un número de teléfono. Al yo registrarme 00:19:56
con Google, no pude, 00:19:58
no tiene mi número de teléfono, por lo tanto 00:20:00
voy a 00:20:02
insertar el número de teléfono. 00:20:03
Un momento. Necesitamos 00:20:06
el número de teléfono que sea de WhatsApp, ya que la llamada 00:20:11
que va a recibir el usuario es vía WhatsApp. 00:20:13
¿vale? entonces inserto mi número de teléfono 00:20:14
¿vale? dice que el número 00:20:17
de teléfono fue insertado correctamente, perdón si está 00:20:19
en inglés, sino que el móvil está en inglés, pero bueno 00:20:21
la validación 1, entonces me dicen 00:20:23
listo, para este proceso te vamos a llamar con un reto 00:20:25
matemático, entonces debes contestar 00:20:27
la respuesta, vamos a empezar la validación 00:20:29
y me dice listo 00:20:31
te llamarán pronto, entonces yo acá tengo 00:20:33
mi móvil 00:20:35
a ver si no nos hace quedar mal 00:20:36
¿me están llamando? 00:20:42
¿contesto? 00:20:47
¿aló? ¿aló? 00:20:50
se demora un poco 00:20:54
vale, en este caso 00:20:55
yo soy un usuario que me equivoqué y pongo 3 00:21:09
no pongo el resultado correcto, si yo le doy 00:21:11
a validar respuesta, me dice que la respuesta es inválida 00:21:13
y tiene que volver a repetir el proceso 00:21:16
entonces volvemos a hacer la validación 00:21:17
en este caso me van a volver a llamar 00:21:19
y la idea es contestar de forma correcta 00:21:21
vale 00:21:31
9 más 4 00:21:32
esta ya es distinta, entonces 9 más 4 00:21:54
ya sería 13 00:21:56
vamos a ver, validamos la respuesta 00:21:57
entonces nos va a decir que la validación es exitosa 00:22:00
si el usuario se demora más de 2 minutos en contestar 00:22:02
la respuesta, el reto también se cancela 00:22:04
porque el reto matemático 00:22:06
detrás tiene un tiempo de validación 00:22:07
de dos minutos, entonces si pasa también los dos minutos 00:22:10
y no ha contestado bien, y así 00:22:13
conteste bien, después de pasar dos minutos 00:22:14
se genera otra vez otro reto matemático 00:22:17
seguimos con la validación dos, para la validación 00:22:18
dos tenemos lo que es la captura del rostro 00:22:20
entonces 00:22:23
la idea es capturar lo que es 00:22:24
la cara del rostro 00:22:26
y posteriormente la idea era poder 00:22:28
validar este rostro con el de 00:22:30
un documento de identidad 00:22:32
por temas de tiempo no hemos podido lograr 00:22:33
esa última validación, por lo tanto simplemente 00:22:36
con enviar un rostro a la aplicación 00:22:39
ya nos da como válidos 00:22:41
y podemos ya hacer uso de la aplicación 00:22:42
que se identifica, dentro de sí tiene 00:22:45
para poder buscar por correos, por ejemplo 00:22:47
si yo busco mi correo, que es el 00:22:49
con el que me acabé de registrar 00:22:51
entonces lo busco y me dice, vale, este 00:22:52
correo le pertenece al usuario Juan Pablo Caro 00:22:55
con el identificador 9227 00:22:56
que es único para siempre 00:22:59
pero, ¿qué pasa? 00:23:00
las personas solo van a aparecer 00:23:03
en las búsquedas cuando están validadas 00:23:05
porque yo me puedo registrar pero no me 00:23:06
valido, ese correo y esos datos 00:23:08
de esas personas no van a aparecer, hasta que las personas 00:23:10
no estén validadas, no podemos dar fe 00:23:12
de que es una persona real 00:23:14
¿vale? en este caso aquí accedemos al 00:23:16
perfil 00:23:18
pero para el perfil aquí tenemos 00:23:19
ya para, se pueden cambiar foto de 00:23:22
perfil 00:23:24
aquí se 00:23:25
cambia la foto de perfil y también 00:23:28
automáticamente y también se pueden 00:23:30
editar los datos del perfil y 00:23:32
vale 00:23:34
así mismo todo está interconectado 00:23:35
si ahorita mismo en la página web 00:23:47
si yo elimino un correo mío propio 00:23:49
en la página web también me van a decir que ese correo no me 00:23:51
pertenece, aquí agrego 00:23:53
las redes sociales por ejemplo 00:23:59
aquí la idea es pegar el link de acceso a Facebook 00:24:00
eso es para que se hagan una idea 00:24:03
de la red social que también es lo más importante 00:24:05
Y bueno, digamos que la aplicación 00:24:07
como tal 00:24:12
Sí, sí, solo es para 00:24:13
Vale, pues ya estaría 00:24:16
¿Quedarían la parte de las 00:24:30
conclusiones o preguntas? 00:24:32
Bueno, aquí tenemos un ejemplo 00:24:35
de los casos reales 00:24:36
ya ya 00:24:38
es que 00:24:39
perdón, perdón 00:24:41
ya está, ya está 00:24:44
sí, sí, lo quito 00:24:45
a ver, a nivel presentación 00:24:47
no la habéis preparado 00:24:55
está, has hablado 00:24:56
mucho más Juan Pablo 00:24:59
y eso no, vale 00:25:00
a nivel de tiempo, pues nada 00:25:04
que decir 00:25:06
sí, es mucho contenido 00:25:06
de por sí, nada que decir 00:25:10
vale 00:25:11
a nivel de la aplicación 00:25:13
decís que 00:25:15
registráis a todos los estafadores 00:25:19
¿cómo los identificáis? 00:25:23
no, precisamente 00:25:26
bueno, contestad tú tranquilo 00:25:27
la idea es que cada usuario, cada persona 00:25:29
se registre con sus datos 00:25:32
para si en un futuro 00:25:33
alguien se hace pasar por ti 00:25:36
tiene que cambiar 00:25:38
algo tu correo 00:25:40
entonces si lo buscas vas a decir 00:25:41
ah no, este no es Mario 00:25:44
porque tú ya tienes tu email registrado 00:25:45
no sé si me explico 00:25:48
entonces si cambian alguna letra 00:25:49
de tu email 00:25:52
el usuario puede saber 00:25:53
que no eres tú y que le pueden estar 00:25:55
vale y entonces 00:25:57
si queréis 00:25:59
hacer una red de usuarios 00:26:00
para que detecten 00:26:05
que haya una cierta trazabilidad 00:26:06
¿y eso con blockchain se podría hacer? 00:26:10
Sí, precisamente 00:26:16
esa es la conclusión de potencial 00:26:17
de escalabilidad 00:26:19
ahorita tenemos una arquitectura modular que es escalable 00:26:21
pues si llega a crecer la red, pero 00:26:23
la pregunta es, los usuarios van a confiar 00:26:25
en Identifica cuando nosotros podemos 00:26:27
tener acceso a los datos que la gente se registra 00:26:29
la idea es poder 00:26:31
generar un sistema descentralizado 00:26:32
de esta forma, obviamente ya 00:26:34
los datos van a estar protegidos y nadie va a 00:26:37
tener acceso a esos datos 00:26:39
¿con blockchain sí? 00:26:40
correcto, con el blockchain, pero 00:26:42
ya es un tema que obviamente 00:26:44
nosotros lo vemos más a futuro 00:26:46
pero no lo aplicamos ahorita mismo 00:26:48
claramente 00:26:50
¿Luego habéis usado Bootstrap CSS? 00:26:51
Eso es para 00:26:57
la página web que fue un extra, nuestro potencial 00:26:58
es la aplicación 00:27:00
¿Habéis usado las dos? 00:27:01
No, bueno, lo que pasa 00:27:04
es que con el CSS se hacen algunos ajustes 00:27:08
más detallados de ciertos 00:27:10
DIPs o contenedores 00:27:12
¿Bootstrap también? 00:27:13
lo utilizamos en conjunto 00:27:15
no, bootstrap no la modificamos 00:27:17
en conjunto, pero simplemente es 00:27:19
un tema de la página web que no es nuestro potencial 00:27:20
nuestro potencial es la aplicación 00:27:23
¿cuándo usáis esa tecnología? 00:27:25
¿y luego usáis el backend? 00:27:30
¿y en el backend usáis algún tipo de contexto? 00:27:32
¿de contexto en qué sentido? 00:27:35
cuando lo veáis en el backend 00:27:36
cuando lo veáis cómo funciona 00:27:38
crea un token, crea un algo 00:27:40
claro, cuando nos lo veamos 00:27:42
No, cuando nos... 00:27:43
No, no, no, por eso. 00:27:46
Cuando nos logueamos, ingresamos por medio 00:27:49
del registro de la aplicación, guardamos los datos 00:27:51
en nuestra aplicación y utilizamos 00:27:53
la autenticación de Firebase. Y asimismo 00:27:55
Google, cuando accedemos con Google, 00:27:57
eso lo hacemos con Firebase y 00:27:59
capturamos los datos. Y solo 00:28:00
cuando estén logueados en nuestra aplicación 00:28:03
es cuando podemos hacer uso 00:28:05
de esta navegación. La primera vez 00:28:06
va a las validaciones, después de las 00:28:09
validaciones, ya puede utilizar la aplicación 00:28:11
de uso normal, lo que es para registrar 00:28:13
correos electrónicos, redes sociales, teléfonos 00:28:15
o para realizar búsquedas 00:28:17
¿Y luego en vuestra página? 00:28:19
Eso fue para poder hacer una demostración 00:28:23
de que 00:28:25
podemos 00:28:26
No, es solamente una demostración de que podemos 00:28:28
trabajar con los hotas de APIs externas 00:28:31
y poder mostrarlos 00:28:33
en la página web 00:28:35
Vale, yo ya 00:28:36
por ejemplo, me decís 00:28:38
vale, hago una llamada, le hago una foto 00:28:58
y demás, que me pida a mí coger una 00:29:00
inteligencia artificial, simularla a cada 00:29:02
otro, simularle el DNI 00:29:04
Sí, claro 00:29:06
Sí, nosotros 00:29:06
nosotros queríamos poder haber hecho 00:29:10
de pronto un poco más a profundidad el tema 00:29:12
de la validación, pero por los tiempos 00:29:14
se nos fue un poco difícil, aún así 00:29:16
somos conscientes de que claro, la aplicación 00:29:17
no está del todo 00:29:20
terminada, faltan 00:29:21
muchas mejoras en el proceso de validación 00:29:24
porque claramente, ahorita mismo 00:29:26
muchas personas pueden registrarse 00:29:28
de forma 00:29:30
no, no, claro 00:29:31
el correo electrónico, el tema es ese 00:29:43
que cuando nosotros nos registramos 00:29:45
en Identifica, ayudamos es a la 00:29:47
comunidad, para que de aquí a mañana 00:29:49
cualquier persona vea Identifica 00:29:51
como un banco mundial de datos y diga 00:29:53
me llegó un correo de una persona que dice 00:29:55
Juan arroba Gmail, y yo pienso 00:29:57
ah, es Juan Pablo Caro, pero entonces 00:29:59
no estoy seguro, cojo ese correo, lo copio 00:30:01
lo pego en el buscador de identifica y busco 00:30:03
si me dice, ese correo no le pertenece a nadie 00:30:05
yo digo, pues puede ser una estafa, porque 00:30:07
si no está registrado en identifica, no es una 00:30:09
persona real y tampoco es una persona 00:30:11
que quiera dar su identidad, pero si yo 00:30:13
copio ese correo y lo pego en identifica 00:30:15
y lo busco, y me sale, este correo le pertenece 00:30:17
al usuario Juan Pablo, yo sé que es una persona real 00:30:19
porque ha pasado validaciones y también 00:30:21
de que no se trata de una suplantación, porque ha dejado 00:30:23
sus datos de DNI, que si quiere estafar 00:30:25
igual tenemos los datos y se puede denunciar 00:30:27
entonces... 00:30:29
Soy de Banquia, y es que lo pone, lo pone Banquia, lo pone CaixaBank, y es que pone CaixaBank. 00:30:34
Puedo coger cualquier usuario de ahí y mandar un correo. 00:30:41
Claro, es una máscara, sí, del correo. 00:30:48
Las páginas digitales y demás. 00:30:51
Sí. 00:30:52
Por ejemplo, cada usuario que tiene una clave pública la sube, y eso sí que es, vamos, firma un mensaje, 00:30:52
y simplemente con mirar el mensaje y mirar si la firma coincide, no hay que hacer nada más. 00:31:03
Digamos que nuestra aplicación no la vimos enfocada en ese aspecto, pero sí, es verdad, esas anotaciones. 00:31:07
La enfocamos más en el aspecto de comunidad, de poder todos registrar los datos de manera segura en una aplicación a nivel global 00:31:14
y que todas las personas sepan que en Identifica los datos que están son de personas reales. 00:31:22
Y los que no aparezcan pueden ser posibles estafas o suplantaciones. 00:31:26
Me gusta más lo que es el diseño de la aplicación, todo el software, todo lo que ha visto la mano, 00:31:30
que realmente nadie me evita coger un mito de imágenes de Mario y mandarle una foto. 00:31:37
A mí que decir, mira, que Mario dice que no se invita a hacer nada de todo. 00:31:52
Sí, puede que tenga varios aspectos de mejora. 00:31:57
O sea, en el momento que no metas firmas digitales y cosas así, todo esto se cae, o sea, es súper fácil. 00:32:02
Sí, en ese aspecto 00:32:07
digamos que internamente la autenticación 00:32:12
de la aplicación sí está validada 00:32:13
por Firebase y este tema ya maneja 00:32:15
los tokens internos, pero ya 00:32:17
frente al resto de personas 00:32:19
efectivamente no tenemos las claves 00:32:21
Sí, el diseño de la base de datos 00:32:22
¿Puedo mostrar rápido? 00:32:30
Vale, en el diseño de la base de datos lo que tenemos 00:32:51
las clases de perfil 00:32:54
de usuario, perfil 00:32:57
correos, teléfonos 00:32:58
y retos matemáticos 00:33:02
también está la clase de redes sociales 00:33:03
pero como no hemos insertado una red social todavía 00:33:05
pues no nos aparece aquí la red social 00:33:07
entonces por ejemplo 00:33:09
la parte aquí interesante 00:33:11
puede ser también la del reto matemático 00:33:13
aquí lo que es el reto 00:33:15
matemático como se pueden dar cuenta 00:33:21
lo que generamos es un ID del usuario 00:33:23
para identificar a quien le pertenece el reto 00:33:25
matemático, los dos números 00:33:27
y la operación a realizar 00:33:29
y esto es lo que se le envía como tal 00:33:31
al usuario para que se valide. 00:33:33
También generamos lo que es el tiempo de creación 00:33:36
para saber si es superior a dos minutos 00:33:38
y en tal caso darle como que está mal la validación 00:33:40
y que repita nuevamente el proceso. 00:33:44
Asimismo, el usuario lo que tiene en sí es 00:33:46
el identificador que se genera de manera aleatoria y única. 00:33:50
El nombre tiene un DRF directo con teléfono 00:33:59
y con correo, con email. 00:34:02
y también con perfil, ¿vale? 00:34:05
y tiene un array de dos validaciones 00:34:07
que son las validaciones que tenemos las dos 00:34:10
de la llamada y la foto 00:34:12
si las dos validaciones están en true 00:34:13
es cuando podemos dejar de darle acceso a la aplicación 00:34:15
aquí son dos objetos 00:34:18
este es la, por ejemplo, la validación de la llamada 00:34:23
que está en falsa y lo mismo el otro objeto, me imagino 00:34:28
entonces, así como está, por ejemplo, no podría acceder a la aplicación 00:34:30
hasta que las dos validaciones estén en true, ¿vale? 00:34:33
Y lo que tienen, por ejemplo, ya los perfiles o los, digo, los correos, los teléfonos y eso, lo que hace simplemente es apuntar a un, por medio del ID del usuario, del perfil de usuario, apunta a que este correo le pertenece a este usuario. 00:34:35
Entonces, así podemos pintar todas las, los datos que tenga la persona en su propio perfil, ¿vale? 00:34:53
utilizamos un servidor externo 00:34:59
nosotros para todo este proceso 00:35:04
hemos hablado con una empresa 00:35:06
que se llama Ablerta 00:35:09
que es una aplicación de seguridad también 00:35:10
para terceros 00:35:12
y de ellos nos interesaba precisamente 00:35:13
el tema de que ellos tienen 00:35:16
este tema de la validación de llamadas 00:35:18
entonces con ellos hablamos 00:35:19
para que nos pudieran 00:35:22
prestar ese API externo 00:35:22
para poder utilizar la llamada 00:35:27
al WhatsApp, ese servidor de llamadas 00:35:28
es como utilizar 00:35:29
Firebase para acceder 00:35:30
con Google 00:35:31
o demás 00:35:32
se le pueden pasar 00:35:42
tanto el idioma 00:35:44
como 00:35:45
el texto 00:35:45
de que uno 00:35:47
desee que diga 00:35:48
y en ese caso 00:35:49
nosotros ahí fue donde 00:35:50
incluimos 00:35:51
todo el tema 00:35:52
de que 00:35:52
de poderle pasar 00:35:53
el reto matemático 00:35:54
y que pudiera 00:35:55
interpretarlo 00:35:55
de forma correcta 00:35:56
si bueno 00:36:00
autentificar 00:36:10
es poder dar 00:36:12
veracidad 00:36:13
de que la persona 00:36:13
es quien dice ser 00:36:14
y no se trate de una suplantación 00:36:15
que sea auténtica 00:36:18
después de escuchar la conversación 00:36:20
a fuente de datos 00:36:33
a partir de la cual yo puedo hacer un mando 00:36:34
para poder reclamar todo lo que yo quiera 00:36:37
en nombre de otra persona 00:36:39
creo que hay más que 00:36:42
autentificar 00:36:44
lo que estáis creando 00:36:46
es estudiar un poco 00:36:48
desde el cual yo pueda cometer atrocidades 00:36:52
en nombre de otra persona 00:36:55
bueno, claramente nosotros 00:36:56
Sí, claramente puede tener muchos problemas de seguridad, pero como decimos, es una aplicación que en su idea general es poder mejorar las validaciones y que sea cada vez más robusta en la parte de seguridad. 00:36:58
ahorita mismo pueden pasar todas las cosas que nos están diciendo 00:37:14
tuvimos un tiempo también limitado 00:37:18
para poder desarrollarla de la mejor forma posible 00:37:20
pero la idea principal creo que es lo más importante 00:37:23
el poder que la aplicación 00:37:26
si está configurada de manera segura correctamente 00:37:27
y verifica correctamente los perfiles 00:37:31
es una aplicación que tiene mucho potencial 00:37:33
porque de aquí a mañana si a mí me llega un correo X 00:37:35
yo lo busco en la aplicación 00:37:37
y si yo veo que no está registrado 00:37:39
puede tratarse de una estafa 00:37:40
porque la idea es que todo el mundo vea 00:37:41
identifica como una idea global 00:37:44
en identifica si aparece, existe 00:37:47
y si no, puede tratarse de algún problema 00:37:49
entonces yo sé que ahorita a corto plazo 00:37:51
pueden haber fallas 00:37:55
porque por ejemplo ahorita solo estoy yo registrado 00:37:56
entonces cualquiera que busque no existe 00:37:58
pero no significa que no sea real 00:38:00
pero a futuro, ver la idea como a futuro 00:38:02
es si la aplicación crece 00:38:05
y podemos hacer que todo el mundo haga uso de ella 00:38:07
podemos dar fe de que si no está registrado ahí 00:38:09
puede que no sea una persona red 00:38:13
claro, pero 00:38:14
claro, no porque lo que te dice es 00:38:33
le pertenece a, solamente mostramos el nombre 00:38:48
y un identificador, pero ya como tal 00:38:50
acceso a nuestras bases de datos 00:38:52
claro, pero no 00:38:54
no se va a tener como tal los datos 00:39:02
de la persona, simplemente va a mostrar el nombre al que le 00:39:06
pertenece y poco más 00:39:08
pero claro, es verdad que al ser ese 00:39:09
punto tan 00:39:11
de libre acceso, pueden 00:39:12
ejecutar ciertos códigos 00:39:15
¿Estáis utilizando 00:39:17
el sistema de mensajes? 00:39:24
Sí, las notificaciones 00:39:29
nosotros tenemos notificaciones 00:39:30
sino que no les pudimos dar una prueba 00:39:32
voy a ver si el móvil le llegó una notificación pero 00:39:33
no, no le ha llegado ninguna notificación 00:39:35
pero 00:39:40
exacto, y también 00:39:41
nosotros cuando pueden recuperar en la contraseña 00:39:43
y les llega un correo 00:39:46
con un enlace para que recuperen la contraseña 00:39:48
es que no tuvimos mucho tiempo para eso 00:39:50
la notificación 00:39:52
llega a todos los usuarios 00:39:55
como recordatorio, nosotros las enviamos 00:39:56
a los usuarios como tips de seguridad 00:39:58
simplemente de notificaciones 00:40:00
nosotros 00:40:02
generamos 00:40:05
sí, nuestro sistema 00:40:06
nosotros, claro, pero lo que 00:40:10
hacemos con Firebase es generar 00:40:16
las notificaciones de campañas, en este estilo 00:40:18
por ejemplo, un recordatorio que 00:40:20
cambia tu contraseña, entonces 00:40:22
que cada cierto tiempo les llegue 00:40:24
esas notificaciones a los usuarios solamente como recordatorios 00:40:26
de notificaciones 00:40:29
nosotros generamos 00:40:30
esas notificaciones 00:40:41
En la parte del servidor 00:40:42
En la de 00:40:45
Claro, en el servidor no 00:40:45
Firebase es el que se encarga de hacer esas notificaciones 00:40:50
Pero alguien se lo tiene 00:40:53
Claro, pero si quieres ahorita mismo 00:40:54
Tú puedes enviar una notificación y vemos como nos llega 00:40:59
Lo que te está diciendo a mí 00:41:02
Es que no 00:41:03
¿Quién de estos? 00:41:04
Es Messaging 00:41:06
Claro, pero este es Firebase Messaging 00:41:07
Que es el que se encarga de enviarle las notificaciones 00:41:10
Lo que te quiero decir es que 00:41:12
Alguno de estos se tiene que chupar con esto 00:41:13
¿Alguno de estos? 00:41:15
No, lo que pasa es que 00:41:17
cuando se utiliza Firebase Messaging 00:41:19
lo que hacemos es un token 00:41:21
y ese token se 00:41:22
registra en Android Studio 00:41:24
para cada usuario 00:41:27
entonces cada usuario, nosotros 00:41:28
tenemos una clase que se llama 00:41:30
Firebase Messaging 00:41:32
en Android Studio 00:41:33
y entonces ahí se le genera el token al usuario 00:41:36
y cuando Firebase, nosotros hacemos 00:41:38
la campaña de enviar notificaciones 00:41:40
¿Hacemos la campaña? 00:41:42
nosotros tenemos 00:41:43
para escribir 00:41:46
no, aquí no 00:41:47
está en Firebase, en la página de Firebase 00:41:49
nosotros ponemos, vale, quiero que a los 00:41:51
usuarios que tengan la aplicación les llegue este 00:41:54
título y este contenido, y les damos 00:41:56
enviar, entonces, si no ponemos nada, les llega 00:41:58
a todos, o podemos especificar el token 00:42:00
específico del usuario, porque tenemos acceso 00:42:02
al token de cada usuario, porque está en Android 00:42:04
claro, a los que están 00:42:06
en web, no, porque la web no tiene registro 00:42:11
la web solamente sirve para búsquedas 00:42:13
la aplicación es la única en donde 00:42:15
la gente se puede registrar, dar de alta sus 00:42:16
correos, sus teléfonos, puede recibir 00:42:19
notificaciones, nosotros 00:42:20
las controlamos, lo que es las notificaciones 00:42:30
no, las notificaciones no 00:42:33
pero, vale 00:42:36
como caché 00:42:38
si en un proceso de transacción 00:42:48
se está escacheando 00:42:52
la transacción, si la transacción se viene abajo 00:42:53
se va abajo de la caché 00:42:55
si, nosotros, bueno, nosotros 00:42:56
hicimos el tema de la transacción 00:42:59
para que precisamente si 00:43:01
todo falla, la transacción obviamente 00:43:03
devuelve el proceso y lo que es 00:43:05
Redis no se alcanza a actualizar 00:43:07
porque 00:43:09
si falló el proceso de insertar el usuario 00:43:10
entonces ese proceso tampoco 00:43:14
se alcanza a registrar en la caché de Redis 00:43:16
y ahí volvemos 00:43:18
si llegan a hacer otra 00:43:20
de insertar o actualizar 00:43:22
pues la caché vuelve y se regenera 00:43:23
no, lo que queremos aclarar 00:43:25
ahí simplemente es que igualmente 00:43:39
los datos que llegan son 00:43:41
DTOs para que sepan que no 00:43:43
están llegando todos los datos 00:43:45
arriba, no significa que sea un sistema de seguridad 00:43:46
simplemente es 00:43:48
claro, claramente 00:43:50
claro, no, y que 00:43:53
aún así la clase sea igual 00:43:56
así por ejemplo el usuario quiera subirlo tal cual 00:43:58
igual lo mejor es subir el DTO, así sea 00:44:01
lo mismo, porque para que no haya 00:44:02
un problema de interferencia entre clases 00:44:04
lo que son las validaciones, la llamada 00:44:06
prácticamente y lo que 00:44:10
nosotros tenemos varios endpoints 00:44:12
desde 00:44:22
sí, desde el postman 00:44:23
claro, sí, nosotros no tenemos tampoco 00:44:37
que como tal 00:44:38
que no, que corte y eso no 00:44:40
el despliegue 00:44:42
de qué específicamente, perdón 00:44:46
el despliegue por medio del QR 00:44:48
ustedes 00:44:56
del servidor para desplegarlo 00:44:57
ahorita lo puedes 00:45:05
bajar un poco 00:45:32
pues los requisitos del sistema para el 00:45:33
despliegue es poder tener pues un Windows 10 00:45:36
o superior, un Intel Core i5 00:45:38
o superior, un almacenamiento mínimo de 00:45:40
512 GB 00:45:42
una memoria RAM 00:45:43
mínimo de 8 GB, vale 00:45:46
pero esto es para el desarrollo 00:45:48
de la aplicación 00:45:55
claro 00:45:56
pero es que 00:46:01
esto es el backend, entonces 00:46:05
si tú lo que quieres es la aplicación 00:46:06
pues la tienes que descargar desde el código QR 00:46:09
no entiendo 00:46:11
imagínate que 00:46:12
necesitas poner otro servidor 00:46:14
si, si, es que bueno 00:46:17
no sé si me estoy entendiendo mal 00:46:22
la pregunta, pero aquí como tal 00:46:24
lo que 00:46:25
estructuramos es 00:46:26
que se debe 00:46:28
aquí está 00:46:30
la conexión a la base de datos 00:46:33
el cual tienen que conectarse 00:46:34
o sea, tienen que tener primero acceso a esta base de datos 00:46:36
después 00:46:38
bueno, aquí están los endpoints del backend 00:46:39
la mayoría de los endpoints 00:46:43
sí, correcto 00:46:45
bueno 00:46:51
¿cómo así? 00:46:51
sí, he visto que es un Atlas 00:46:55
si es un Atlas 00:46:57
tengo la URL a la cual 00:46:58
sí, o sea 00:47:00
Puede que no hayamos 00:47:04
Profundizado en la seguridad 00:47:06
Pero ir respecto 00:47:08
Es que 00:47:10
Claro, claro, es que, vale, vale 00:47:11
Estoy un poco 00:47:14
Perdido 00:47:16
Bueno, quizás si hazlas 00:47:17
Si vemos el modelo de la base de datos 00:47:21
Vea, está ya 00:47:23
Hay una cosa que me llama la atención 00:47:24
Porque el cliente 00:47:32
El usuario, el user 00:47:36
Resulta que tiene un profile 00:47:37
Correcto 00:47:39
El profile tiene un conjunto de teléfonos 00:47:40
pero al mismo tiempo 00:47:42
el cliente también tiene un teléfono 00:47:45
correcto 00:47:47
es así porque 00:47:49
lo que el usuario tiene es 00:47:50
un perfil, el perfil no tiene un conjunto 00:47:53
en sí de nada 00:47:55
lo que tenemos es que cada correo, cada teléfono 00:47:56
cada red social tiene 00:47:59
el ID del perfil, apunta 00:48:01
al perfil, el perfil no tiene 00:48:03
como tal un conjunto de nada 00:48:05
estos apuntan es al perfil 00:48:06
y el usuario lo que sí 00:48:09
tiene es, apunta directamente 00:48:11
al perfil, a teléfono y a correo. 00:48:13
Teléfono y correo como mínimo 00:48:15
porque es lo mínimo que necesitamos para poder 00:48:17
registrar al usuario en la aplicación. 00:48:19
Y es lo mínimo que necesitamos para que el usuario esté 00:48:21
validado. 00:48:23
Después de ello, ya el usuario puede agregar 00:48:25
correos, teléfonos, los que 00:48:27
sea y se le van a agregar aquí 00:48:29
todos los que él quiera. Pero como 00:48:31
mínimo debe tener un correo y un teléfono 00:48:33
para que esté registrado y por eso 00:48:35
está asociado el usuario 00:48:37
con un correo y un teléfono solamente. 00:48:39
Y ya después puede tener su lista que va por 00:48:41
aparte. Y se van a pasar 00:48:43
directamente al perfil 00:48:50
para guardarlos 00:48:52
en su lista de teléfonos 00:48:53
y no hace falta guardarlo. 00:48:56
Pero tengo duplicado. Por un lado tengo 00:48:59
mi teléfono y mi correo 00:49:02
como parte de datos míos 00:49:03
de usuarios. Además 00:49:05
tengo un perfil donde 00:49:07
dentro de ese perfil tengo mi teléfono 00:49:09
y mi correo. No, no está duplicado. 00:49:11
Porque este 00:49:14
apunta directamente, por ejemplo, si el usuario 00:49:15
tiene un correo, apunta directamente a la colección 00:49:17
de emails. Y la colección de 00:49:19
emails lo que es, es esto. Entonces el usuario 00:49:21
lo que tiene es apuntando directamente a esto. 00:49:23
Y ya después 00:49:26
varios correos que tenga el usuario van a 00:49:26
apuntar al perfil. 00:49:29
Lo que nosotros hacemos es 00:49:38
filtrar por el... 00:49:40
Claro, para tú 00:49:47
buscar, para acceder a los 00:49:48
correos del usuario, correctamente 00:49:51
se le pregunta a la colección 00:49:52
de email, sí, correcto 00:49:54
déjame que os diga, de verdad 00:49:55
lo que habéis montado 00:49:57
lo hicimos de la forma 00:50:01
más clara posible 00:50:06
eso se llama 00:50:07
un bando de personal 00:50:14
eso se llama 00:50:17
un bando de propagar 00:50:18
lo lógico, lo normal 00:50:21
es que eso forme parte de los datos 00:50:26
del usuario 00:50:28
porque un usuario no va a tener 00:50:28
más de 4 o 5 00:50:32
y va a tener más de 4 o 5 00:50:33
teléfonos, luego eso es más comprobable 00:50:36
debe formar parte de los datos del usuario 00:50:38
no me puedes hacer eso, porque cada vez que 00:50:40
quiera ver un 00:50:42
un correo 00:50:43
cada vez que quiera ver un teléfono, tengo que 00:50:45
buscar en un documento 00:50:48
tengo que buscar ahí 00:50:50
donde pueda haber 6 millones de registros 00:50:52
es una locura 00:50:54
claro, bueno 00:50:56
en principio habíamos 00:50:57
pensado en esa opción 00:50:59
pero 00:51:01
no, no, solo 00:51:02
si, si, perfecto 00:51:04
vale, vale, perfecto 00:51:06
vale 00:51:09
y esta ya 00:51:09
es que no tiene mucho sentido 00:51:13
porque si no me has 00:51:15
contestado a cómo se despliegue 00:51:16
la parte web, lo que estoy entendiendo 00:51:18
es que como no está 00:51:21
la parte web no está desplegada a la aplicación 00:51:23
lo que entiendo es que la parte web 00:51:25
lo único que está haciendo es 00:51:27
Ahí lo que estáis montando es un AJAX que está aplicando contra el donde esté ubicado el servidor de la aplicación. 00:51:28
Un Fetch, sí. 00:51:35
Un AJAX. 00:51:36
Sí, la página web simplemente es para que las personas tengan la opción de búsqueda desde la web 00:51:37
y solo hace con un Fetch y un AJAX. 00:51:44
Un AJAX, que hace una query a... 00:51:46
Al servidor para poder hacer la petición, correcto. 00:51:49
Me paro, ya está. 00:51:53
Vale, vale. 00:51:58
Gracias. 00:51:58
No sé si hay alguna duda o algo más. 00:51:59
vale 00:52:00
vale, muchas gracias 00:52:05
eso es lo que yo digo 00:52:09
que uno hace cosas buenas 00:52:19
y luego se lo cagan por todo 00:52:20
porque por ejemplo 00:52:23
si tú piensas en David 00:52:25
Idioma/s:
es
Autor/es:
Villablanca
Subido por:
Mario S.
Licencia:
Dominio público
Visualizaciones:
49
Fecha:
22 de junio de 2024 - 0:27
Visibilidad:
Público
Centro:
IES VILLABLANCA
Duración:
52′ 28″
Relación de aspecto:
1.78:1
Resolución:
1280x720 píxeles
Tamaño:
3.39

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid