/Gradesource-Uploader

Gradesource Uploader

Primary LanguagePythonMIT LicenseMIT

README
Chu Shao
Jan 1, 2013
cshao@eng.ucsd.edu

HEROKU WEBAPP VERISON:
http://gradesource-uploader.herokuapp.com/

REQUIREMENTS:
Python 2.7.x
This will not work on Python3++ and is untested for anything besides Python 2.7.x

Usage:
This python script is used to mass import grades into Gradesource.
It has four functions: 
- Download student name and email into a CSV file (CSV format: Name, Email)
- Download student name and PID (for iClicker usage) into a CSV file (CSV format: Last Name, First Name, Email)
- Send a CSV file to Gradesource to update a certain score using PID (CSV format, PID, Score)
- Send a CSV file to Gradesource to update a certain score using Email (CSV format: Email, score)


To find the course ID:
Login to Gradesource.
Click on edit course.
In the URL it should be https://www.gradesource.com/editcourse.asp?id=XXXXX
the number after id= is your course ID

To find the assignment ID:
Login to Gradesource.
Click on Scores.
Find the Assignment that you would like to modify.
In the URL it should be https://www.gradesource.com/editscores1.asp?id=XXXXXX
the number after id= is your assignment ID

To use: 
To download student name and email (don't forget to use quotes):

python -c 'import gradesourceuploader; gradesourceuploader.downloadEmail(login, courseID)'
EXAMPLE: 
python -c 'import gradesourceuploader; gradesourceuploader.downloadEmail("cshao", "99999")'

To download student name and PID (don't forget to use quotes and mainly for iClicker)
python -c 'import, gradesourceuploader; gradeseourceuploader.downloadiClicker(login, courseID)'
EXAMPLE:
python -c 'import gradesourceuploader; gradesourceuploader.downloadiClicker("cshao", "99999")'

The overwrite feature is to overwrite 0s. If Overwrite is set to 1, then 0s will be treated as 0s and when sent to gradesource, they will overwrite
the previous score wit ha 0. If Overwrite is set to 0, then 0 will be treated as null and when sent to gradesource, they will not overwrite the previous score.


To upload scores from a CSV file using email:
python -c 'import gradesourceuploader; gradesourceuploader.updateScoresByEmail(login, courseID, assignmentID, CSVFile, overwrite)'
EXAMPLE:
python -c 'import gradesourceuploader; gradesourceuploader.updateScoresByEmail("cshao", "99999", "111111", "grades.csv", "0")'

the CSV file should contain
email@email.com,score
score can be empty as well

To upload scores from a CSV file using PID:
python -c 'import gradesourceuploader; gradesourceuploader.updateScoresByPID(login, courseID, assignmentID, CSVFile, overwrite)'
EXAMPLE:
python -c 'import gradesourceuploader; gradesourceuploader.updateScoresByPID(login, courseID, assignmentID, CSVFile, "1")'

####NOTE####
MAKE SURE THE CSV CONTAINS EVERY EMAIL FROM GRADESOURCE FOR THAT ACCOUNT.
AN EASY WAY IS TO GENERATE THE CSV  DOCUMENT AND THEN REMOVE THE FIRST COLUMN AFTER DONE INPUTTING GRADES


See sample.csv for example of updateScores