CSC/ECE 517 Fall 2017/E1783 Convolutional data extraction from Github

From Expertiza_Wiki
Jump to navigation Jump to search


GOAL

A feature that integrates Github metrics into Expertiza to help instructors grade the projects by providing more information of the workload of individuals and could do early detection on failing projects based on groups’ working pattern. This wiki page documents the changes made as a part of E1783 which allows users with instructor to view Github metrics for a students' submitted assignment.

Team: Kashish Aggarwal

Sanya Kathuria

Madhu Vamsi Kalyan

Mentor - Yifan Guo

INTRODUCTION

Expertiza is a web application where students can submit and peer-review learning objects such as assignments, articles, code, web sites, etc. Convolutional data extraction from Github integrates Github metrics into 'Expertiza'- an Open source project in order to help instructors grade the projects by providing more information of the workload of individuals and could do early detection on failing projects based on groups’ working pattern. By convolutional data, here we refer to the fields of the dataset which cannot be extracted directly, such as the working pattern, which is the amount of commits/code/files the pull request added/modified/deleted on each day in the whole project period. The project period is a range of days that can be tracked on Expertiza.

For metrics we have considered following :

o Number of commits everyday throughout the project’ s period.

o Number of files changed everyday throughout the project’ s period.

o Lines of code changed everyday throughout the project’ s period.

SETUP FOR EXPERTIZA PROJECT

Docker:

The Docker has been set up on a Windows PC and steps are given below:

Start Docker on Windows

docker run --expose 3000 -p 3000:3000 -v //c//Users//Srikar//Expertiza://c//Users//Srikar//Expertiza -it winbobob/expertiza-fall2016

/etc/init.d/mysql start mysql -uroot -p show databases; quit

git clone https://github.com/srikarpotta/expertiza.git cd expertiza cp config/database.yml.example config/database.yml cp config/secrets.yml.example config/secrets.yml

bundle install rake db:migrate sudo apt-get install npm npm install -g bower

On a Local Machine:

We have used MacOS, so the following steps are in regard to MacOS. The following steps will help you set up Expertiza project in your local machine. The steps are comprehensive amalgamation of steps mentioned in Development Setup, the documentprovided and also few steps that were missed in both. The order we followed:

  1. Fork the git repository mentioned above
  1. Clone the repository to your local machine

Install Homebrew

  1. Install RBENV

brew update brew install rbenv brew install ruby-build

  1. Install dependencies

brew install aspell gcc47 libxml2 libxslt graphviz

  1. Install gems

export JAVA_HOME=/etc/alternatives/java_sdk bundle install

  1. Change yml files
  1. Go to expertiza/config and rename secrets.yml.example to secrets.yml
  1. Go to expertiza/config and rename database.yml.example to database.yml
  1. Edit database.yml to include the root password for your local MySQL in the “password” field
  1. Install mysql (https://gist.github.com/nrollr/a8d156206fa1e53c6cd6)
  1. Log into MySql as root (mysql is generally present in /usr/local/mysql/bin/)

mysql -uroot -p

  1. Create expertiza user

create user expertiza@localhost;

  1. Create the databases

create database pg_development; create database pg_test;

  1. Set privileges for expertiza user

grant all on pg_development.to expertiza@localhost; grant all on pg_test.to expertiza@localhost;

  1. Install javascript libraries

sudo apt-get install npm sudo npm install bower bower install

  1. Download the expertiza scrubbed library (https://drive.google.com/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view)
  1. Load this sql file into pg_development database created using the method mentioned here.
  1. Run bundle exec rake db:migrate
  1. Run bundle exec rake db:test:prepare
  1. Run rails s
  1. Open browser and test localhost:3000
  1. Login credentials

Username - instructor6 Password - password


sudo rm /usr/bin/node sudo ln –s /usr/bin/nodejs /usr/bin/node bower install --allow-root thin start

IMPLEMENTATION

We have modified the following files: