CSC/ECE 517 Fall 2017/E1783 Convolutional data extraction from Github
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:
- Fork the git repository mentioned above
- Clone the repository to your local machine
Install Homebrew
- Install RBENV
brew update brew install rbenv brew install ruby-build
- Install dependencies
brew install aspell gcc47 libxml2 libxslt graphviz
- Install gems
export JAVA_HOME=/etc/alternatives/java_sdk bundle install
- Change yml files
- Go to expertiza/config and rename secrets.yml.example to secrets.yml
- Go to expertiza/config and rename database.yml.example to database.yml
- Edit database.yml to include the root password for your local MySQL in the “password” field
- Install mysql (https://gist.github.com/nrollr/a8d156206fa1e53c6cd6)
- Log into MySql as root (mysql is generally present in /usr/local/mysql/bin/)
mysql -uroot -p
- Create expertiza user
create user expertiza@localhost;
- Create the databases
create database pg_development; create database pg_test;
- Set privileges for expertiza user
grant all on pg_development.to expertiza@localhost; grant all on pg_test.to expertiza@localhost;
- Install javascript libraries
sudo apt-get install npm sudo npm install bower bower install
- Download the expertiza scrubbed library (https://drive.google.com/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view)
- Load this sql file into pg_development database created using the method mentioned here.
- Run bundle exec rake db:migrate
- Run bundle exec rake db:test:prepare
- Run rails s
- Open browser and test localhost:3000
- 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: