Skip to content
Adam edited this page Oct 16, 2013 · 9 revisions

Assignments are first-class objects in Galah and the API commands on this page are how you can create and make changes to them.

Tip: there is a convenient shortcut for referencing assignments described on the shortcuts page.

Command Name Description
assignment_info Print attributes describing a particular assignment.
assignment_progress Print information on how your students are progressing on a particular assignment.
create_assignment / modify_assignment Create an assignment or change certain attributs of a particular assignment.
delete_assignment Delete an assignment and all of its student's submissions.
upload_harness Uploads the test harness for the designated assignment.

assignment_info

Prints all the properties of an assignment.

Reference

assignment_info assignment

Example Usage

$ assignment_info 50907cca55c4481a5027103c
--Acting as user jsull003@ucr.edu--
Properties of Assignment [id = 50907cca55c4481a5027103c, name = World Domination Domination]:
    for_class = 509066e855c448134f67b3e4
    due_cutoff = 2012-12-01 23:59:59
    name = World Domination Domination
    due = 2012-12-01 23:59:59

Permissions

admin and teacher users can use this command.

create_assignment / modify_assignment

Creates or modifies an assignment.

Reference

create_assignment name due for_class [due_cutoff = ''] [hide_until = '']
modify_assignment id [name = ''] [due = ''] [for_class = ''] [due_cutoff = ''] [hide_until = '']
id
The assignment to modify.
<dt>name</dt>
<dd>The name of the new assignment.</dd>

<dt>due</dt>
<dd>The due date of the assignment. Must be in a format similar to `10/20/2012 10:09:00`.</dd>

<dt>for_class</dt>
<dd>The class the assignment will be created under.</dd>

<dt>due_cutoff</dt>
<dd>The cutoff date of the assignment. This is when students will no longer be able to submit at all. Must be in a format similar to `10/20/2012 10:09:00`</dd>

<dt>hide_until</dt>
<dd>If specified, the assignment will not be visible to students until this time.</dd>

Example Usage

Here we will create an assignment named World Domination due on October 31, 2012 at 10:09 AM for the class CS 9000.

$ create_assignment "World Domination" "10/31/2012 10:09:00" CS\ 9000
--Acting as user jsull003@ucr.edu--
Success! Assignment [id = 50907cca55c4481a5027103c, name = World Domination] created.

If we want students to not be able to submit at all after midnight of October 31, we could instead do this.

$ create_assignment "World Domination" "10/31/2012 10:09:00" CS\ 9000 "10/31/2012 23:59:00"
--Acting as user jsull003@ucr.edu--
Success! Assignment [id = 50907db055c4481a5027103d, name = World Domination] created.

Here we will rename an assignment named World Domination to Local Domination.

modify_assignment 50907cca55c4481a5027103c "Local Domination"
--Acting as user jsull003@ucr.edu--
Success! The following changes were applied to Assignment [id = 50907cca55c4481a5027103c, name = World Domination].
    Name changed from 'World Domination' to 'Local Domination'.

Now we will change that same assignment back to World Domination, change its due date, change what class it's for, and add a cutoff date.

modify_assignment 50907cca55c4481a5027103c "World Domination Domination" "12/01/2012 23:59:59" "CS 10" "12/02/2012 23:59:59"
--Acting as user jsull003@ucr.edu--
Success! The following changes were applied to Assignment [id = 50907cca55c4481a5027103c, name = Local Domination].
    Name changed from 'Local Domination' to 'World Domination Domination'.
    Due date changed from '2012-10-20 10:12:00' to '2012-12-01 23:59:59'.
    Cutoff date changed from 'None' to '2012-12-01 23:59:59'.
    Class changed from Class [id = 5090634855c448134f67b3e3, name = CS 9000] to Class [id = 509066e855c448134f67b3e4, name = CS 10].

Permissions

admin and teacher users can use both commands. Teacher users can only create or modify assignments for classes they are assigned to.

assignment_progress

Gets class-wide information on how students are doing on a particular assignment.

Reference

assignment_progress id [show_distro = '']
id
The assignment to check the progress of
<dt>show_distro</dt>
<dd>If not the empty string, a score distribution will be printed. See the examples below.</dd>

Examples

$ assignment_progress "CS 1000"/"Assignment 4" true
--Acting as user john@school.edu--
66 out of 87 students have submitted

-- Grade Distribution (Points: # of students) --
0: 1
1: 1
11: 5
68: 1
70: 3
73: 1
75: 2
78: 1
79: 1
80: 44
21: 1
31: 1
60: 1
63: 1

Permissions

This command can be performed by teacher and admin users.

delete_assignment

Deletes the given assignment.

Because deletion of assignments is a very expensive process (because all of the submissions made to that assignment need to be deleted from the database AND the filesystem), this call will return immediately and Galah will perform the actual deletion eventually.

Reference

delete_assignment assignment

Example Usage

Here we delete the assignment Lots of Assignments - Part 4.

$ delete_assignment 9001/"part 4"
--Acting as user jsull003@ucr.edu--
Assignment [id = 509c595a55c44810f90ec14f, name = Lots of Assignments - Part 4] has been queued for deletion. Please allow a few minutes for the task to complete.

Permissions

admin and teacher users can use this command. Teacher users can only delete assignments for classes they are assigned to.

upload_harness

Uploads a harness for the given assignment.

Reference

upload_harness assignment harness config_json

Example Usage

Here we upload a harness that has been tar'ed and zipped for the assignment Lab 1 in the CS 10 course.

> upload_harness "cs010_13fal/Lab1" lab1.tgz config.json
INFO: Executing upload_harness command on Galah as user someone@fake.edu.
Test Harness [id = 525f20a985fe9d4df7bc3fb8] successfully created

Permissions

admin, teacher and teaching assistant users can use this command. Teacher and teaching assistant users can only upload harnesses for assignments in a class they are assigned to.