-
Notifications
You must be signed in to change notification settings - Fork 0
Avances Sprint
En esta sección, se documentará los avances realizados en el proyecto.
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:
Crear página de registro:
Resultados:
Al igual que el Sprint 1 no hubo mayores complicaciones, solo falta de tiempo para terminar algunas tareas.
Crear página principal:
Crear página home (dentro de la app:
CRUD de la clase celular:
CRUD de la clase antena:
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.
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.
Estos cambios están registrados en el branch “react-dev” del repositorio.
Resultados:
Frontend hecho con react y bootstrap 5
Parte de chat:
Parte de contactos:
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.
Código métodos clase antena:
Código métodos clase MSC:
Código métodos clase Celular:
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.