Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Juan Pablo e Iván - Desarrollo - 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:
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
00:09:25
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
no
00:25:22
¿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
es
00:32:53
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
si
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
si
00:36:41
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
no
00:38:28
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:
- 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