Skip to content

Herramienta para la obtención y visualización de datos de revisiones de código.

License

Notifications You must be signed in to change notification settings

mjuez/TFM2016_Analisis-Visual-Revisiones-Codigo

Repository files navigation

Anvireco
MIT license Travis build Codebeat GPA DOI

🏆 1er Premio nacional SISTEDES ACCENTURE 2018 a Mejor Trabajo Fin de Máster

Descripción

Anvireco es una herramienta para la extracción y visualización de datos sobre revisiones de código realizadas en repositorios de código alojados en GitHub.

Autor

Tutores

Wiki

En la wiki se pueden encontrar los manuales de usuario tanto de la API como del cliente.

Requisitos

Requisitos mínimos

  • Node.js y npm: La aplicación está desarrollada en Node.js y hace uso del gestor de paquetes npm.
  • MongoDB: La aplicación está preparada para trabajar con bases de datos NoSQL MongoDB. No es imprescindible tener una instancia local de MongoDB, como alternativa se pueden utilizar servicios en la nube como MongoDB Atlas o mLab.

Requisitos recomendados

Dependencias

Dependencias de la API (backend)

Nombre Licencia Imprescindible
express MIT
body-parser MIT
node-github MIT
mongoose MIT
TypeScript Apache-2.0
ts-node MIT
tslint Apache-2.0
bluebird MIT
gulp MIT
gulp-sourcemaps ISC
gulp-typescript MIT
request Apache-2.0
request-promise ISC
twix MIT
moment MIT
json2csv MIT
cheerio MIT
gulp-typedoc ISC No
chai MIT No
chai-as-promised WTFPL No
chai-http MIT No
sinon BSD No
mocha MIT No
typedoc Apache-2.0 No

Dependencias del cliente (frontend)

Nombre Licencia Imprescindible
jQuery MIT
sammy MIT
semantic-ui MIT
d3 BSD-3-Clause
c3 MIT

Instalación

A continuación se muestran los pasos necesarios para la instalación y despliegue de la aplicación (manual de programador) en una máquina local. Las tecnologías utilizadas también son compatibles con sistemas operativos Windows, Linux y Mac OS X.

Descarga de la aplicación

En primer lugar se debe descargar la aplicación. Bien el fichero .zip generado por GitHub, o clonando el repositorio:

git clone https://github.com/mjuez/TFM2016_Analisis-Visual-Revisiones-Codigo.git

Una vez descargada y descomprimida, es necesario situarse dentro de la carpeta que contiene el fichero package.json.

Variables de entorno

Las variables de configuración de la aplicación se deben definir como variables de entorno y son las siguientes:

  • MONGO_CONNSTRING: Cadena de conexión a la base de datos MongoDB (formato).
    • Ejemplo: mongodb://admin:1234@127.0.0.1:27017/anvireco.
  • ANVIRECO_APPNAME (opcional): Nombre de una aplicación GitHub Developer application.
    • Ejemplo: Anvireco.
  • ANVIRECO_ID (opcional): Client ID de una aplicación GitHub Developer application.
    • Ejemplo: 00x000x00xxx0x0x0xx0.
  • ANVIRECO_SECRET (opcional): Client Secret de una aplicación GitHub Developer application.
    • Ejemplo: 00x000x00xxx0x0x0xx000x000x00xxx0x0x0xx0.
  • PORT (opcional): Puerto donde se va a ejecutar el servidor node.js.
    • Ejemplo: 3000.

Nota: La definición de variables de entorno depende del sistema operativo utilizado y no se detalla en este manual.

Instalación de dependencias

Existen dos formas de instalar las dependencias de la aplicación utilizando el gestor de paquetes npm:

  • Entorno de producción: Instala únicamente las dependencias imprescindibles para la ejecución de la aplicación.
    npm install --only=production
    
  • Entorno de desarrollo: Instala todas las dependencias, incluyendo aquellas opcionales como por ejemplo las de testing.
    npm install
    

Compilación de ficheros TypeScript

Los ficheros TypeScript (.ts) dentro del directorio src son compilados a JavaScript (.js) y guardados en el directorio release. La compilación se realiza mediante un objetivo de gulp llamado compile.

gulp compile

Ejecución de pruebas unitarias

La ejecución de las pruebas unitarias solo se puede llevar a cabo si se han instalado todas las dependencias. Mediante el comando npm test se ejecutan las pruebas.

Nota: Para la ejecución de las pruebas no es necesario compilar los ficheros TypeScript.

Ejecución de la aplicación

La aplicación se ejecuta mediante el comando npm start. La aplicación es accesible desde http://localhost:puerto donde puerto es el valor de la variable de entorno PORT.

Nota 1: Si no se ha definido la variable de entorno PORT, la aplicación se desplegará por defecto en el puerto 3000 y será accesible a través de http://localhost:3000/.

Nota 2: Para la ejecución de la aplicación es imprescindible la compilación previa de los ficheros TypeScript.

Demo

Licencia

Copyright (c) 2017 Mario Juez Gil - Licenciado bajo licencia MIT

Un proyecto para:

Admirable y Digit