<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Asorgiu</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Asorgiu"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Asorgiu"/>
	<updated>2026-05-11T19:32:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108593</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108593"/>
		<updated>2017-04-17T17:36:24Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: Changes from project contact's feedback&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be accepted/rejected (even before the final due dates).&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects (Fall 2012- Fall 2016).  Based on the meta-data from students repos/pull requests, we can warn both authors and teaching staff if our model predicts that some projects are likely to fail.&lt;br /&gt;
&lt;br /&gt;
The methodology of this project is to add a means to monitor the individual contributions of various team members throughout the duration of project in order to quantitatively access their work. This will aid the teaching staff and team members during the review process as well as improve visibility to a student of the work he or she has committed.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
=====Data Flow=====&lt;br /&gt;
&lt;br /&gt;
The code should sync the data with Github by use of a task scheduler in Expertiza.&lt;br /&gt;
&lt;br /&gt;
TO BE DONE: ADD USE CASE DIAGRAM&lt;br /&gt;
&lt;br /&gt;
=====Architectural Design=====&lt;br /&gt;
This feature has similar functionality with a web crawler, which is crawling the data from a server and store locally. So that for the architectural style of our subsystem, we would like to choose client/server style, which segregates the system into two applications, where the client makes requests to the server whenever a user is looking for the metrics. In many cases, the server is a database with application logic represented as stored procedures, in our case, is Github.&lt;br /&gt;
&lt;br /&gt;
=====UML=====&lt;br /&gt;
[[File:1744 design.png|frame|center|30px|30px]]&lt;br /&gt;
&lt;br /&gt;
=====Database Schema Changes=====&lt;br /&gt;
[[File:1744_db_schema.png|frame|center|30px|30px]]&lt;br /&gt;
&lt;br /&gt;
A new table called '''github_contributors''' is created to store the data for each committer. The table contain's the committer's email, github_id and all the metrics associated with a project. At the moment we handle the following metrics:&lt;br /&gt;
* Committer email - commiter_url&lt;br /&gt;
* Committer id - commiter_id&lt;br /&gt;
* Total number of commits - total_commits&lt;br /&gt;
* Number of files changed - files_changed&lt;br /&gt;
* Lines of code changed - lines_changed&lt;br /&gt;
* Lines of code added - lines_added&lt;br /&gt;
* Lines of code removed - lines_removed&lt;br /&gt;
* Lines of code added that survived until final submission - lines_persisted.&lt;br /&gt;
&lt;br /&gt;
An index on committer_id is added to enable search.&lt;br /&gt;
&lt;br /&gt;
A new table called '''submission_records_github_contributors''' which acts as a reference between the '''submission_records''' and '''github_contributors''' tables. It has two columns:&lt;br /&gt;
* github_contributor_id - Foreign Key to '''github_contributors''' table.&lt;br /&gt;
* submission_record_id - Foreign Key to '''submission_records''' table.&lt;br /&gt;
&lt;br /&gt;
A composite unique key constraint is added on ''github_contributor_id'' and ''submission_record_id''.&lt;br /&gt;
&lt;br /&gt;
====Test Plan====&lt;br /&gt;
&lt;br /&gt;
The tests will use rspec to validate the response to the metrics from github and displaying the various metrics. These tests will be test the data in new tables '''submission_records_github_contributors''' and '''github_contributors''' as well as expand the existing tests on '''submission_records'''.&lt;br /&gt;
&lt;br /&gt;
# Test 1: &lt;br /&gt;
## Login as instructor6&lt;br /&gt;
## Go to submission page&lt;br /&gt;
## Validate that metrics are pulled in from github&lt;br /&gt;
# Test 2:&lt;br /&gt;
## Login as student&lt;br /&gt;
## Go to submission page&lt;br /&gt;
## Confirm the student's metrics values&lt;br /&gt;
&lt;br /&gt;
=====Unit Tests=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Unit Test Summary&lt;br /&gt;
|-&lt;br /&gt;
! Method&lt;br /&gt;
! Parameter&lt;br /&gt;
! Expected result&lt;br /&gt;
|-&lt;br /&gt;
| get_metrics&lt;br /&gt;
| team_id = null&lt;br /&gt;
| Null / Exception&lt;br /&gt;
|-&lt;br /&gt;
| get_metrics&lt;br /&gt;
| team_id = Invalid team_id&lt;br /&gt;
| Null / Exception&lt;br /&gt;
|-&lt;br /&gt;
| get_metrics&lt;br /&gt;
| team_id = valid_team_id&lt;br /&gt;
| List of metrics for all the committers in the team.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;br /&gt;
THIS WILL NOT BE IMPLEMENTED AS PART OF THIS PROJECT.  This is future work to be done.&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108200</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108200"/>
		<updated>2017-04-08T02:16:09Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Data Flow */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be merged.&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects. The features above should be used, together with some temporal features (e.g. the temporal pattern of this team’s commits so far).  Eventually, we would like to e-mail students whose metrics are bad, giving them advice on how to improve.&lt;br /&gt;
