2.8 Release Notes

Major Features in Tests and Quizzes 2.8

  • Respondus integration: SAM-633
  • Record Average Score for multiple submissions:  SAM-862
  • Added view all submissions with average) to student view of submitted assignments: SAM-863
  • Allow students to use Rich-Text Editor for Short Answer/Essay question type:  SAM-801
  • Remove character limit of 4000 in Test/Quizzes: SAM-756
  • Allow instructors to enter zero score for unsubmitted assessments:  SAM-772
  • Allow instructors to select a feedback option that would show students their overall score only: SAM-666
  • Make Linear Access Logic Consistent: SAM-971
  • When sharing pool with more than 1 level of sub-pools, Samgio only shows two levels - the question pool level, and the first sub pool level: SAM-869
  • Improvement: No Assessment Templates/Types: SAM-921
  • Method added allowing QTI test imports via web services: SAM-942

Issues resolved in 2.8.0

Click to see Issues resolved in 2.8

Issues resolved after 2.8.0.

Click to see Issues resolved in 2.8.x

Known issues:

Click to see Samigo Known Issues 

Configuration: 

sakai.properties settings: 

# SAMIGO CONFIGURATION

# ** Samigo File Upload question type settings **
# the following default settings:
# 	com.corejsf.UploadFilter.repositoryPath,
# 	com.corejsf.UploadFilter.sizeThreshold,
# 	com.corejsf.UploadFilter.sizeMax and
# 	com.corejsf.UploadFilter.saveMediaToDb
# in Samigo web.xml can be overidden with the following settings in sakai.properties:
samigo.answerUploadRepositoryPath=/tmp/
samigo.sizeThreshold=512
samigo.sizeMax=20480
samigo.saveMediaToDb=false

# The email settings are for Samigo only. They are used because Sakai email
# doesn't support Resources attachments. Samigo first looks to these settings
# instead of the regular Sakai email settings. If they are not set, the
# Sakai eamil settings will be used. Please note, these settings do not
# override the usual Sakai settings.
#
# outgoing SMTP server (If not set, the Sakai smtp server setting will be used)
#samigo.smtp.server=
# outgoing SMTP port (If not set, the default part 25 will be used)
#samigo.smtp.port=
#
# Temp directory for handling email attachment files.
samigo.email.prefixedPath=/tmp/

# This is for Samlite, the word-2-QTI converter (default is true)
samigo.samliteEnabled=true

# Edit Published Assessment
# When samigo.editPubAssessment.restricted is set to false, the published assessment is editable even if students have started taking it.
# Default is true.
# samigo.editPubAssessment.restricted=true

# When samigo.editPubAnonyGrading.restricted is set to true, the Students' Identities section in published settings is not editable.
# Default is false.
# samigo.editPubAnonyGrading.restricted=false

# --- Samigo Automatic Submission feature ---
# Set samigo.autoSubmisson.enabled = true to enable Automatic Submission feature. (Default is false).
# samigo.autoSubmit.enabled=true

# After this feature enabled, please run the following sql to make it show up in the pre-populated assessment types
# For mysql
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (NULL, 1, 'automaticSubmission_isInstructorEditable', 'true');
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (NULL, (SELECT ID FROM SAM_ASSESSMENTBASE_T WHERE TITLE='Quiz' AND TYPEID='142' AND ISTEMPLATE=1), 'automaticSubmission_isInstructorEditable', 'true');
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (NULL, (SELECT ID FROM SAM_ASSESSMENTBASE_T WHERE TITLE='Problem Set' AND TYPEID='142' AND ISTEMPLATE=1), 'automaticSubmission_isInstructorEditable', 'true');
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (NULL, (SELECT ID FROM SAM_ASSESSMENTBASE_T WHERE TITLE='Test' AND TYPEID='142' AND ISTEMPLATE=1), 'automaticSubmission_isInstructorEditable', 'true');
# For oracle
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (sam_assessMetaData_id_s.nextVal, 1, 'automaticSubmission_isInstructorEditable', 'true');
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (sam_assessMetaData_id_s.nextVal, (SELECT ID FROM SAM_ASSESSMENTBASE_T WHERE TITLE='Quiz' AND TYPEID='142' AND ISTEMPLATE=1), 'automaticSubmission_isInstructorEditable', 'true');
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (sam_assessMetaData_id_s.nextVal, (SELECT ID FROM SAM_ASSESSMENTBASE_T WHERE TITLE='Problem Set' AND TYPEID='142' AND ISTEMPLATE=1), 'automaticSubmission_isInstructorEditable', 'true');
# INSERT INTO SAM_ASSESSMETADATA_T (ASSESSMENTMETADATAID, ASSESSMENTID, LABEL, ENTRY) VALUES (sam_assessMetaData_id_s.nextVal, (SELECT ID FROM SAM_ASSESSMENTBASE_T WHERE TITLE='Test' AND TYPEID='142' AND ISTEMPLATE=1), 'automaticSubmission_isInstructorEditable', 'true');
# --- end of Samigo Automatic Submission feature ---
 
# new in 2.7
# enable partial credit for MC, default = false. SAM-818
samigo.partialCreditEnabled=false
# enable print feature , default is false, SAM-721
samigo.printAssessment=true
# enable autosave during delivery. If not set, auto-save if disabled.
samigo.autoSave.repeat.milliseconds=900000

