Skip to content
This repository has been archived by the owner on Aug 5, 2023. It is now read-only.

Avances Sprint

Max Sepúlveda edited this page Jul 5, 2023 · 1 revision

En esta sección, se documentará los avances realizados en el proyecto.

✅ Sprint Backlog 1

image

Resultados:

Framework escogido: MERN (MongoDB, Express, React, NodeJS)

Características antena:

Id: Un identificador para diferenciar distintas antenas de la simulación.

Mensajes: Un arreglo o estructura de datos que contenga los mensajes que trasmitirá.

Grupo de celulares: Conjunto de celulares conectados a esta antena.

Características del celular:

id: Un identificador único que permita diferenciar cada celular en la simulación.

usuario: El nombre de usuario asociado con el celular.

mensajes: Un arreglo o estructura de datos que contenga los mensajes enviados y recibidos por el celular.

amigos: Una lista de contactos de amigos que el usuario tiene agregados en el celular.

conectado: Un indicador que informe si el celular está conectado a la red o no.

Crear página login:

image

Crear página de registro:

image

✅ Sprint Backlog 2

image

Resultados:

Al igual que el Sprint 1 no hubo mayores complicaciones, solo falta de tiempo para terminar algunas tareas.

Crear página principal:

image

Crear página home (dentro de la app:

image

CRUD de la clase celular:

image

CRUD de la clase antena:

image

Métodos clase antena:

  • Crear_antena(): Permite crear una nueva antena solo inicializado su id.

  • Eliminar_antena(): Permite eliminar una antena a partir de su id.

  • Actualizar_antena(celular): Este método permite agregar un celular a los datos de la antena, cuando se cumplan los requisitos.

  • Visualizar_antena(): Permite visualizar los datos de la antena a la cual se ejecutó este método.

  • Redirigir_mensaje_hacia_MSC(mensaje,celular_remitente,celular_receptor): Permite redirigir un mensaje a partir de un celular_remitente que se encuentre en los datos de la antena, hacia MSC.

  • Redirigir_mensaje_desde_MSC(mensaje,celular_remitente,celular_receptor): Permite redirigir un mensaje a partir de un MSC que se encuentre conectado a la antena, hacia celular_receptor.

  • Verificacion_celular_conectado(celular): Permite verificar que un celular está conectado a la antena.

Métodos clase Celular:

  • crearCelular(): Permite crear un nuevo celular solo inicializado su id.

  • eliminarCelular(celular): Permite eliminar una antena a partir de su id.

  • visualizarCelular(celular): Permite visualizar los datos de celular entregada.

  • enviarMensaje(destino: idCelular, mensaje: Mensaje): El fin de este método es poder enviar mensajes de un celular a otro, recibiendo como parámetro el destinatario (id celular) , además del mensaje que se quiere enviar.

  • recibirMensaje(mensaje: Mensaje): El fin de este método es poder recibir un mensaje desde otro celular según su tipo y origen, mostrando al usuario el mensaje como una ventana.

  • MostrarInformacion(): Este método mostrara información del celular, como el número de teléfono, entre otros.

  • Conectar_celu_Antena(antena: Antena): El fin de este método es conectar el celular a la antena, para que pueda establecer comunicación con otros celulares, es decir que pueda enviar mensajes.

  • Desconectar_celu­_Antena(): El fin de este método es desconectar el celular de la antena, de esta forma el celular desconectado de esta, no podrá generar la comunicación con los demás celulares.

✅ Sprint Backlog 3

image

Resultados: Características MSC:

Id_MSC: identidicador de MSC

HLR: id de HLR conectado

Lista_antena: Lista con antenas que están conectadas a MSC

Metodos MSC:

CRUD de MSC

Buscar_celula(celular): Busca celular entre las distintas antes que están conectadas al MSC

Recibir_mensaje_MSC(mensaje, celular_remitente,celular_receptor): Recibe mensaje de antena para redirigirlo

Enviar_mensaje_MSC(antena,mensaje, Celular_remitente, Celular_receptor): Envia mensaje a antena con celular de receptor conectado

Consultar_HLR(Celular_receptor): Pregunta a HLR a que MSC esta conectado celular receptor

Enviar_MSC(mensaje, Celular_remitente,Celular_receptor): Envía mensaje a MSC que conecta con celular receptor

Recibir_MSC(mensaje, Celular_remitente,Celular_receptor): Recibe mensaje de MSC para redirigirlo por antena a Celular_receptor

Pseudocódigo Método MSC:

- Buscar_celula(celular){
    FOR i in lista antenas{
        i.Verificacion_celular_conectado(celular)
    }
    IF( i.Verificacion_celular_conectado(celular) == True para algún i){
        Return [True.i]
    }
    Else{
        Return [False,] 
  }

- Recibir_ mensaje _MSC(mensaje, celular_remitente,celular_receptor){
    Valores = Buscar_celular(celular)
    If( Valores[0] == True){      
         Enviar_mensaje_MSC(Valores[1],mensaje, Celular_remitente, Celular_receptor)
    }
  }

- Enviar_mensaje_MSC( antena,mensaje, Celular_remitente, Celular_receptor){
    Antena.Redirigir_mensaje_desde_MSC(mensaje,celular_remitente,celular_receptor)
  }

- Consultar_HLR(Celular_receptor){
    MSC = This_HLR. Enviar_mensaje_HLR(Celular_resceptor)
    Return MSC
  }

- Enviar_MSC(mensaje, Celular_remitente,Celular_receptor){
    MSC =  Consultar_HLR(Celular_receptor);
    MSC.Recibir_MSC (mensaje, Celular_remitente,Celular_receptor);
  }

- Recibir_MSC(mensaje, Celular_remitente,Celular_receptor){
    Recibir_ mensaje _MSC(mensaje, celular_remitente,celular_receptor);
  }

Pseudocódigo Método antena:

- Redirigir_mensaje_hacia_MSC(mensaje,celular_remitente,celular_receptor){
    This.mensaje = Mensaje;
    Recibir_mensaje_MSC(mensaje,celular_remitente,celular_receptor);}
- Redirigir_mensaje_desde_MSC(mensaje,celular_remitente,celular_receptor){
    This.mensaje = mensaje
    If(celular_receptor in This._lista_celulares){
        Lista_celulares[id_celular-1].recibirMensaje(mensaje)}
    Else{
        Echo “No se encuentra celular, mensaje fallo”
  }
- Verificacion_celular_conectado(celular){
     Listas = This. Visualizar_antena()
     If(celular in Listas[1]){
         Echo “Celular esta conectado a esta antena”
         Return True
     }
     Else{
         Echo “Celular no esta conectado a esta antena”
         Return False
     }
  }

Pseudocódigo Método celular:

// Definición de la clase Celular
class Celular {
  constructor(numeroTelefono) {
    this.numeroTelefono = numeroTelefono;
    this.capacidadEnvioMensajes = true;
    this.capacidadRecepcionMensajes = true;
  }

  enviarMensaje(destino, mensaje) {
    if (this.capacidadEnvioMensajes) {
      const mensajeEnviado = `Enviando mensaje desde ${this.numeroTelefono} a ${destino}: ${mensaje}`;
      console.log(mensajeEnviado);
    } else {
      console.log(`No se pudo enviar el mensaje desde ${this.numeroTelefono}`);
    }
  }

  recibirMensaje(mensaje) {
    if (this.capacidadRecepcionMensajes && mensaje.tipo === 'In') {
      console.log(`Mensaje recibido en ${this.numeroTelefono}: ${mensaje}`);
    } else {
      console.log(`No se pudo recibir el mensaje en ${this.numeroTelefono}`);
    }
  }

  mostrarInformacion() {
    console.log(`Número de teléfono: ${this.numeroTelefono}`);
  }
}

// Ejemplo uso de la clase Celular
const celular = new Celular('123456789');
celular.enviarMensaje('987654321', '¡Hola! ¿Cómo estás?');
celular.recibirMensaje('¡Hola! Estoy bien, gracias.');
celular.mostrarInformacion();

Al igual que los anteriores no hubo mayores complicaciones, solo falta de tiempo para terminar algunas tareas.

✅ Sprint Backlog 4

Estos cambios están registrados en el branch “react-dev” del repositorio.

image

Resultados:

Frontend hecho con react y bootstrap 5

Parte de chat:

image

Parte de contactos:

image

AVANCES DE BACKEND:

Desarrollo de API:

La API desarrollada es capaz de registrar usuarios, loguear usuarios, mantener y cerrar sesiones (logout), ademas de asociar listas de contactos a cada usuario. Ademas de obtener información de los usuarios como número de teléfono o nombre de usuario.

image

image

image

image

Código métodos clase antena:

image

Código métodos clase MSC:

image

Código métodos clase Celular:

image

Se ha avanzado al rededor de un 75% del total del proyecto, dado que se presentan avanzases desde el frontend, el backend y la base de datos. El resto que nos falta es terminar de conectar los distintos componentes y complementar los ya existentes.

⏳ Sprint 5 [En desarrollo, para el siguiente hito]

image