« Previous -
Version 15/20
(diff) -
Next » -
Current version
Rémi G., 03/19/2018 10:56 am
Presentation¶
AMCtoOwncloud is a Nautilus script that sends Auto Multiple Choice (AMC) annotated papers to Owncloud/Nextcloud and share them with the corresponding students.
Each quiz file is uploaded to a remote folder unique to each student. Then each folder is:
- shared with the student who can be a local user or a remote user on another federated server
- shared by link
Eventually, shared links are saved to a newly created .csv
file (default behaviour) or to the current .csv
file.
In the end, the remote folder structure will look like this:
Quizzes/ ├── 3emeE/ | ├── MOUSE Mickey (3998) - Maths Quizzes/ │ │ └── Quiz 1 - MOUSE Mickey (3998).pdf │ └── MOUSE Minnie (3999) - Maths Quizzes/ │ └── Quiz 1 - MOUSE Minnie (3999).pdf └── 4emeE/ └── DUCK Donald (4999) - Maths Quizzes/ └── Quiz 1 - DUCK Donald (3999).pdf
The root folder Quizzes/
, Quiz 1
, and Maths Quizzes
are configurable, and the other fields come from the .csv
file.
For instance, if you don't have groups specified in you .csv
file, and you leave the root folder empty ''
, it can also look like this:
MOUSE Mickey (3998) - Maths Quizzes/ └── Quiz 1 - MOUSE Mickey (3998).pdf MOUSE Minnie (3999) - Maths Quizzes/ └── Quiz 1 - MOUSE Minnie (3999).pdf DUCK Donald (4999) - Maths Quizzes/ └── Quiz 1 - DUCK Donald (3999).pdf
Installation¶
Download the latest release from github and copy AMCtoOwncloud.sh
and .AMCtoOwncloud.py
in the Nautilus scripts folder: ~/.local/share/nautilus/scripts/
In order to make it work, you need to install the following Python modules:
requests
, lxml.html
, owncloud
(see pyocclient).
Usually the first are packaged in your distribution. For the owncloud
package, I use the following command:
pip3 install pyocclient
You also need gnome-terminal
or you will have to edit the AMCtoOwncloud.sh
script file to use another terminal.
Configuration¶
Edit the .AMCtoOwncloud.py
and change the parameters at the end:
1CSV = '/path/to/csv/students.csv'
2FOLDER = 'Quizzes/'
3ADDRESS = 'https://ncloud.zaclys.com'
4USERNAME = 'MyUserName'
The CSV file containing all your student information must use colons :
as separators and the following headers (there are optional parameters in method identify_students()
to change this behaviour, see Special use cases):
group:surname:name:number:owncloud:email 3emeE:MOUSE:Mickey:3998:cabitzmil:mickeymouse@domain.com 3emeE:MOUSE:Minnie:3999:agrevet:minniemouse@domain.com 4emeE:DUCK:Donald:4999:prenaud@aFederatedServer.com:donaldduck@domain.com
Finally, annotated papers must contain the student number in their name
(the first number of the file name is extracted to associate each quiz to the corresponding student). Don't forget to configure auto-multiple-choice
using the column headers of your .csv
file:
Use¶
Right click on the annotated papers (or on folders) and go to the submenu scripts:
Then enter your Owncloud password, the name of the quiz, and wait:
Every encountered issue should be displayed (unmatched files, login error, uploading or sharing errors).
Special use cases¶
To change the script behaviour, you can edit the last four lines:
1amcsend = AMCtoOwncloud()
2amcsend.identify_students(csv_filepath=CSV)
3amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, SSO=False)
4amcsend.upload_and_share(folder_root=FOLDER, replace_csv=False)
For instance, if your Owncloud server is behind a Central Authentication Service (CAS), you might want to use the parameter SSO=True
. It has been tested with the Virtual Learning Environment Envole of a school that use CAS fo authentication.
You can also save shared links to the current .csv
file with replace_csv=True
. Make sure to backup before and be aware that comment lines starting with a #
are lost in the process.
More options are available, see below for a full list of parameters with default values:
1amcsend = AMCtoOwncloud(list_of_paths=None, verbose=False)
2amcsend.identify_students(csv_filepath=CSV, verbose=False, debug=False,
3 csv_delimiter=":",
4 csv_comment="#",
5 name_header="name",
6 surname_header="surname",
7 group_header="group",
8 number_header="number",
9 email_header="email",
10 owncloud_header="owncloud",
11 link_header="link")
12amcsend.connect_owncloud(address=ADDRESS, username=USERNAME, password=None, SSO=False)
13amcsend.upload_and_share(folder_root=FOLDER, folder_name=" - Maths Quizzes",
14 quiz_name=None,
15 share_with_user=True,
16 share_by_link=True,
17 replace_csv=False)
Personal comments¶
Sending annotated papers was complicated for me:
- I work in junior high school and not every student/parent has an email.
- If they have an email, they don't always remember it (or they don't want to be contacted !)
- Emails are often marked as spam
- You can't send too many mails at the same time
Hence, using a cloud is easier. Even if the students don't have a cloud account at school: you can give them the share link on a paper and they (including their parents) can access to all the graded tests.
I will try in a future version to automatically shorten links and I will add a LaTeX file that reads the CSV file and generates an information letter for each student with the share link.