# new in 2.8
# SAM-862                                                                                                                
samigo.canRecordAverage=false

#SAM-921                                                                                                                 
samigo.showAssessmentTypes=true








File Upload and Audio Recording questions: 
For File Upload and Audio Recording questions in Samigo, answers are saved to DB as a blob by default.  If you want to save answers to files, you can override this default by adding the following in your sakai.properties file. 





\# \*\* Samigo File Upload question type settings \*\*
\# the following default settings
\# com.corejsf.UploadFilter.repositoryPath,
\# com.corejsf.UploadFilter.sizeThreshold,
\# com.corejsf.UploadFilter.sizeMax and
\# com.corejsf.UploadFilter.saveMediaToDb in Samigo web.xml
\# can be overidden with the following settings in sakai.properties

samigo.answerUploadRepositoryPath=/sakaitmp/
samigo.sizeThreshold=512
samigo.sizeMax=20480
samigo.saveMediaToDb=false

Please make sure that Sakai has write privilege to the directory specified in samigo.answerUploadRepositoryPath.

When saveToDB is true, SAM_MEDIA_T.MEDIA must be a blob or equivalent to work.  If you're running Oracle and using auto.ddl to create tables, you should check the data type of the "MEDIA" column in the SAM_MEDIA_T table. Hibernate tries to choose the right data type for this field, but has a habit of choosing the wrong one for Oracle. The correct types for each database are:

  • HSQLDB --> varbinary
  • Oracle --> blob
  • MySQL --> longblob

Audio recording questions (since 2.2):

Audio recording questions are turned on by default.  You can turn it off by modifying sam/samigo-app/src/webapp/WEB-INF/faceconfig.xml, and changing the showAudio to false.

    <managed-property>
      <property-name>showAudio</property-name>
      <value>false</value>      
    </managed-property>

Audio recording uses the same storage configuration as File Upload questions, so they can be configured to be stored either in DB or files. 

Audio recording questions uses an Audio Recording Applet (Based on Sun's Java Sound API) to record.  Because the default JRE installation doesn't allow Java to record audio from your computer's sound card, you have to do one of the following:

1. Modify your java.policy file and add the following permissions:

 permission javax.sound.sampled.AudioPermission "record";
 permission java.io.FilePermission "<<ALL FILES>>", "read, write";
 permission java.util.PropertyPermission "user.dir", "read";

Or
2. Obtain a digital certificate and use it to sign the applet.

  Here is an example we used on our dev instance, coursework-s1, to get a self-signed certificate :


  1. assuming we have deployed sakai in tomcat already, i.e. samigo.war has expanded in tomcat/webapps, kill tomcat

  2. create ketstore
       keytool -genkey -keyalg RSA -keystore ~/daisyf/applet-keystore/audio_applet_keystore -alias audioApplet -keypass mypassword -validity 3650
       I used these value when prompted "cn=Daisy Flemming, ou=SUL / ACOMP, o=Stanford University, l=Stanford, st=CA, c=US"

  3. create self-signed certificate
      keytool -selfcert -keystore ~/daisyf/applet-keystore/audio_applet_keystore -alias audioApplet -dname "cn=Daisy Flemming, ou=SUL / ACOMP, o=Stanford University, l=Stanford, st=CA, c=US" -validity 3650

  4. signing applet
      cd ../tomcat/webapps/samigo/applets
      jarsigner -keystore ~/daisyf/applet-keystore/audio_applet_keystore -storepass mypassword sakai-samigo-audio-dev.jar audioApplet
      jarsigner -verify sakai-samigo-audio-dev.jar

  5. restart tomcat


  In production, you will probably need to get an officially signed applet.

References used

1. http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html
2. http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html
3. http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html

Or
3. There is also a 3rd way, which is to sign the applet during maven build/deploy. Modify your sakai/sam/samigo-audio/pom.xml file, and the jar will be signed and deployed.

<!--replace your alias, storepass and keystore location -->


  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
           <execution>
              <goals>
                 <goal>sign</goal>
              </goals>
           </execution>
        </executions>
        <configuration>
           <keystore>/somepath/your.keystore</keystore>
           <alias>youralias</alias>
           <storepass>yourpassword</storepass>
           <verify>true</verify>
        </configuration>
      </plugin>
    </plugins>
    <resources>
      ...
    </resources>
  </build>


 

Temporary file location for QTI Assessment Import

Currently, by default QTI Assessment Import also uses the com.corejsf.UploadFilter.repositoryPath parameter in web.xml as the location to store a temporary file.  These temporary files are removed after the import is completed.  com.corejsf.UploadFilter.repositoryPath is set to /tmp by default.  This again can be overridden in sakai.properties the same way as in File Upload/Audio recording questions.   Please make sure that Sakai has write privilege to this directory.

For example, 

    samigo.answerUploadRepositoryPath=/sakaitmp/

Conversion from previous versions

If you are upgrading from an earlier version, after you finish running the conversion script, please be sure to turn off autoddl by setting autoddl=false in your sakai.properties file. There is a known issue with autoddl=true which causes duplicate indexes to be created.