---
# System prepended metadata

title: Diseño de producto

---

# Diseño de producto

## Proceso de Diseño del sistema

Para la implementacion de las nuevas funcionalidades de examanager relacionadas con la seguridad por medio del reconocimiento multi-modal estamos utilizando la metodologia Midano.

Estamos utilizando esta medotologia debido a que nos permite realizar un analsis exhaustibo de los datos de una manera adecuada y extraer informacion util de los mismos, para nuestro proyecto el analisis de los datos es muy importante debido a que es el nucleo principal de la seguridad al presentar examenes.

La metodologia prosee 3 fases principales:
![](https://i.imgur.com/EImlRDo.png)

Actualmente nos encontramos terminando la fase 1, donde definimos las diferentes tareas u objetivos a llevar acabo y ademas evaluamos aquellas fuentes de datos que nos permitirian la realizacion de las tareas planteadas.

Dentro de las tareas que definimos realizar se encuentran 4 principales y sus fuentes de datos:

### Task 1:

**Objetivo:** Reconocimiento facial en tiempo real básico.
**Fuente de Datos:** Base de datos propia con las fotos de los estudiantes

### Task 2:

**Objetivo:** Reconocimiento del entorno.
**Fuentes de Datos:**
- https://cocodataset.org/#home 
- https://github.com/openimages/dataset 
- https://www.kaggle.com/itsahmad/indoor-scenes-cvpr-2019 

### Task 3:

**Objetivo:** Reconocimiento de emociones.
**Fuente de Datos:** https://research.google/tools/datasets/google-facial-expression/

### Task 4:

**Objetivo:**  Verificación de la fiabilidad de la cámara por medio de un test rápido de validación.
**Fuente de Datos:** https://visualqa.org 

 

## Vista de informacion / Modelo de datos

La base de datos existente de Examanager esta desarrollado en MongoDB una base de datos no relacional

Modelo de datos de la base de datos existente de Examanager:

![](https://i.imgur.com/b9GZa9n.png)

De este modelo es necesario extraer la imagen asociada a un usuario y realizarle un analisis.

La nueva base de datos que planeamos implementar tambien será no relacional y será implementada en MongoDB la estructura base que planeamos para los datos es: 

**Documento Emociones:**
![](https://i.imgur.com/T55ljWk.png)



**Documento Objetos_Entorno:**
![](https://i.imgur.com/Lx7FDCJ.png)


**Documento Acciones:**

![](https://i.imgur.com/tIUj5BD.png)


## Diagrama de contexto

![](https://i.imgur.com/OKqdQjQ.png)


## Vista de despliegue

![](https://i.imgur.com/5TUE6Ve.jpg)


## Atributos de calidad



### Rendimiento y escalabilidad: 

| Requerimiento| Como lo planeamos hacer |
| -------- | -------- |
| Rendimiento | La aplicación está diseñada como un sistema modular en el cual diferentes módulos pueden ser reemplazados o desactivados sin afectar el funcionamiento de otros, creando así un sistema altamente escalable en el cual se pueden agregar o mejorar módulos existentes a futuro. |
| Escalabilidad |Gracias a la arquitectura modular de la solución se crea la posibilidad de paralelizar tareas de análisis para mejorar el rendimiento en los procesos del análisis multimodal.|

### Seguridad


| Requerimiento| Como lo planeamos hacer |
| -------- | -------- |
| Todos los usuarios (administradores, profesores y estudiantes) serán autenticados antes de acceder al sistema.| Validando el usuario y la contraseña en la base de datos y generando un token único para que este pueda navegar por la aplicación. |
|La aplicación garantizará una encriptación básica de contraseñas.| Las contraseñas se encriptaran por medio de crypto-js. |
|La aplicación no enviará código fuente a través de Internet.| El código fuente se encuentra en un sistema protegido que garantiza solamente exponer al front-end datos pertinentes para su correcto funcionamiento. |

### Disponibilidad y resiliencia


| Requerimiento | Como lo paneamos hacer |
| -------- | -------- |
| La aplicación garantizará un uptime del 80%.   | Se emplea Amazon AWS como proveedor de servicio cloud para garantizar alto rendimiento y disponibilidad, contando con máquinas de respaldo preparadas para atender cualquier eventualidad en el servicio. |
|La aplicación garantizará unos tiempos de respuesta no mayores a 2 minutos.|La comunicación cliente-servidor consiste de requests ligeros que permiten una rápida respuesta al usuario, la captura de video almacena los datos temporalmente en back-end y no requiere retornos complejos al front-end, permitiendo capturar video sin ralentizar la plataforma. |

### Extensibilidad


| Requerimiento| Como lo paneamos hacer |
| -------- | -------- |
| La aplicación sera fácilmente desacoplable para facilitar la realización de cambios. | El font-end, back-end, base de datos y módulo de analítica se encuentran cada uno en un contenedor de docker para poder realizar cambios fácilmente. |

### Otros atributos de calidad


| Requerimiento | Como lo paneamos hacer |
| -------- | -------- |
| La aplicación debe funcionar en las últimas versiones de los navegadores Chrome, Edge y Firefox. | Las funciones del sistema front-end se mostrarán de forma correcta en los anteriores navegadores y aprovecharán HTML5 para la captura de video. |
