#acl All:read = Student Records and Assignment Management Systems = * '''give''' - assignment submission, autotesting and marking system * '''sms''' - student records management system ||<#CCCC00-6>|| ||<#FFFFAD> [[https://cgi.cse.unsw.edu.au/~give/Documents/Manual/give_html/index.html|give Manual]] ||<#FFFFAD> [[https://cgi.cse.unsw.edu.au/~give/Documents/Faq/give_html/index.html|give FAQ]] ||<#FFFFAD> [[https://cgi.cse.unsw.edu.au/~give/Documents/Manual/sms_html/index.html|sms Manual]] ||<#FFFFAD> [[https://cgi.cse.unsw.edu.au/~give/Documents/Faq/sms_html/index.html|sms FAQ]] ||<#FFFFAD> [[http://www.cse.unsw.edu.au/~give/Admindata/tutors/xmark.html|Xmark]]|| == give & sms Installation == give and sms are interconnected. Create give environment and sms database in the class account as follows: 1. ssh into the class account with X11 forwarding: ~+`ssh -Y`+~ (!) sms is a [[https://www.tcl.tk/|tcl/tk]] app that requires [[http://taggi.cse.unsw.edu.au/FAQ/Accessing_CSE_login_servers/|X windows]]. Running tcl/tk app with X windows is slow. Better ways are: * [[http://www.cse.unsw.edu.au/~give/Admindata/tutors/vnc.html|VNC]] on a CSE login server * [[https://taggi.cse.unsw.edu.au/FAQ/Really_quick_guide_to_VLAB/|VLAB]] 1. Run the installation script: ~+`% give-install -new`+~ ~+`% ~give/stable/bin/give-install -new`+~ ''if ~+`~give/stable/bin`+~ is not part of ~+`$PATH`+~'' ~+`% ksh give-install -new`+~ ''if your login shell is zsh'' ~+`% give-install -new `''`term`''+~ ''if the term is not the same as the system-wide term, term example 20T3'' 1. The installation perform the following tasks: * Create ~+`$WORK`+~ (~+`$HOME/`''`term`''.`work`+~ e.g. ~+`~/20T3.work`+~) * Create ~+`give.spec`+~ (if doesn't exists) in * ~+`$HOME`+~ ~-''(does not override existing one)''-~ * ~+`$WORK`+~ ~-''(does not override existing one)''-~ (read about [[give.spec|give.spec]]) * Create ~+`.giverc`+~ in ~+`$HOME`+~ (overrides existing one) * Create sms database (~+`$SMSDB`+~) under ~+`$WORK`+~ (can be postponed) * Download student enrolment data (read about importing nss data below) * Add ~+`$SMSDB`+~ environment variable to ~+`$WORK/.giverc`+~ 1. The installation can be paused before sms database is created. * Create the database by running sms directly: . e.g. . ~+`sms ~/20T3.work/20T3db.sms`+~ . ''or'' . ~+`sms`+~ ''using the value stored in ~+`$SMSDB`+~'' * Resume the installation with this command: ~+`give-install -update`+~ 1. Download student enrollment data * Add course records . For combined courses, create the database in the primary class account, add a record for each course. * Add student records . Top menu bar: '''''Student''''' → '''''Add Student Records''''' → '''''External Source''''' . or second menu bar: '''''Add from NSS''''' '''''From NSS (without classes)''''' - The download will not overwrite class changes in sms 1. If there are classes in NSS, an enum field (tut, lab or tut_lab) will automatically be created in sms after the above downloads. Enter this field when asked for a group field by the ~+`give-install`+~ script. This field is used by give for assignment submissions. (Read about [[give.spec/subkeysubgroup| &subkey and &subgroup]]) 1. After installing give, update the give environment: ~+`% . ~/.giverc`+~ and insert the line above to the class account's `.profile`, if not already. 1. Check that ~+`$HOME/give.spec`+~ contain the correct configuration for the current term. * Look out for ~+`&period`+~ is not still set to a previous term. Example {{{ &period=19T3 }}} 1. Check the environment variables: ~+`$GIVEPERIOD`+~, ~+`$WORK`+~, ~+`$SMSDB`+~ ~+`% echo $GIVEPERIOD`+~