Date post: | 21-Oct-2014 |
Category: |
Technology |
View: | 1,077 times |
Download: | 3 times |
open source administration software for education
next generation student system
I Did Not Know You Could Do That With An SIS: How To Make Kuali Student Work For You
Norman Wright, Business Analyst, University of Southern California Doug Chew, Systems Analyst, University of British Columbia Kamal Muthuswamy, Senior Application Systems Engineer, University of Washington
open source administration software for education
In The Next 60 Minutes …
• Introduction• Architecture• UI Configuration• Search Configuration• Data Configuration• Workflow Configuration• Challenge• Q/A
open source administration software for education
From the Charter…
• Kuali Student will be a modular, open source, standards-based next generation student system that will offer a flexible, scalable, cost-
effective system that can be configured to meet the business requirements of any higher education institution
open source administration software for education
That’s a tall order….
• We wanted a system that is infinitely configurable!
• So we came up with….
open source administration software for education
Welcome to Kuali Student R1.1
open source administration software for education
No Actually…
• The Charter Translated into reality….• We analyzed not just the founder and partner
schools but did a wide scan….• How do schools actually differ?
– Look and Feel– Validation– Text and labels– Additional Data– Lookups– Workflow
open source administration software for education
Draw a Distinction between Validation & UI
Validation• Cares about what
– Data– Rules– Integrity
• Must be rock solid• One Rule for all contexts
User Interface• Cares about how
– Look and feel– Ordering– Ease of Entry
• Can allow in invalid data – and then validation gives
error• Varies by context
open source administration software for education
The resulting KS Architecture
• Highly Configurable• SOA Based• GWT Driven UIF • Spring beans based configurations
open source administration software for education
KS Architecture
open source administration software for education
Configuring UI
• GWT Deferred Binding• Themes• Hiding Sections / Fields• Messages
open source administration software for education
KS Look and Feel
open source administration software for education
Institution Look and Feel
open source administration software for education
Hiding a Section / Field
• Extend CourseConfigurer• Override methods
• Deferred Binding to replace CourseConfigurer
open source administration software for education
Removing the Financials Section
open source administration software for education
Removing the Financials Section
Before After
open source administration software for education
Hide Pass Fail Field
Before After
open source administration software for education
Kuali Student Message Maintenance
• Validation messages• Constraints• Labels• Help text• Instruction text
open source administration software for education
Labels
Before
After
open source administration software for education
Help Text
Before
After
open source administration software for education
Configuring Lookups & Searches
open source administration software for education
Subject Area as Search Oracle
open source administration software for education
Subject Area as Drop Down
open source administration software for education
Before xml
• <property name="widget" value="SUGGEST_BOX" />
• <property name="resultDisplayKey“ value="enumeration.resultColumn.abbrevValue" />
• <property name="resultSortKey" value="enumeration.resultColumn.sortKey" />
open source administration software for education
After xml
• <property name="widget" value="DROP_DOWN" />
• <property name="resultReturnKey" value="enumeration.resultColumn.abbrevValue"/>
• <property name="resultDisplayKey" value="enumeration.resultColumn.value" />
• <property name="resultSortKey" value="enumeration.resultColumn.sortKey" />
open source administration software for education
Applies Cross-listing entry as well
open source administration software for education
Start Term Before
open source administration software for education
Start Term after
open source administration software for education
XML For configuring what is allowed
• <property name="key" value="atp.advancedAtpSearchParam.atpType" />• <property name="name" value="Atp types" />• <property name="desc" value="Atp types for courses" />• <property name="caseSensitive" value="false" />• <property name="writeAccess" value="NEVER" />• <property name="dataType" value="STRING" />• <property name="optional" value="true" />• <property name="defaultValueList">• <list>• <value>kuali.atp.type.Spring</value>• <value>kuali.atp.type.Fall</value>• <value>kuali.atp.type.Session1</value>• <value>kuali.atp.type.Session2</value>• <value>kuali.atp.type.Mini-mester1A</value>• <value>kuali.atp.type.Mini-mester1B</value>• </list>• </property>
open source administration software for education
XML For configuring what is allowed
• <property name="key" value="atp.advancedAtpSearchParam.atpType" />• <property name="name" value="Atp types" />• <property name="desc" value="Atp types for courses" />• <property name="caseSensitive" value="false" />• <property name="writeAccess" value="NEVER" />• <property name="dataType" value="STRING" />• <property name="optional" value="true" />• <property name="defaultValueList">• <list> • <value>kuali.atp.type.Spring</value>• <value>kuali.atp.type.Fall</value>• <!-- <value>kuali.atp.type.Session1</value>• <value>kuali.atp.type.Session2</value>• <value>kuali.atp.type.Mini-mester1A</value>• <value>kuali.atp.type.Mini-mester1B</value> -->• </list>• </property>
open source administration software for education
Browse Catalog Before
open source administration software for education
Browse Course Catalog After
open source administration software for education
Data Configuration: Dictionaries
• Central to KS data configurations• Spring bean based XML files• Manages constraints around data• Allows adding new data fields without code
changes• Easy to extend and override• Consumed by both the services and UIF
open source administration software for education
Data Configuration: Overriding default constraints
• Basic constraints – minLength, maxLength, validChars, etc
• Conditional constraints– When State = ‘active’ require Title
• Lookup based constraints– Program Code should be in X lookup table
• Custom constraint– Any custom logic for validating fields
open source administration software for education
Basic Constraints: Before
open source administration software for education
Basic Constraints: After
open source administration software for education
Basic Constraints: XML
• <bean id="courseInfo.courseNumberSuffix-parent" abstract="true"parent="cluIdentifierInfo.suffixCode-parent">• <property name="name" value="courseNumberSuffix" />• <property name="minLength" value=“4" />• <property name="maxLength" value=“4" />• <property name="validChars" ref="digits" />• <property name="caseConstraint">• <bean parent="caseConstraint">• <property name="operator" value="EQUALS"/>• <property name="fieldPath" value="state"/>• <property name="whenConstraint">• <list>• <bean parent="whenConstraint">• <property name="values“> <list> <value>DRAFT</value> </list> </property>• <property name="constraint">
<bean > <property name="minOccurs" value="1" /></bean>• </property>• </bean>• </list>• </property>• </bean>• </property>• </bean>
open source administration software for education
Custom Validation: Before
open source administration software for education
Custom Validation: After
open source administration software for education
Custom Validation: XML
• <bean id="courseInfo.revenues-parent" abstract="true" parent="baseComplexRepeating">
• <property name="name" value="revenues" />• <property name="dataObjectStructure"
ref="org.kuali.student.lum.course.dto.CourseRevenueInfo" />• </bean>
• <bean id="courseInfo.revenues" parent="courseInfo.revenues-parent" >
• <property name="customValidatorClass" value="org.kuali.student.lum.course.service.utils.RevenuePercentValidator"/>
• </bean>
open source administration software for education
Data Configuration:Adding new fields
• Dynamic attributes (DA) on most message structures
• No code change required at the service level• All constraints available for DA• Expose DA as regular field to KS UIF
open source administration software for education
Adding New Field: Before
open source administration software for education
Adding New Field: After
open source administration software for education
Adding New Field: XML
• <bean id="org.kuali.student.lum.course.dto.CourseInfo-parent” abstract="true" parent="objectStructureDefinition">
• <property name="attributes“> <list>• <!-- Dynamic Attributes -->• <ref bean="courseInfo.finalExamStatus" />• <ref bean="courseInfo.finalExamRationale"/>• </list> </property>• </bean>
• <bean id="courseInfo.finalExamStatus" parent="baseString">• <property name="name" value="finalExamStatus" />• <property name="maxLength" value="15" />• <property name="validChars" ref="alpha"/>• <!-- Maybe a lookup constraint to restrict the values -->• <property name="dynamic" value="true"/>• </bean>
open source administration software for education
More Configuration
• Configure ATP, Messages, Enumerations
• Configure Rules (RequirementComponents)
open source administration software for education
Infrastructure Configuration
• Tomcat 6.0.24• JAVA JDK: 1.6.0_18• RICE 1.03• dB:• Oracle XE 10.2.0 for development and test• Oracle 11G in test• OS: Fedora 8
open source administration software for education
Configuring Workflow
• KSOR - Kuali Student Organizations• KIM - Kuali Identity Management• KEW - Kuali Enterprise Workflow
open source administration software for education
KS Organization
• Publication Office• Senate• Division• College• Department
open source administration software for education
UBC Organization Approval Hierarchy
• Publication Office• Senate• Faculty• Department
open source administration software for education
Positions and People
• Define positions in organizations• Add people in Kuali Rice (KIM)• Configure KIM for field level authorization
open source administration software for education
Organization Memberships
• Memberships - add people to positions• Workflow tied to positions
open source administration software for education
KS Approval Workflow
open source administration software for education
UBC Approval Workflow
open source administration software for education
Complex Workflows - Branches
• Branches• Logic Split Nodes
open source administration software for education
Undergraduate Course
Proposal
Workflow
open source administration software for education
Graduate Course
Proposal
Workflow
open source administration software for education
Standard UBC Workflow
open source administration software for education
Pilot Course Workflow
Proposal
Workflow
open source administration software for education
Summary
• Highly not Infinitely Configurable• Leverage Configurability in Rice• Clean separation of different layers of
archictecture
• KS Configuration Guide
open source administration software for education
KS Configuration Challenge
open source administration software for education
Questions