🏆 1er Premio nacional SISTEDES ACCENTURE 2018 a Mejor Trabajo Fin de Máster
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.
- Mario Juez - mariojg@ubu.es
- Carlos López Nozal - clopezno@ubu.es
- Raúl Marticorena Sánchez - rmartico@ubu.es
En la wiki se pueden encontrar los manuales de usuario tanto de la API como del cliente.
- 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.
- GitHub Developer application: Permite aumentar el límite de peticiones/hora a la API de GitHub de 60 a 5000.
Nombre | Licencia | Imprescindible |
---|---|---|
express | MIT | Sí |
body-parser | MIT | Sí |
node-github | MIT | Sí |
mongoose | MIT | Sí |
TypeScript | Apache-2.0 | Sí |
ts-node | MIT | Sí |
tslint | Apache-2.0 | Sí |
bluebird | MIT | Sí |
gulp | MIT | Sí |
gulp-sourcemaps | ISC | Sí |
gulp-typescript | MIT | Sí |
request | Apache-2.0 | Sí |
request-promise | ISC | Sí |
twix | MIT | Sí |
moment | MIT | Sí |
json2csv | MIT | Sí |
cheerio | MIT | Sí |
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 |
Nombre | Licencia | Imprescindible |
---|---|---|
jQuery | MIT | Sí |
sammy | MIT | Sí |
semantic-ui | MIT | Sí |
d3 | BSD-3-Clause | Sí |
c3 | MIT | Sí |
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.
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
.
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
.
- Ejemplo:
- ANVIRECO_APPNAME (opcional): Nombre de una aplicación GitHub Developer application.
- Ejemplo:
Anvireco
.
- Ejemplo:
- ANVIRECO_ID (opcional): Client ID de una aplicación GitHub Developer application.
- Ejemplo:
00x000x00xxx0x0x0xx0
.
- Ejemplo:
- ANVIRECO_SECRET (opcional): Client Secret de una aplicación GitHub Developer application.
- Ejemplo:
00x000x00xxx0x0x0xx000x000x00xxx0x0x0xx0
.
- Ejemplo:
- PORT (opcional): Puerto donde se va a ejecutar el servidor node.js.
- Ejemplo:
3000
.
- Ejemplo:
Nota: La definición de variables de entorno depende del sistema operativo utilizado y no se detalla en este manual.
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
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
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.
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.
- Producción: http://anvireco.herokuapp.com/
- Desarrollo: http://anvireco-dev.herokuapp.com/
- Machine learning reviewers data processing: https://anvireco-reviews-preprocessor.duckduck.mjuez.com/
Copyright (c) 2017 Mario Juez Gil - Licenciado bajo licencia MIT