sakai presentation
DESCRIPTION
Creating thousands of course sites each semester can be a daunting task. Add in the fact that individuals and departments have their own unique conventions and requirements. The workload can really pile up at the beginning of the semester.This presentation will overview course site and roster creation and how UF has automated most of this process. This includes the ability to dynamically create course sites from pre-configured template sites. The advantages and disadvantages of different course creation strategies will be highlighted. A technical overview will be given, including specific Java Web Services used to achieve automation. This session will benefit universities who are developing a strategy for creating course sites or are interested in improving their current course creation process. The University of Florida is currently using Sakai CLE 2.8.TRANSCRIPT
Proposal #160:
Sakai Course Site Creation and Automation
Date: June 13, 2012Time: 3:45– 4:45PMLocation: Tower 1402Presenter: Carl Perry
PreviewPreview
Brief IntroductionCarl Perry & Sakai @ UF
Course Creation & StrategiesBenefits and Disadvantages
AutomationVerification
Java Web Services
*Developer contributions from:• Mike Stoufer• Saee Bhavani Subramanian
Carl PerryCarl Perry
University of Florida
Learning Support Services ( https://lss.at.ufl.edu ) Two years
B.S. Comp Sci @ UF *M.S. Info Sys @ UF
Duties
Sakai Administrator (Support) High level testing on Sakai Web development and programming Not a Sakai developer & not associated with the
Registrar in any way
Sakai @ UFSakai @ UF
Branded as e-Learning
AdoptionSpring 2010: Config and testing (v2.6)Summer 2010: Pilot & Blackboard migration
UpgradesFall ‘11 v2.7Sum ’12 v2.8 v2.9 / OAE ?
Spring 2012
Sections: 4,487Courses: 1,869Students: 40,371
Course Creation in the BeginningCourse Creation in the Beginning
1. User submits course request form1. Minimal validation
2. Generates a ticket3. We verify the user is an instructor4. We verify the course is valid, and the section matches
1. We mark the roster as verified to be created in Sakai5. In Sakai, duplicate a course shell, copy and paste the title from the ticket6. We search for the newly created site in Worksite Setup7. We insert the instructor into the course site ( add roster )8. We close the ticket and send the user an email from the ticketing system
2 & 8. Ticketing System
3. Instructor App
4. Registrar App
4.1 Roster App
5. Sakai (duplicate)
6. Sakai (search)
Creation StrategiesCreation Strategies
1. “On request” Triggered by users
2. “Create all” Triggered by admin
Registrar Database
Create AllCreate All
Query Registrar
Create course shells
• Insert Instructor
• Or Roster
Instructors teach
course
Wait for next
term’s data
Start
“Create All”“Create All”
Pros ConsMinimize workload* Unused shells
No need for verification Statistics
Uniform creation date- Same site template
Limited time for course setup-Re-import
Push departments to update the Registrar
Multiple Sections
Push instructors to use Sakai more*
Instructor Changes
“On Request” Creation Steps“On Request” Creation Steps
Copy Course Shell
(Site Title)
Insert Instructor Send Email
User Request Verify User Verify Section
On RequestOn Request
Roster & Shell
On RequestOn Request
Roster & Shell
On RequestOn Request
Shell Only
On RequestOn Request
Pros ConsCustomization• Multi-section• Combined Courses• Requesting User• Early course site requests
Workload• Form Validation• Verify User• Verify Course/Section
Statistics Managing forms
Inform students if their section is being taught in Sakai
Managing middleware database
Interact more with Faculty Maintain admin application
Offload work from developers
Middleware Roster InterfaceMiddleware Roster Interface
ExtJS Grids- Javascript Framework (http://www.sencha.com/products/extjs/)Data Tables- Jquery Plugin (http://datatables.net/)
“On Request”: Customization“On Request”: Customization
Why customization is necessary at UF?
User Customization• Forensics & Business College
• Facilitator requests all courses and adds rosters• Nursing, Engineering EDGE, & Pharmacy
• Multiple Facilitators, Designers, Observers• TA’s that are the “true” Sakai instructors• Secretaries & Instructional Designers
Course site customization• 1 to 20+ sections in a single course shell• Graduate/Undergraduate combined course shells• Requests far in advance
• Create course shell immediately• Hold roster and verify when available
Automation: VerificationAutomation: Verification
1. JQuery Validation 1. Regex Form Elements
2. Shibboleth Authentication & LDAP1. Verify user’s affiliation
3. Middleware DB1. Section already requested
4. Read access to the Registrar DB1. Verify Section Rosters2. Verify Instructor
User RequestVerify
InstructorVerify
Section
Automation: Sakai Web ServicesAutomation: Sakai Web Services
1. Sakai Web Services1. Allow services to be written that expose any
part of the Sakai API.2. Script with Java, Perl, PHP, Python, etc
How to use Sakai Web Services?• https://confluence.sakaiproject.org/display/WEBSVCS/How+to+use
+the+Sakai+Web+Services
Copy Course Shell
(Site Title)
Insert Instructor
Automation: Sakai Web ServicesAutomation: Sakai Web Services
Advantages• Customizable Site ID
f4c1699d-1119-4eef-b5db-c0b1ff1a02ef UFL-ABC1234-4143-12012 (unique)
• Duplicate the tool list from a specified course site
• Define fields such as site title, description and short description, published
• Add participants to the courseDefine their role
• Best of all: No more manual creation• Automatically runs
Automation: Sakai Web ServicesAutomation: Sakai Web Services
SAKAI_SRC/webservices/axis/src/webapp/*.jws
Authenticating: SakaiLogin.jws
• Login as Administrator• login(String id,String pw)
• ……
• Logout• logout(String id)
Automation: Sakai Web ServicesAutomation: Sakai Web Services
Course Creation: SakaiScript.jws• Make a copy of a site
• copySite( .., String siteidtocopy, String newsiteid, String title, String description, String shortdesc, String iconurl, String infourl, boolean joinable, String joinerrole, boolean published, boolean publicview, String skin, String type)
• Add Instructor to Site• addMemberToSiteWithRole(…, String siteid,
String eid, String roleid)• eid: Username
• Remove Administrator From Site• removeMemberFromSite(…, String siteid, String
eid)
Additional AutomationAdditional Automation
• Departmental Template Sites• copySite( … String siteidtocopy, …)• Home content HTML stored in DB
• Departmental Facilitators & Designers• addMemberToSiteWithRole(…String siteid, String
eid, String roleid)
• Email Automation• PHP Mail
“On Request” Flow
HTML FormMiddleware DB
Sakai
Cron
PHP Mail
Shibboleth
Registrar DB
Roster
Course
Users
SOAPPerl
Future Enhancements/Tools
Enhancements to Request Form– Predictive text dropdown (course field)– Preview of Instructor sections (Registrar DB)
Student Tool: “Which courses are available in Sakai?”– Compare middleware DB with Registrar DB
Compute More Statistics
Optionally add Roster(s) to course site*
Questions?Questions?
• How about other institutions?
• Jasig Wiki• Review Materials, request for additional
info, and contact exchange• https://
wiki.jasig.org/display/JCON/2012-06-13+Sakai+Course+Site+Creation+and+Automation
Thank You!