&lt;br /&gt;
The purpose of this project is to add a means to monitor the individual contributions of various team members throughout the duration of project in order to quantitatively access their work. This will aid the teaching staff and team members during the review process as well as improve visibility to a student of the work he or she has committed.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
=====Use Cases=====&lt;br /&gt;
&lt;br /&gt;
=====Data Flow=====&lt;br /&gt;
&lt;br /&gt;
The code should sync the data with Github whenever someone (student or instructor) looks at a view that shows Github data.&lt;br /&gt;
&lt;br /&gt;
=====Architectural Design=====&lt;br /&gt;
&lt;br /&gt;
=====UML=====&lt;br /&gt;
&lt;br /&gt;
=====Database Schema Changes=====&lt;br /&gt;
[[File:db_github_schema.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
A new table called '''github_contributors''' is created to store the data for each committer. The table contain's the committer's email, github_id and all the metrics associated with a project. At the moment we handle the following metrics:&lt;br /&gt;
* Committer email - commiter_url&lt;br /&gt;
* Committer id - commiter_id&lt;br /&gt;
* Total number of commits - total_commits&lt;br /&gt;
* Number of files changed - files_changed&lt;br /&gt;
* Lines of code changed - lines_changed&lt;br /&gt;
* Lines of code added - lines_added&lt;br /&gt;
* Lines of code removed - lines_removed&lt;br /&gt;
* Lines of code added that survived until final submission - lines_persisted.&lt;br /&gt;
&lt;br /&gt;
An index on committer_id is added to enable search.&lt;br /&gt;
&lt;br /&gt;
A new table called '''submission_records_github_contributors''' which acts as a reference between the '''submission_records''' and '''github_contributors''' tables. It has two columns:&lt;br /&gt;
* github_contributor_id - Foreign Key to '''github_contributors''' table.&lt;br /&gt;
* submission_record_id - Foreign Key to '''submission_records''' table.&lt;br /&gt;
&lt;br /&gt;
A composite unique key constraint is added on ''github_contributor_id'' and ''submission_record_id''.&lt;br /&gt;
&lt;br /&gt;
=====Test Plan=====&lt;br /&gt;
&lt;br /&gt;
The tests will use stubs to simulate the number of commits from github and displaying the various metrics. These tests will be test the data in new tables '''submission_records_github_contributors''' and '''github_contributors''' as well as expand the existing tests on '''submission_records'''.&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;br /&gt;
THIS WILL NOT BE IMPLEMENTED AS PART OF THIS PROJECT.  This is future work to be done.&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108052</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108052"/>
		<updated>2017-04-07T19:23:23Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be merged.&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects. The features above should be used, together with some temporal features (e.g. the temporal pattern of this team’s commits so far).  Eventually, we would like to e-mail students whose metrics are bad, giving them advice on how to improve.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
=====Use Cases=====&lt;br /&gt;
&lt;br /&gt;
=====Data Flow=====&lt;br /&gt;
&lt;br /&gt;
=====Architectural Design=====&lt;br /&gt;
&lt;br /&gt;
=====UML=====&lt;br /&gt;
&lt;br /&gt;
=====Database Schema Changes=====&lt;br /&gt;
[[File:db_github_schema.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
A new table called '''github_contributors''' is created to store the data for each committer. The table contain's the committer's email, github_id and all the metrics associated with a project. At the moment we handle the following metrics:&lt;br /&gt;
* Committer email - commiter_url&lt;br /&gt;
* Committer id - commiter_id&lt;br /&gt;
* Total number of commits - total_commits&lt;br /&gt;
* Number of files changed - files_changed&lt;br /&gt;
* Lines of code changed - lines_changed&lt;br /&gt;
* Lines of code added - lines_added&lt;br /&gt;
* Lines of code removed - lines_removed&lt;br /&gt;
* Lines of code added that survived until final submission - lines_persisted.&lt;br /&gt;
&lt;br /&gt;
An index on committer_id is added to enable search.&lt;br /&gt;
&lt;br /&gt;
A new table called '''submission_records_github_contributors''' which acts as a reference between the '''submission_records''' and '''github_contributors''' tables. It has two columns:&lt;br /&gt;
* github_contributor_id - Foreign Key to '''github_contributors''' table.&lt;br /&gt;
* submission_record_id - Foreign Key to '''submission_records''' table.&lt;br /&gt;
&lt;br /&gt;
A composite unique key constraint is added on ''github_contributor_id'' and ''submission_record_id''.&lt;br /&gt;
&lt;br /&gt;
=====Test Plan=====&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;br /&gt;
THIS WILL NOT BE IMPLEMENTED AS PART OF THIS PROJECT.  This is future work to be done.&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108051</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108051"/>
		<updated>2017-04-07T19:18:07Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Database Schema Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be merged.&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects. The features above should be used, together with some temporal features (e.g. the temporal pattern of this team’s commits so far).  Eventually, we would like to e-mail students whose metrics are bad, giving them advice on how to improve.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
=====Use Cases=====&lt;br /&gt;
&lt;br /&gt;
=====Data Flow=====&lt;br /&gt;
&lt;br /&gt;
=====Architectural Design=====&lt;br /&gt;
&lt;br /&gt;
=====UML=====&lt;br /&gt;
&lt;br /&gt;
=====Database Schema Changes=====&lt;br /&gt;
[[File:db_github_schema.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
A new table called '''github_contributors''' is created to store the data for each committer. The table contain's the committer's email, github_id and all the metrics associated with a project. At the moment we handle the following metrics:&lt;br /&gt;
* Committer email - commiter_url&lt;br /&gt;
* Committer id - commiter_id&lt;br /&gt;
* Total number of commits - total_commits&lt;br /&gt;
* Number of files changed - files_changed&lt;br /&gt;
* Lines of code changed - lines_changed&lt;br /&gt;
* Lines of code added - lines_added&lt;br /&gt;
* Lines of code removed - lines_removed&lt;br /&gt;
* Lines of code added that survived until final submission - lines_persisted.&lt;br /&gt;
&lt;br /&gt;
An index on committer_id is added to enable search.&lt;br /&gt;
&lt;br /&gt;
A new table called '''submission_records_github_contributors''' which acts as a reference between the '''submission_records''' and '''github_contributors''' tables. It has two columns:&lt;br /&gt;
* github_contributor_id - Foreign Key to '''github_contributors''' table.&lt;br /&gt;
* submission_record_id - Foreign Key to '''submission_records''' table.&lt;br /&gt;
&lt;br /&gt;
A composite unique key constraint is added on ''github_contributor_id'' and ''submission_record_id''.&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;br /&gt;
THIS WILL NOT BE IMPLEMENTED AS PART OF THIS PROJECT.  This is future work to be done.&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108050</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108050"/>
		<updated>2017-04-07T19:17:38Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be merged.&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects. The features above should be used, together with some temporal features (e.g. the temporal pattern of this team’s commits so far).  Eventually, we would like to e-mail students whose metrics are bad, giving them advice on how to improve.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
=====Use Cases=====&lt;br /&gt;
&lt;br /&gt;
=====Data Flow=====&lt;br /&gt;
&lt;br /&gt;
=====Architectural Design=====&lt;br /&gt;
&lt;br /&gt;
=====UML=====&lt;br /&gt;
&lt;br /&gt;
=====Database Schema Changes=====&lt;br /&gt;
[[File:db_github_schema.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
A new table called '''github_contributors''' is created to store the data for each committer. The table contain's the committer's email, github_id and all the metrics associated with a project. At the momentwe handle the following metrics:&lt;br /&gt;
* Committer email - commiter_url&lt;br /&gt;
* Committer id - commiter_id&lt;br /&gt;
* Total number of commits - total_commits&lt;br /&gt;
* Number of files changed - files_changed&lt;br /&gt;
* Lines of code changed - lines_changed&lt;br /&gt;
* Lines of code added - lines_added&lt;br /&gt;
* Lines of code removed - lines_removed&lt;br /&gt;
* Lines of code added that survived until final submission - lines_persisted.&lt;br /&gt;
&lt;br /&gt;
An index on committer_id is added to enable search.&lt;br /&gt;
&lt;br /&gt;
A new table called '''submission_records_github_contributors''' which acts as a reference between the '''submission_records''' and '''github_contributors''' tables. It has two columns:&lt;br /&gt;
* github_contributor_id - Foreign Key to '''github_contributors''' table.&lt;br /&gt;
* submission_record_id - Foreign Key to '''submission_records''' table.&lt;br /&gt;
&lt;br /&gt;
A composite unique key constraint is added on ''github_contributor_id'' and ''submission_record_id''.&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;br /&gt;
THIS WILL NOT BE IMPLEMENTED AS PART OF THIS PROJECT.  This is future work to be done.&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108049</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108049"/>
		<updated>2017-04-07T19:15:21Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be merged.&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects. The features above should be used, together with some temporal features (e.g. the temporal pattern of this team’s commits so far).  Eventually, we would like to e-mail students whose metrics are bad, giving them advice on how to improve.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
=====Database Schema Changes=====&lt;br /&gt;
[[File:db_github_schema.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
A new table called '''github_contributors''' is created to store the data for each committer. The table contain's the committer's email, github_id and all the metrics associated with a project. At the momentwe handle the following metrics:&lt;br /&gt;
* Committer email - commiter_url&lt;br /&gt;
* Committer id - commiter_id&lt;br /&gt;
* Total number of commits - total_commits&lt;br /&gt;
* Number of files changed - files_changed&lt;br /&gt;
* Lines of code changed - lines_changed&lt;br /&gt;
* Lines of code added - lines_added&lt;br /&gt;
* Lines of code removed - lines_removed&lt;br /&gt;
* Lines of code added that survived until final submission - lines_persisted.&lt;br /&gt;
&lt;br /&gt;
An index on committer_id is added to enable search.&lt;br /&gt;
&lt;br /&gt;
A new table called '''submission_records_github_contributors''' which acts as a reference between the '''submission_records''' and '''github_contributors''' tables. It has two columns:&lt;br /&gt;
* github_contributor_id - Foreign Key to '''github_contributors''' table.&lt;br /&gt;
* submission_record_id - Foreign Key to '''submission_records''' table.&lt;br /&gt;
&lt;br /&gt;
A composite unique key constraint is added on ''github_contributor_id'' and ''submission_record_id''.&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;br /&gt;
THIS WILL NOT BE IMPLEMENTED AS PART OF THIS PROJECT.  This is future work to be done.&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108048</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=108048"/>
		<updated>2017-04-07T19:13:28Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Build a classifier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be merged.&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects. The features above should be used, together with some temporal features (e.g. the temporal pattern of this team’s commits so far).  Eventually, we would like to e-mail students whose metrics are bad, giving them advice on how to improve.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;br /&gt;
THIS WILL NOT BE IMPLEMENTED AS PART OF THIS PROJECT.  This is future work to be done.&lt;br /&gt;
&lt;br /&gt;
====Database Schema Changes====&lt;br /&gt;
[[File:db_github_schema.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
A new table called '''github_contributors''' is created to store the data for each committer. The table contain's the committer's email, github_id and all the metrics associated with a project. At the momentwe handle the following metrics:&lt;br /&gt;
* Committer email - commiter_url&lt;br /&gt;
* Committer id - commiter_id&lt;br /&gt;
* Total number of commits - total_commits&lt;br /&gt;
* Number of files changed - files_changed&lt;br /&gt;
* Lines of code changed - lines_changed&lt;br /&gt;
* Lines of code added - lines_added&lt;br /&gt;
* Lines of code removed - lines_removed&lt;br /&gt;
* Lines of code added that survived until final submission - lines_persisted.&lt;br /&gt;
&lt;br /&gt;
An index on committer_id is added to enable search.&lt;br /&gt;
&lt;br /&gt;
A new table called '''submission_records_github_contributors''' which acts as a reference between the '''submission_records''' and '''github_contributors''' tables. It has two columns:&lt;br /&gt;
* github_contributor_id - Foreign Key to '''github_contributors''' table.&lt;br /&gt;
* submission_record_id - Foreign Key to '''submission_records''' table.&lt;br /&gt;
&lt;br /&gt;
A composite unique key constraint is added on ''github_contributor_id'' and ''submission_record_id''.&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107915</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107915"/>
		<updated>2017-04-05T17:30:53Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: Add section headers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
We will add a new feature to provide Expertiza with Github metrics (for example, number of committers, number of commits, number of lines of code modified, number of lines added, number of lines deleted.) from each group’s submitted repo link.  This information should prove useful for differentiating the performance of team members for grading purposes. It may also help instructors to predict which projects are likely to be merged.&lt;br /&gt;
&lt;br /&gt;
===Work to be done===&lt;br /&gt;
This project is divided into two parts. One is to extract Github metadata of the submitted repos and pull requests. The second part is to build a classifier (e.g., Bayesian) to do the early prediction on some projects that are likely to fail. This prediction is based on more than 200 past projects. The features above should be used, together with some temporal features (e.g. the temporal pattern of this team’s commits so far).  Eventually, we would like to e-mail students whose metrics are bad, giving them advice on how to improve.&lt;br /&gt;
&lt;br /&gt;
====Extract Github metadata====&lt;br /&gt;
&lt;br /&gt;
====Build a classifier====&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107914</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107914"/>
		<updated>2017-04-05T17:25:47Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''CSC517 Final Project - E1744 Github Metrics'''&lt;br /&gt;
&lt;br /&gt;
'''(asorgiu, george2, mdunlap, ygou14)'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Proposed Design Document ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107913</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107913"/>
		<updated>2017-04-05T17:22:15Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC517 Final Project - E1744 Github Metrics&lt;br /&gt;
&lt;br /&gt;
(asorgiu, george2, mdunlap, ygou14)&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107900</id>
		<title>CSC/ECE 517 Spring 2017/finalproject E1744</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/finalproject_E1744&amp;diff=107900"/>
		<updated>2017-04-04T23:13:23Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: Created page with &amp;quot;CSC517 Final Project - E1744 Github Metrics  (asorgiu, bzamani, george2, mdunlap)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC517 Final Project - E1744 Github Metrics&lt;br /&gt;
&lt;br /&gt;
(asorgiu, bzamani, george2, mdunlap)&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107102</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107102"/>
		<updated>2017-03-22T21:30:36Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Testing Instructions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
====First task====&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info.&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107101</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107101"/>
		<updated>2017-03-22T21:29:31Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Testing using Selenium IDE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107100</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107100"/>
		<updated>2017-03-22T21:29:10Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Running the Project Locally */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Remotely==&lt;br /&gt;
We have hosted our forked repo so you can review our changes here:&lt;br /&gt;
&lt;br /&gt;
http://138.197.104.185:3000/&lt;br /&gt;
&lt;br /&gt;
Suggested login for Instructor privileges is 'instructor6' with password 'password'. To login as a student, you can use 'student5000' with password 'password'&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107098</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107098"/>
		<updated>2017-03-22T21:25:01Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, make sure you are managing assignments, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
Those who contributed to the project could run the project locally by going to a terminal window, navigating to the project folder and running the single command:&lt;br /&gt;
&lt;br /&gt;
  rails server&lt;br /&gt;
&lt;br /&gt;
If the project was to be run again after changes to project code have been made, the commands to run from the terminal window would be as follows:&lt;br /&gt;
&lt;br /&gt;
  bundle install&lt;br /&gt;
  rails s&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107097</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107097"/>
		<updated>2017-03-22T21:24:21Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Tasks Identified */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information). The javascript from the file _due_dates.html.erb was also moved to the new signup.js file.&lt;br /&gt;
This functionality can be tested by logging in as an instructor, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
Those who contributed to the project could run the project locally by going to a terminal window, navigating to the project folder and running the single command:&lt;br /&gt;
&lt;br /&gt;
  rails server&lt;br /&gt;
&lt;br /&gt;
If the project was to be run again after changes to project code have been made, the commands to run from the terminal window would be as follows:&lt;br /&gt;
&lt;br /&gt;
  bundle install&lt;br /&gt;
  rails s&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107086</id>
		<title>CSC/ECE 517 Spring 2017/oss E1727</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Spring_2017/oss_E1727&amp;diff=107086"/>
		<updated>2017-03-22T20:48:20Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: Update task info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
This project was completed as part of a greater open source project called Expertiza. &lt;br /&gt;
&lt;br /&gt;
Expertiza is a web application platform, similar to wikipedia, which offers teachers and students a way to organize for group assignments and porjects. By using Expertiza, students have the ability to submit and coordinate peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation. &lt;br /&gt;
&lt;br /&gt;
Expertiza offers several features which are useful to a classroom-style learning environment. Among those several features, this project represents a contribution to the organization of the code used for assignment signup sheets. &lt;br /&gt;
&lt;br /&gt;
===Background===&lt;br /&gt;
The work for this project was completed by a group of three students from NC State. However, the project was completed according to guidelines provided by a coordinator who works with Expertiza. &lt;br /&gt;
&lt;br /&gt;
Following the guidelines provided, the group worked to clean up a portion of the Expertiza project code through refactorization and reorganization. More specifically, logical code needed to be separated from portions of the project which were not responsible for containing code for the functionality of the application.&lt;br /&gt;
&lt;br /&gt;
===Motivation===&lt;br /&gt;
The motivation for this project was to make the project code easier for programmers to read by compartmentalizing portions of the code to separate locations in the project according to the functionality of the code. &lt;br /&gt;
&lt;br /&gt;
The scope of this project was limited to functionalities associated with the signup sheet. This meant that logical code that was embedded in &amp;quot;view&amp;quot; (a folder containing html formatting and design code) should be moved to a more appropriate location, the &amp;quot;helpers&amp;quot; folder (this folder contains compartmentalized auxiliary functions that &amp;quot;help&amp;quot; with other parts of the project).&lt;br /&gt;
&lt;br /&gt;
===Tasks Identified===&lt;br /&gt;
     '''Documents:''' _add_signup_topics.html.erb, _due_dates.html.erb&lt;br /&gt;
* Move javascript code to assets (folder): There was some javascript at the bottom of the file _add_signup_topics.html.erb. This was moved to a new file app/assets/javascripts/signup.js. The functions were modified to pass in the number of teams that needed to be toggled (since it is now in a separate file without access to that information)&lt;br /&gt;
This functionality can be tested by logging in as an instructor, then click the &amp;quot;Edit&amp;quot; button of an assignment (the little pencil icon on the right), then choose the &amp;quot;Topic&amp;quot; tab. If you click &amp;quot;Hide all teams&amp;quot; link, all team names and team member unity ids will be hidden. Click the link again and the content will be shown. If you click individual top names, it should hide/show only one team's info. &lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _suggested_topic.html.erb, intelligent_topic_selection.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
     '''Documents:''' _all_actions.html.erb, _topic_names.html.erb&lt;br /&gt;
* Move logical code to helper file and assign self-explanatory method names.&lt;br /&gt;
&lt;br /&gt;
'''Testing:'''&lt;br /&gt;
* Create a test file named sign_up_sheet_helper_spec.rb in spec/helpers&lt;br /&gt;
* Write test cases for all methods in sign_up_sheet_helper.rb using factories&lt;br /&gt;
&lt;br /&gt;
====Classes====&lt;br /&gt;
* sign_up_sheet_helper.rb&lt;br /&gt;
* sign_up_sheet_helper_spec.rb&lt;br /&gt;
&lt;br /&gt;
===Project Modifications===&lt;br /&gt;
&lt;br /&gt;
==== New Method: check_topic_due_date_value() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def check_topic_due_date_value(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
      due_date = get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id, review_round)&lt;br /&gt;
      DateTime.parse(due_date.to_s).strftime(&amp;quot;%Y-%m-%d %H:%M&amp;quot;).in_time_zone&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_deadline() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_deadline(assignment_due_dates, topic_id, deadline_type_id = 1, review_round = 1)&lt;br /&gt;
    topic_due_date = TopicDueDate.where(parent_id: topic_id,&lt;br /&gt;
                                        deadline_type_id: deadline_type_id,&lt;br /&gt;
                                        round: review_round).first rescue nil&lt;br /&gt;
    if !topic_due_date.nil?&lt;br /&gt;
      topic_due_date.due_at&lt;br /&gt;
    else&lt;br /&gt;
      assignment_due_dates[review_round - 1].due_at.to_s&lt;br /&gt;
    end&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_suggested_topics() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_suggested_topics(assignment_id)&lt;br /&gt;
    team_id = TeamsUser.team_id(assignment_id, session[:user].id)&lt;br /&gt;
    teams_users = TeamsUser.where(team_id: team_id)&lt;br /&gt;
    teams_users_array = Array.new&lt;br /&gt;
    teams_users.each do |teams_user|&lt;br /&gt;
      teams_users_array &amp;lt;&amp;lt; teams_user.user_id&lt;br /&gt;
    end&lt;br /&gt;
    @suggested_topics = SignUpTopic.where(assignment_id: assignment_id, private_to: teams_users_array)&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_intelligent_topic_row() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_intelligent_topic_row(topic, selected_topics)&lt;br /&gt;
    row_html = ''&lt;br /&gt;
    if !selected_topics.nil? &amp;amp;&amp;amp; selected_topics.size != 0&lt;br /&gt;
      for selected_topic in @selected_topics&lt;br /&gt;
        if selected_topic.topic_id == topic.id and !selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;yellow&amp;quot;&amp;gt;'&lt;br /&gt;
        elsif selected_topic.topic_id == topic.id and selected_topic.is_waitlisted&lt;br /&gt;
          row_html = '&amp;lt;tr bgcolor=&amp;quot;lightgray&amp;quot;&amp;gt;'&lt;br /&gt;
        else&lt;br /&gt;
          row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + '&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      row_html = '&amp;lt;tr id=&amp;quot;topic_&amp;quot;' + topic.id.to_s + ' style=&amp;quot;background-color:' + get_topic_bg_color(topic) + '&amp;quot;&amp;gt;'&lt;br /&gt;
    end&lt;br /&gt;
    row_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: get_topic_bg_color() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def get_topic_bg_color(topic)&lt;br /&gt;
    'rgb(' + (400*(1-(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).count,1].min-1)+1)/2))&lt;br /&gt;
        .to_i.to_s + ',' + (400*(Math.tanh(2*[@max_team_size.to_f/Bid.where(topic_id:topic.id).&lt;br /&gt;
        count,1].min-1)+1)/2).to_i.to_s + ',0)'&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== New Method: render_participant_info() ====&lt;br /&gt;
  &amp;lt;nowiki&amp;gt; def render_participant_info(topic, assignment, participants)&lt;br /&gt;
    name_html = ''&lt;br /&gt;
    if !participants.nil? &amp;amp;&amp;amp; participants.size &amp;gt; 0&lt;br /&gt;
      chooser_present = false&lt;br /&gt;
      for participant in @participants&lt;br /&gt;
        if topic.id == participant.topic_id&lt;br /&gt;
          chooser_present = true&lt;br /&gt;
          if assignment.max_team_size &amp;gt; 1&lt;br /&gt;
            name_html += '&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;' + participant.team_name_placeholder + '&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += 'participant.user_name_placeholder'&lt;br /&gt;
          if participant.is_waitlisted&lt;br /&gt;
            name_html += '&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;(waitlisted)&amp;lt;/font&amp;gt;'&lt;br /&gt;
          end&lt;br /&gt;
          name_html += '&amp;lt;br/&amp;gt;'&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      unless chooser_present&lt;br /&gt;
        name_html += 'No choosers.'&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    name_html.html_safe&lt;br /&gt;
  end&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Changes to the View===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Impact Analysis ====&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
===Affected Classes===&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Running the Project Locally==&lt;br /&gt;
Those who contributed to the project could run the project locally by going to a terminal window, navigating to the project folder and running the single command:&lt;br /&gt;
&lt;br /&gt;
  rails server&lt;br /&gt;
&lt;br /&gt;
If the project was to be run again after changes to project code have been made, the commands to run from the terminal window would be as follows:&lt;br /&gt;
&lt;br /&gt;
  bundle install&lt;br /&gt;
  rails s&lt;br /&gt;
&lt;br /&gt;
==Testing using Selenium IDE==&lt;br /&gt;
&lt;br /&gt;
===Testing Instructions===&lt;br /&gt;
&lt;br /&gt;
==Future Work==&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106962</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106962"/>
		<updated>2017-03-14T01:03:47Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: add login info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Run SQL script to scrub DB====&lt;br /&gt;
Here is the link of Expertiza scrubbed DB (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view?usp=sharing)&lt;br /&gt;
Download the file, unzip it and dump to MySQL.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p -h localhost &amp;lt; expertiza-fall2016-scrubbedDB.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set up secrets file==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/secrets.yml.example config/secrets.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup Bower==&lt;br /&gt;
First, install bower with npm (install npm first if not already installed)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;npm install bower -g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run this from the expertiza directory&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bower install --allow-root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Start rails server==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rails server&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then direct your browser to &amp;lt;code&amp;gt;http://localhost:3000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can log in using instructor6. student5000, student5001, etc. are good too.&lt;br /&gt;
The password for any account is &amp;quot;password&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106961</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106961"/>
		<updated>2017-03-14T01:01:06Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: Bower setup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Run SQL script to scrub DB====&lt;br /&gt;
Here is the link of Expertiza scrubbed DB (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view?usp=sharing)&lt;br /&gt;
Download the file, unzip it and dump to MySQL.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p -h localhost &amp;lt; expertiza-fall2016-scrubbedDB.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set up secrets file==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/secrets.yml.example config/secrets.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup Bower==&lt;br /&gt;
First, install bower with npm (install npm first if not already installed)&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;npm install bower -g&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run this from the expertiza directory&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bower install --allow-root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Start rails server==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rails server&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then direct your browser to &amp;lt;code&amp;gt;http://localhost:3000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106960</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106960"/>
		<updated>2017-03-14T00:48:49Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Run SQL script to scrub DB====&lt;br /&gt;
Here is the link of Expertiza scrubbed DB (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view?usp=sharing)&lt;br /&gt;
Download the file, unzip it and dump to MySQL.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p -h localhost &amp;lt; expertiza-fall2016-scrubbedDB.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set up secrets file==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/secrets.yml.example config/secrets.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106959</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106959"/>
		<updated>2017-03-12T17:01:58Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Run SQL script to scrub DB====&lt;br /&gt;
Here is the link of Expertiza scrubbed DB (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view?usp=sharing)&lt;br /&gt;
Download the file, unzip it and dump to MySQL.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p -h localhost &amp;lt; expertiza-fall2016-scrubbedDB.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106958</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106958"/>
		<updated>2017-03-12T16:59:38Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* DEPRECATED [Use .sql script above instead] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Run SQL script to scrub DB====&lt;br /&gt;
Here is the link of Expertiza scrubbed DB (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view?usp=sharing)&lt;br /&gt;
Download the file, unzip it and dump to MySQL.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p -h localhost &amp;lt; expertiza-fall2016-scrubbedDB.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DEPRECATED [Use .sql script above instead of the next 4 steps]====&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/DEPRECATED====&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106957</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106957"/>
		<updated>2017-03-12T16:58:55Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Set the MySql Root Password */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Run SQL script to scrub DB====&lt;br /&gt;
Here is the link of Expertiza scrubbed DB (https://drive.google.com/a/ncsu.edu/file/d/0B2vDvVjH76uEMDJhNjZVOUFTWmM/view?usp=sharing)&lt;br /&gt;
Download the file, unzip it and dump to MySQL.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p -h localhost &amp;lt; expertiza-fall2016-scrubbedDB.sql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====DEPRECATED [Use .sql script above instead]====&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/DEPRECATED====&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106956</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106956"/>
		<updated>2017-03-12T16:57:28Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* DEPRECATED [Use .sql script instead] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====DEPRECATED [Use .sql script above instead]====&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====/DEPRECATED====&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106955</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106955"/>
		<updated>2017-03-12T16:56:32Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* DEPRECATED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====DEPRECATED [Use .sql script instead]====&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====/DEPRECATED====&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106954</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106954"/>
		<updated>2017-03-12T16:55:53Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====DEPRECATED [Use .sql script instead]====&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
&lt;br /&gt;
=====Create the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Create the Databases=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Grant Privileges to the Expertiza User=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====DEPRECATED====&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106953</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106953"/>
		<updated>2017-03-12T16:54:29Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Log in to MySql */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====DEPRECATED [Use .sql script instead]&lt;br /&gt;
=====Log in to MySql=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====DEPRECATED&lt;br /&gt;
&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106952</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106952"/>
		<updated>2017-03-12T15:34:26Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Build the Expertiza Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106951</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106951"/>
		<updated>2017-03-12T15:34:05Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Build the Expertiza Database */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
First, you have to copy the sample database config to a real one.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cp config/database.yml.example config/database.yml&amp;lt;pre&amp;gt;&lt;br /&gt;
Then edit the file and put your mysql password in there so it can log into the db&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;vi config/database.yml&amp;lt;pre&amp;gt;&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106950</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106950"/>
		<updated>2017-03-12T15:29:29Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Grant Privileges to the Expertiza User */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on expertiza_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106949</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106949"/>
		<updated>2017-03-12T15:29:07Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Create the Databases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database expertiza_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106948</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106948"/>
		<updated>2017-03-12T15:22:40Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Install Bundled Gems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possible alternate step if _bundle install_ command has build errors:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bundle config build.eventmachine --with-cppflags=-I/usr/local/opt/openssl/include&lt;br /&gt;
$ brew install apple-gcc42&lt;br /&gt;
$ brew unlink apple-gcc42&lt;br /&gt;
$ brew link apple-gcc42&lt;br /&gt;
$ export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2&lt;br /&gt;
$ export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2&lt;br /&gt;
$ export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106947</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106947"/>
		<updated>2017-03-12T15:17:10Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Install Bundled Gems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem (set it to a valid location, your path may vary):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106946</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106946"/>
		<updated>2017-03-12T15:16:22Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Install Bundled Gems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106945</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106945"/>
		<updated>2017-03-12T15:15:04Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Install Native Expertiza Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz openssl&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/etc/alternatives/java_sdk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106944</id>
		<title>Development:Setup:OSX</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Development:Setup:OSX&amp;diff=106944"/>
		<updated>2017-03-12T15:14:39Z</updated>

		<summary type="html">&lt;p&gt;Asorgiu: /* Install Ruby v. 1.8.7 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Prerequisites==&lt;br /&gt;
* You must have shell access&lt;br /&gt;
* You must have root access (via sudo), or the required software must already be installed&lt;br /&gt;
==Install Git==&lt;br /&gt;
[http://git-scm.com/download/mac Git for OS X]&lt;br /&gt;
&lt;br /&gt;
==Get Expertiza==&lt;br /&gt;
====Fork Expertiza to your Github====&lt;br /&gt;
* If you don't have a Github account, register one, and remember the password!!&lt;br /&gt;
* go to https://github.com/expertiza/expertiza and click on the &amp;quot;Fork&amp;quot; button on the upper right side. &lt;br /&gt;
* When asked &amp;quot;Where should we fork this repository?&amp;quot; choose your account, which usually looks like this &amp;quot;@YourUsername&amp;quot;&lt;br /&gt;
* Then go to https://github.com/[YourUsername]/expertiza and click on the &amp;quot;Clone or Download&amp;quot; button&lt;br /&gt;
* Copy the url, which usually looks like &amp;quot;https://github.com/[YourUsername]/expertiza.git&amp;quot;&lt;br /&gt;
* Then go to your terminal and go to a folder of your choice where the codes will be downloaded into. &lt;br /&gt;
* To clone the project, type in &amp;quot;git clone https://github.com/[YourUsername]/expertiza.git&amp;quot; &lt;br /&gt;
* when asked for a password, enter your password&lt;br /&gt;
&lt;br /&gt;
====Merge your changes to Expertiza====&lt;br /&gt;
* When you're done editing the code, commit the code to your local repository by executing this in terminal: &lt;br /&gt;
** git add -A #mark all changed files to be committed to the repository&lt;br /&gt;
** git commit -m &amp;quot;say what you have done to the code&amp;quot;  #commit your changes to the local repository&lt;br /&gt;
** git push #sync your changes to the remote repository&lt;br /&gt;
* Do commit as often as needed to store the states of the code. Do commit before you do changes that you're not sure about. It'd allow you to revert back to your previous states if you screw up the code. &lt;br /&gt;
* Do push less often (maybe every 5-10 commits)&lt;br /&gt;
* Before requesting for a merge, please refactor your code and put comments. Bad code won't be merged!&lt;br /&gt;
* After you're done with beautifying your project, go to https://github.com/[YourUsername]/expertiza, and click on &amp;quot;New pull request&amp;quot; on the left side.&lt;br /&gt;
* Your code will be reviewed and merged if the quality is good enough! &lt;br /&gt;
&lt;br /&gt;
====[DEPRECATED. DO NOT USE UNLESS ADVISED]====&lt;br /&gt;
=====Expertiza Repository URLs=====&lt;br /&gt;
* (ssh, read/write) git@github.com:expertiza/expertiza.git&lt;br /&gt;
* (https, read/write) https://github.com/expertiza/expertiza.git&lt;br /&gt;
* (git, read-only) git://github.com/expertiza/expertiza.git&lt;br /&gt;
=====Default [DEPRECATED]=====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
=====Options =====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b &amp;lt;branch&amp;gt; &amp;lt;remote&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;git clone -b production git@github.com:expertiza/expertiza.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Homebrew==&lt;br /&gt;
http://mxcl.github.io/homebrew&lt;br /&gt;
&lt;br /&gt;
==Install RBENV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ brew update&lt;br /&gt;
$ brew install rbenv&lt;br /&gt;
$ brew install ruby-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Ruby v. 2.1.5==&lt;br /&gt;
https://github.com/sstephenson/ruby-build/wiki#installing-187-on-os-x-108-mountain-lion&lt;br /&gt;
&lt;br /&gt;
==Install Native Expertiza Dependencies==&lt;br /&gt;
Dependencies are for the gems raspell, rjb, nokogiri, and mysql.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;brew install aspell gcc47 libxml2 libxslt graphviz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install Bundled Gems==&lt;br /&gt;
Set JAVA_HOME for the rjb gem:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;export JAVA_HOME=/etc/alternatives/java_sdk&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;bundle install&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set Up the Database==&lt;br /&gt;
====Set the MySql Root Password====&lt;br /&gt;
This step is not necessary, but it is advised to set a root mysql password.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysqladmin -u root password&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Log in to MySql====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;mysql -uroot -p&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following commands are executed inside mysql&lt;br /&gt;
====Create the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create user expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Create the Databases====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_development;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;create database pg_test;&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Grant Privileges to the Expertiza User====&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_development.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;grant all on pg_test.* to expertiza@localhost;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Build the Expertiza Database==&lt;br /&gt;
Notice: You may need to prepend the following commands with &amp;lt;code&amp;gt;bundle exec&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:migrate&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;rake db:test:prepare&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Import Production Data (Optional)====&lt;br /&gt;
This step requires that you have your ssh private/public key pairs loaded in the production server under the rails user.&amp;lt;br /&amp;gt;&lt;br /&gt;
[[How to Add SSH Keys to the Expertiza Production Server]] &amp;lt;br /&amp;gt;&lt;br /&gt;
You must run the following command from your local Expertiza project directory.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;white-space:normal;&amp;quot;&amp;gt;cap production load_data&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Asorgiu</name></author>
	</entry>
</feed>