DISEÑO DE INVESTIGACIÓN - JuanDanielDimasAmador/proyecto_final GitHub Wiki

Objetivo General Desarrollar una aplicación web que sirva de canal de críticas de situaciones de riesgo para comunidades segregadas y vulnerables en bares y centros nocturno a través de la convergencia de tecnologías de desarrollo de vanguardia y el correcto uso de redes sociales y su impacto en la sociedad.

Objetivos Específicos Registrar e Iniciar de Sesión de usuarios finales de manera convencional a través de un formulario simple. Registrar y Iniciar Sesión de usuarios finales a través de la API Facebook, la cual permite aumentar el nivel de confianza con el usuario. Cuidar la integridad y seguridad de la información de los usuarios mediante el uso de técnicas de sanitización, encriptación y desencriptación de datos. Cuidar la integridad de la aplicación web a partir de técnicas de sanitización de datos en entradas de datos. Crear y aplicar un algoritmo que cree un “apodo” a partir de palabras random con el cual el usuario final se pueda identificar. Implementar la API Places de Google para la búsqueda de los bares y/o centros nocturnos. Guardar la información básica de los bares y /o centros nocturnos obtenida de la API Places en la base de datos no relacional. Permitir que los usuarios a partir de una búsqueda en la API Places comenten y califiquen el trato y servicio brindado en el mismo. Extraer información necesaria para la presentación gráfica de la información, la cual refleje las críticas y calificaciones hechas para cada establecimiento. Implementar la aplicación web en un medio local, que permita mantener el control de los flujos de la información. Comprobar la utilidad de la aplicación web mediante la implementación de la misma.

Metas Implementar los conocimientos específicos de los miembros del equipo para lograr el desarrollo de una arquitectura sólida del proyecto. Completar el desarrollo de la aplicación web en su totalidad, siguiendo las guías de estilo y diseño de software dictadas por las tecnologías a ocupar y una buena praxis de codificación. Crear una comunidad de usuarios honestos y dispuestos a compartir sus experiencias, calificando el servicio en ámbito de inclusión y respeto. Ofrecer a los usuarios información de utilidad sobre el nivel de seguridad y la calidad de los servicios de los bares y/o centros nocturnos que frecuente. Comprobar si el uso de la aplicación web puede intervenir en la mejora del comportamiento de la sociedad local.

Metodología Se pretende alcanzar las metas y objetivos planteados para la investigación a través de métodos preestablecidos, que puedan ser comprobables y que por su antigüedad en la rama de la investigación y experimentación den buenos resultados. De esta forma, será utilizada la Investigación Aplicada para el enriquecimiento del sector tecnológico a partir de conocimientos teóricos básicos, basándose en la investigación fundamental (acercamiento con el cliente), investigación aplicada (creación de concepto) y transferencia tecnológica (creación del producto final). En la última fase de la investigación aplicada, entrarán en juego los conocimientos previos del autor y su capacidad para implementar la metodología ágil XP (Programación Extrema) y los resultados previos obtenidos para la creación de la Aplicación Web. A continuación, se describe de manera específica qué fue lo que se realizó dentro de cada una de las etapas de la metodología.

INVESTIGACIÓN APLICADA Fundamentos. Toda investigación debe partir de una idea fundamental, en este caso la búsqueda de una solución a un problema común dentro de la comunidad local Tulancinguense, aplicar conocimientos base sobre el desarrollo de tecnología e intentar erradicar el problema. Con el fin de dar una solución pronta y eficaz a la problemática descrito en el apartado Planteamiento del Problema, se echó mano de los diversos conocimientos del equipo de desarrollo, por tanto se tomó la decisión del desarrollo de una Aplicación Web mediante la convergencia de las tecnologías MongoDB, Express, React JS y Node JS mejor conocidas en el mercado como MERN Stack de JavaScript; para que a través de su filosofía de reciclaje el desarrollo de la antes mencionada aplicación sea más fácil de consumir por el cliente. A continuación se describen las funciones de las tecnologías pertenecientes al MERN Stack: Definición de MERN: Hace referencia a un grupo de tecnologías en el que se usa JavaScript tanto en el cliente como en el servidor, es decir, la aplicación completa se encuentra desarrollada en JavaScript. MongoDB: Permite el manejo de bases de datos no relacionales de manera sencilla, además a través de mongoose se puede crear la integración con JavaScript para su control. Express: Dicha tecnología permite crear una infraestructura sólida para las aplicaciones web, además de que se puede manejar el backend entero con el lenguaje Node. React: Librería creada y mantenida por Facebook que permite el desarrollo de frontend de la aplicación de manera limpia y organizada, facilitando la interacción entre usuarios y la aplicación. https://platzi.com/blog/que-es-mern-stack-javascript/ Node: Librería y entorno de ejecución dirigida por eventos asíncronos que se ejecuta bajo el entorno de JavaScript desarrollado por Google V8. https://www.netconsulting.es/blog/nodejs/

Otro elemento fundamental para el desarrollo de ésta aplicación, es el reconocimiento del impacto de las redes sociales en la sociedad mexicana, tal y como se describe en las Bases Teóricas de éste documento, se puede inferir que, a través del Social Media Marketing se puede tener un gran impacto en la conducta de la sociedad mexicana. De acuerdo con el Asociación Mexicana del Internet, Facebook y Twitter son las redes sociales más utilizadas en México, por tanto será de gran ayuda que el comportamiento de la Aplicación Web sea parecido al de las redes sociales antes mencionadas 

https://www.merca20.com/las-redes-sociales-con-mayor-impacto-en-mexico/ El consumo de APIs dentro de aplicaciones de alto nivel hoy en día es una práctica común. Para éste caso específico se utilizarán dos, la API de logeo de Facebook y la API Places de Google; serán descritas a continuación: API Facebook: Debido a que la aplicación web se perfila para tener un comportamiento parecido a una red social, contar con la validación de Facebook para obtener la confianza del cliente final es indispensable. Facebook nos ofrece una serie de beneficios al momento de vincularse con ellos, dentro de las cuales se encuentra el acceso a información individual de sus usuarios. API Places: Google ha hecho una gran labor al “poner en el mapa” a la mayoría de los establecimientos

Aplicación En éste momento de la investigación se empezó a aplicar las guías dictadas por la metodología XP con respecto al análisis de los casos de uso, el diseño de la base de datos y los requerimientos de Software y Hardware. Como parte del análisis del funcionamiento del sistema previo al desarrollo, se realizaron una serie actividades en relación con el desarrollo de la arquitectura de la aplicación web. Dicho documento se puede consultar en el siguiente link: Análisis de la Web. Siguiendo con la definición de los usuarios dentro de la aplicación, existirán dos tipos de usuarios. El primero es el usuario administrador el cual representa al equipo desarrollador, el cual tiene los privilegios y facultades de controlar y monitorear el flujo de información de toda la aplicación. Dicho usuario del mismo modo podrá censurar cualquier acción que transgrede a la comunidad. El siguiente tipo de usuario será conocido como cliente, el cual podrá consultar dentro de la aplicación web cualquier establecimiento para poder emitir una opinión, crítica o denuncia sobre el mismo, contar su experiencia para compartirla con la comunidad. Del mismo modo, será capaz de aprobar o compartir puntos de vista a través de likes y reacciones a los comentarios. Cabe destacar que estas acciones solo serán alcanzadas a través de un registro previo a través de la API Facebook. El tercer y último usuario es el de menor nivel y privilegio, ya que éste es conocido como cliente ocasional, es decir, aquel que sólo visita la página web por información pero no puede realizar ninguna actividad extra. El análisis anterior permitió el diseño de la Base de Datos No Relacional, la cual figura como estructura lógica de la aplicación, controlando el flujo de la información y dando acceso a ésta de manera actualizada y precisa. El diseño preliminar de la base de datos comprende un total de cuatro entidades no relacionales: Lugares. Usuarios. Críticas. Comentarios.