Import question pools

Project Summary

The ability to import question pools offers an individual the ability:

  • to move questions from an existing Samigo assessments in a single batch
  • to migrate single-section or pool xml files from another system which are translated to Samigo format prior to import
  • when coupled with an export question pool feature, the ability to share question pools with others

The goal of this project is to add the import question pool feature to collab source code for use in the larger community as well as local use at MyUCDavis. Success will be measured by proven ability to import a single, Samigo-compliant assessment with all current (as of 8/10/06) question types. Failure to import successfully will elicit an error message.

Progress/Status

Phase One: Code review and prototype importing a single xml Samigo-compliant file. Samigo already features the ability to import a QTI-compliant xml file that meets application-specific metatdata. Phase One success parameters include the successful import of a single-section Samigo-compliant assessment.
Timeline: July 24 - August 11; 3 weeks Status: Completed

Phase Two: Clean up code and port to testing. Remaining code clean up includes error handling and messages. Code changes are documented below under Code Modifications #codemods. Code will be ported to current collab version and current Davis versions for testing in both environments. Fixes will be completed before porting to Sakai collab QA. Success will be measured by proven ability to import a single, Samigo-compliant assessment with all current (as of 8/10/06) question types in multiple test environments. Failure to import successfully will elicit an error message.
Estimated timeline: August 14 - September 8; 4 weeks
Revised delivery due to sick leave and svn setup: August 14 - September 22; 6 weeks Status: In Progress at 90%
Status Update: Code release to Stanford for review on 9/13/06. Awaiting testing and feedback
Local code Status: In Code Review, Assigned to Jon Gorrono Sept. 25
Passed QA 10/25/06: tc-matrix-testsquizzes-qpools_v2-1-x-1_pass.xls
Moved to SmartSite on 10/28/06

Phase Three: Release to collab source code is the final measurement. Major or higher priority fixes reported within 6 months of release are within the scope of this phase.
Estimated release to collab source code: current release estimate is now after the 9/15 sakai v2.3 release

Sakai Question Pools Documentation

UI Specifications

UI specifications were previously documented at http://issues.sakaiproject.org/confluence/x/ZTw in qPools.pdf
Explanation of the navigation and UI were documented in an email to Marc Brierley, Stanford, on 8/10/06.

Question Pools screenshot

Import Pool screenshot

Code Modifications

List of files and the modifications for each file.
Originally changed for Sakai v2.2.x, but the same changes will apply to v2.1.x except that the directory structure differs.
Also, note that depending on which release of 2.2.x is used, QTI and services are moved out into the new samigo-qti directory.

Path/File name

Modification

Purpose

v2.1.x: tool/src/java/org/sakaiproject/tool/assessment/bundle/AuthorImportExport.properties
v2.2.x: samigo-app/src/java/org/sakaiproject/tool/assessment/bundle/AuthorImportExport.properties

Added import_qp=Import Pool for importing question pools

text used in importPool.jsp

v2.1.x: tool/src/java/org/sakaiproject/tool/assessment/bundle/QuestionPoolMessages.properties
v2.2.x: samigo-app/src/java/org/sakaiproject/
tool/assessment/bundle/QuestionPoolMessages.properties

removed duplicate t_addSubpool; added t_importPool

clean up and added text for poolList.jsp

v2.1.x: tool/src/webapp/jsf/questionpool/poolList.jsp
v2.2.x: samigo-app/src/webapp/jsf/questionpool/poolList.jsp

added link with action="importPool"; added new msg values

Added the Import link to the main Question Pools screen

v2.1.x: tool/src/webapp/jsf/qti/importPool.jsp
v2.2.x: samigo-app/src/webapp/jsf/qti/importPool.jsp

importPool.jsp created

The jsf file is modeled on importAssessment.jsp for user to browse and upload xml file

v2.1.x: tool/src/webapp/WEB-INF/faces-config.xml
v2.2.x: samigo-app/src/webapp/WEB-INF/faces-config.xml

Added questionPoolBean to XML Import; changed navigation path for question pool import to qti folder to be consistent with other import files

added navigation and bean for xml import

v2.1.x: tool/src/java/org/sakaiproject/tool/assessment/ui/bean/qti/XMLImportBean.java
v2.2.x: samigo-app/src/java/org/sakaiproject/tool/assessment/ui/bean/qti/XMLImportBean.java

Added importPoolFromQTI to mirror import assessment function; Added processAsPoolFile to call createImportedQuestionPool

mirrored functions to assessment calls createImportedQuestionPool

v2.1.x: component/src/java/org/sakaiproject/tool/assessment/services/qtiQTIService.java
v2.2.x: samigo-app/src/java/org/sakaiproject/
tool/assessment/services/qti/QTIService.java OR
v2.2.x: samigo-qti/src/java/org/sakaiproject/tool/assessment/services/qti/QTIService.java

Added createImportedQuestionPool to service

Calls AuthoringHelper.createImportedQuestionPool; service allows outside connectivity

v2.1.x: component/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java
v2.2.x: samigo-app/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java OR
v2.2.x: samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/AuthoringHelper.java

Added createImportedQuestionPool; process mirrors createImportedAssessment; calls updateQuestionPool; Exception thrown if import of more than one section is attempted
Does the question pool title need to be unique?

Reads xml map and assigns values for data entry;fields require testing;
requires additional code for removeAssessment functionality - may affect several more files;
Code is slightly different in 2.1.x as isUnique differs in QuestionPoolService.

v2.1.x: component/src/java/org/sakaiproject/tool/assessment/qti/helper/ExtractionHelper.java
v2.2.x: samigo-app/src/java/org/sakaiproject/tool/assessment/qti/helper/ExtractionHelper.java OR
v2.2.x: samigo-qti/src/java/org/sakaiproject/tool/assessment/qti/helper/ExtractionHelper.java

Added updateQuestionPool(QuestionPoolFacade questionpool,Map assessmentMap) to pull additional optional fields from an imported question pool

Note: these fields are not populated by imported assessments, but are specific to question pools and may be populated with qtimetadata when an export pool function is available in Samigo

Test Plan/Documents

For testing the import question pool process for the UC Davis instance of Sakai 2.1.x, a modified version of the Sakai test matrix is available. Documentation for the test plan: Test Plan - Import Question Pool