ubc / iPeer

Peer Evaluation System
http://ipeer.ctlt.ubc.ca
Other
17 stars 18 forks source link

Please note that with MySQL 5.7 and later, the default sql_mode has been changed. Please make sure the following modes are disabled: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, and NO_ZERO_DATE.

Quick Start

If you have docker and docker-compose environment setup on your machine, you can start running iPeer for testing / development quickly by following these steps.

# get the source
git clone https://github.com/ubc/iPeer.git

# change to iPeer directory
cd iPeer

# optionally, checkout the version you wanted to run
# git checkout tags/3.4.4

# pull git submodules
git submodule update --init --recursive

# use the default database config
cp app/config/database.php.default app/config/database.php 

# pull images and start containers
docker-compose pull && docker-compose up -d

# open a shell into the app container
docker exec -it ipeer_app bash
# within the container, install any missing packages
composer install
# exit the container
exit

# on host, change the permission of tmp folders
chmod -R 777 app/tmp
# restart containers
docker-compose restart

Launch a browser and go to http://localhost:8080/ to continue the initial setup.

Running with Docker

Prerequisites

Running

Pulling images

Note: if you are planning to do development, you can skip this step.

docker pull ubcctlt/ipeer-app

Edit docker-compose.yml

Edit the docker-compose.yml file and choose the browser for integration tests

- SELENIUM_HOST=selenium-local
- SELENIUM_BROWSER=chrome
#- SELENIUM_BROWSER=firefox

Running iPeer

Note: if you are planning to develop iPeer and did not run docker pull with above commands, you will need to run composer install to install the dependencies and generate database configuration file.

docker-compose up -d

Running iPeer unit tests

Running integration tests

Running Virtual Development Server

Virtual Environment Setup:

  1. Install VirtualBox at http://virtualbox.org
  2. Install Vagrant at http://www.vagrantup.com/downloads
  3. Go to the iPeer root directory in the terminal. Then run the following commands:

    git submodule init
    git submodule update
    vagrant box add ipeerbox http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box
    vagrant plugin install vagrant-vbguest
    vagrant up
  4. Go to localhost:2000 in your browser.

Using a different port (the port number must be available on both the virtual and host environment):

  1. change the line in file puppet/dev.pp from

    port => 2000,

    to (eg. port 8888)

    port => 8888,
  2. AND change the line in file app/tests/cases/controllers/v1_controller.test.php from

    $server = 'http://localhost:2000';

    to

    $server = 'http://localhost:8888';

Running Tests:

Go to the iPeer root directory. Then run the following commands vagrant ssh cd /var/www phing test

For more vagrant commands go to http://docs.vagrantup.com/v2/cli/index.html.

Running Tests

Integration Tests

Requirements:

Runing the tests:

cd iPeer
cake/console/cake -app app testsuite app group system

It is better not to touch the mouse or keyboard during the tests.

Configuring Caliper

In order to enable Caliper, both CALIPER_HOST and CALIPER_API_KEY must be set.

CALIPER_HOST: Set the Caliper LRS url.

CALIPER_API_KEY: API key for sending Caliper events to the LRS.

CALIPER_BASE_URL: Optionally set a base url to use for all events. This is useful to help keep statement urls consistent if the url of your instance changes over time or is accessible though different routes (ex http+https or multiple sub-domains). (Uses base url of request by default).

You may optionally override the user default IRI (from $base_url/users/view/$user_id) to something more identifiable when setting both CALIPER_ACTOR_BASE_URL and CALIPER_ACTOR_UNIQUE_IDENTIFIER_PARAM.

CALIPER_ACTOR_BASE_URL: Optionally set the actor's homepage to something else. This will be string formated to allow CALIPER_ACTOR_UNIQUE_IDENTIFIER_PARAM to be inserted into it (use %s where you want the unique identifier to appear). ex: http://www.ubc.ca/%s

CALIPER_ACTOR_UNIQUE_IDENTIFIER_PARAM: Optionally set the actor's unique identifier using any column from the user table (ex: username, id, email). Will be inserted into the CALIPER_ACTOR_BASE_URL string.

iPeer 3.4.9

iPeer 3.4.8

iPeer 3.4.7

iPeer 3.4.6

iPeer 3.4.5

Skip this version. Failed release

iPeer 3.4.4

After deployment, login to the url /upgrade as administrator to upgrade the DB. Otherwise users won't be able to load the homepage.

iPeer 3.4.3

iPeer 3.4.2

iPeer 3.4.1

iPeer 3.4.0

iPeer 3.3.4

iPeer 3.3.3

