Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

Responsabilidades de cada módulo

Alejandro González Hevia edited this page Feb 17, 2021 · 5 revisions
Nombre Componente Responsabilidades
Cliente Web (Admin) Login (ver que sea administrador)
Gestión de Posts: ver lista de posts potencialmente peligrosos, para cada post meter el flag de ocultar al público
Gestión de usuarios: consultar datos y bloquear de la app
Estadísticas: Número de usuarios registrados en las ultimas x horas, distribución de lenguajes entre los posts, estadísticas de conversaciones...
Cliente Móvil (Usuarios) Login (ver que sea 'usuario')
Crear cuenta: nombre completo, gustos (tags), email, contraseña, idioma/s que quiero aprender, idioma/s de los que soy nativo, fecha de nacimiento, avatar
Personalizar cuenta (ver info de arriba)
Buscar usuarios (filtros de nombre, edad e idiomas (puede ser un checkbox para que te devuelva usuarios que sepan los idiomas que quieres aprender)).
EXTRA: En buscar usuarios, una opción de recomendaciones (llevaría crear un servicio nuevo que con neo4j haga recomendaciones)
Desde la búsqueda de usuarios, ver el perfil de un usuario: aquí puedes ser sus datos, seguir, empezar un chat con él, y lista de posts (esto sería no tan importante).
 Mis conversaciones: Ver conversaciones que tienes activas, y al hacer click sobre una entras en esa conversacion
Dentro de una conversación: en los mensajes del otro, funcionalidad para traducir el mensaje y text-to-speech
Feed de posts: Ver los últimos posts de la gente que sigues, "recomendaciones" (sacar últimos posts de gente que sepan el idioma que estás aprendiendo)
Dentro de la vista de un perfil, estaría bien meter estadísticas (número de posts, mensajes traducidos)
Creación de posts: texto, se puede meter multimedia.
Meter like in dislikes en cada post, comentarios y todo eso no hace falta. 
CLI  
Funcionalidad del cliente web admin por aquí 
 Autenticacion
Login (devuelve tokens)
Gestionar roles (admin, usuario)
Responder a peticiones para validar un token dado
Usuarios
"Registrar" usuario: mandar un mensaje al servicio de search para que lo indexe en ElasticSearch
Actualizar datos de un usuario 
Bloquear a un usuario 
Búsqueda (por edad, idiomas)
Posts
Creación de posts: mandar un evento en la cola de kafka con el texto del post
 Dar like
   Actualizar posts: escuchar en la cola de kafka a que llegue información de los sistemas de NLP
Borrado lógico (cambiar flag) 
Lista de posts seguidos
Lista de posts "recomendados"
Messages
Obtener lista de mensajes entre 2 usuarios 
 Enviar mensaje en una conversación
Obtener conversaciones de un usuario
Crear una conversación nueva
Statistics 
Número registros en el último día 
Número de posts por lenguaje
Uso de traducción de cada usuario 
Número de mensajes por usuario
 Número de posts por usuario
Text to Speech 
  Obtener audio a partir de un texto (con x idioma)
Translation  
Traducir texto de x idioma a y
Offensive text detection
Detectar si el texto es potencialmente peligroso. Recibe los nuevos textos (posts en principio) de la cola de kafka y manda un mensaje a la cola con el resultado.
Topic Modeling
Extraer tópicos del día (le llega por la cola de kafka cada post y saca los tópicos, agrega resultados para el día)
Language identification  
Detectar idioma de un texto