iPeer 3.3.2

iPeer 3.3.1

iPeer 3.3.0

iPeer 3.2.0

iPeer 3.1.9

iPeer 3.1.8

iPeer 3.1.7

iPeer 3.1.6

This is a maintenance release.

iPeer 3.1.5

This is a maintenance release.

iPeer 3.1.4

This is a maintenance release.

iPeer 3.1.3

This is a maintenance release.

iPeer 3.1.2

This is a maintenance release.

iPeer 3.1.1

This is a maintenance release.

iPeer 3.1.0

This is a feature release that has a few exciting new features:

iPeer 3.0.8

This is a maintenance release.

iPeer 3.0.8

This is a maintenance release.

iPeer 3.0.7

This is a maintenance release.

iPeer 3.0.6

This is a maintenance release. It fixes a few bugs related to the building block API and web interface.

iPeer 3.0.5

This is a maintenance release. It fixes a few bugs related to the building block API and web interface.

iPeer 3.0.4

This is a maintenance release. It is recommended to upgrade to this version as it fixes a one critical bug.

iPeer 3.0.3

This is a maintenance release. It is recommended to upgrade to this version as it fixes a one critical bug.

iPeer 3.0.2

This is a maintenance release. It is recommended to upgrade to this version as it fixes a few critical bugs.

iPeer 3.0.1

This is a maintenance release. It is recommended to upgrade to this version as it fixes a few critical bugs.

iPeer 3.0.0

More than 74 bug fixes or improvements from 3.0.0 Beta

iPeer 3.0.0 Beta

New Features:

iPeer 2.2

Changelog from 2.1 1) Students are now able to view released evaluation results (grades and comments) These results are anonymous, and randomly ordered. Fixed for Rubrics and Mixed Evaluations. 2) Import from CSV changes for Students/Groups: Email and password are optional. Password will be randomly generated if it is omitted from the import file. Column orders are changed. Please see the sample file on import page. Mac/Windows Excel CSV format is supported. Default course is set to blank when importing student. 3) Export Changes Corrected Export Evaluation result calculations. Evaluation result export with details. 4) Copy mixed evaluation function is now working. 5) Small GUI Changes: Changed phrasing and language to make things more clear. More clear notice if student did not finish all questions on student portal. 6) General bug fixes, including some code clean-up. 7) New Listing component Replaces most lists in iPeer with a unified component (with notable exception of Advanced Search). Easy to use for end-users, and to implement and augment by developers.

Changelog from 2.0

1) Over 180 bugs are fixed 2) Major browsers are supported 3) PHP 5.3 is supported 4) Improved security and permission checking 5) Improved installation script and new upgrade script 6) Now exports comments in the CSV file 7) Import Students/Groups from CSV file now functional 8) Instructors can only add students to the courses the instructor teaches 9) Instructors can no longer remove students from courses the instructor does not teach 10) Instructors can no longer remove students from the database 11) An instructor can no longer remove himself/herself from the course 12) Group email links are removed temporarily

Changelog from 2.0.8

1) Bug fix: #1725231 , #1725229 (see bugs list in SF for details) 2) Modify default login page to remove unnecessary JavaScript codes

upgrade from 1.6:

  1. copy the ipeer_export folder OUTSIDE of your iPeer 2 folder
  2. run it from your browser http://yourserverpath/ipeer_export/ipeer_export.php
  3. type the user/pass and whatnot to get the xml file of your database
  4. save it for now and continue on to installation of iPeer 2.

iPeer 2 install:

requirements: mod_rewrite for apache PHP 4.3.10+ with GD extension MYSQL 4+ PEAR with XML_RPC module (optional, only needed when using CWL)

  1. run http://yourserverpath/youripeerpath/install (trailing slash may be required) 1b. create a database in MySql
  2. follow the instructions for the install 2a. if you are upgrading, select UPGRADE and load the xml file there. -- in install4, make sure you set the absolute path to your path!
  3. once the install is complete, delete controllers/install_controller.php and /ipeer_export directory.

please note:

  1. The database config file /app/config/database.php must be writable during installation.
  2. After installation, please make database.php read only. It is VERY important.
  3. To change file permission, you may either use a FTP client or do it directly through command line (if you have shell access to your server. In unix, you may use chmod command to do it)

please report any bugs you find on sourceforge. we can't fix it if we don't know about it.

any suggestion or question? please let us know

troubleshooting:

-if you type http://yourserverpath/youripeerpath/ and you get http://yourserverpath/loginout/login, your mod_rewrite is not set up properly. make sure the line in http.conf has 'AllowOverride All'.