Another one of our websites is in the running for a seriously amazing award. Literally. The North American Orchid Conservation Center and their Go Orchids site has been nominated to compete in the Smithsonian Summer Showdown, where the public votes on the “most seriously amazing” thing at the Smithsonian – and they have made it to Round 2! Click here if you’d like to add your vote to help them make it to the final round. You can vote once a day, now through Tuesday.
And hey, if you just can’t resist voting for the earth-sized Event Horizon Telescope instead, I won’t hold it against you. It’s all amazing stuff. But my heart lies with the exotic plants.
Many academics in technical fields use Python (the programming language) because of its extensive math and science libraries. Python is also a popular language for teaching introductory computer science at top-ranked universities in the U.S. Less well known is the fact that Plone, Python’s most feature-rich CMS, is extremely well suited for academic websites. Here are 6 reasons why.
1. Security and Workflow
Plone’s advanced security model and strong workflow system make it particularly well suited for sites where many content editors collaborate to maintain a website. This is typical at universities, where staff and websites are often organized in hierarchies. Plone administrators can assign roles that define editing and workflow permissions to different groups of users, so some can add and edit content while others review and publish. These roles can apply to the whole site or to sections or to individual pages, making it easy for a work group to collaborate on content. Tracking and auditing of who did what, when, provides accountability. Plus, Plone has an excellent security record with a minimal number of CVE (Common Vulnerabilities and Exposures) entries compared to other systems
3. Enterprise Search
University websites are often broad and deep, and it’s important to provide excellent search capabilities so users can find what they’re looking for. Plone provides basic search out of the box, but add-ons provide integration with the state of the art Solr open source search engine. Solr makes the power of enterprise search accessible to organizations that could never have afforded it 10 years ago. In addition to ensuring highly relevant results thanks to its excellent algorithms and tuning features (including synonyms, spelling suggestions, and metadata, content type, and phrase weighting), Solr can combine search results from disparate data sources. For example, a departmental website’s search could provide results from the website plus research databases and external sites that faculty or other groups have created. For more specialized searches about academic subjects, Plone provides an excellent environment for defining content types with detailed technical metadata. With the help of another add-on, such metadata can be used in faceted searches – see for example the search for Byzantine Seals at Dumbarton Oaks.
4. Faculty Directories
Academic institutions typically have need of a personnel directory, with different levels of access (to telephone numbers and email addresses for example) for internal versus external users. The Plone add-on Faculty Staff Directory implements the typical academic organizational model – faculty/staff/student, department, committee – and integrates these groupings with Plone security, making it easy to assign personnel different editing permissions on different parts of the site depending on their department or committee. It captures lots of academic profile information and provides a place for faculty to add their own web pages and other content. It has been honed for use at universities since 2007.
All academics accumulate bibliographies of published work in their field, and provide relevant references when they publish their own work. The venerable Plone bibliography add-on (born circa 2005) lets content editors publish bibliographic references on their websites. For a great example, see The University of Minnesota Press’ extensive bibliography of references about the MMPI (a personality inventory test), which can be browsed with a faceted search. Ten years of development has resulted in a ton of features and a whole family of related add-ons (we created one to support Citation Style Language two years ago.) There’s even an integration with Faculty Staff Directory that allows faculty to easily add bibliographies to their profiles.
Plone makes it easy to create many sub-sites within one installation. There are several add-ons that provide this feature, the most popular being collective.lineage. This is great for giving a university’s many schools and departments a degree of autonomy while administering all the sites together. Each department can have its own staff, content, and visual identity, while easily sharing and linking to content in other departments. Administrators have just one Plone installation, with a global set of add-ons and configurations that enforce consistency.
Many universities around the world use Plone (which supports 40+ languages out of the box) – here are a few of my favorite examples.
I attended the Nonprofit Technology Conference last March and was inspired to submit a session proposal for next year’s conference. So much of our work here at Jazkarta helps non-profit organizations do their jobs better – through their websites and back office systems – that I feel we have lots of useful information to share. So I proposed to tell the story of the major website redesign project that Jazkarta and Percolator Consulting did with The Mountaineers. The story would cover the full project life cycle, from strategy definition through support and ongoing changes. It would be told from 3 perspectives: the team responsible for the front end CMS, Plone (that’s us), the team responsible for the back end CRM, Salesforce (that’s Percolator), and the team responsible for defining, funding, managing, and coordinating this massive project (that’s The Mountaineers). And it would give us the opportunity to highlight the practices that made this project so successful. Things like:
- How we defined requirements, content types, and data model
- The importance of user experience (UX) design
- The agile process we used to manage implementation
- Coordinating a large number of volunteers testing the new site
- Planning and executing a complex launch process involving front end and back end data migrations
The session is called Anatomy of a Major Website Project and if you think this would be a good addition to next year’s NTC and to share with the non-profit community more broadly, please head over to the 16NTC site and upvote it!
A content-driven website can look like an intimidating pile of information to the average visitor. You want to help your visitors find what’s important to them. How can you ensure that the right content is easy to find?
The first approach most websites take is to offer a “search” bar.
This can be a good approach for research reports and other types of text-heavy content, but it doesn’t always work well. The trouble is that full-text search is a hard problem – Google for example spends millions on its search software and millions more tuning the results. Even if you have a great text search, your user still needs to know something about what they are looking for in order to find it. Text search depends on your visitors entering the right words into that little box.
Another approach to helping visitors is to use the way your site is organized, the “information architecture” to guide people to the right materials.
This can be quite effective, if your site has materials that fall into clear categories, like types of content, or subject, publication date, or author. But it suffers from a few drawbacks.
First, you can only expose so many layers of architecture before it overwhelms the user with too many choices. If what they seek is nested too far down, or located in too big a pile, they might miss it. Second, it depends on an agreement in terms between the label you make for an option, and the word the user has in mind. This agreement is fragile, and dependent again on visitors knowing something about your material. Finally, architecture is forever. If you’re lucky, you might get to re-organize once every few years. You’d better make the right choices the first time.
Department stores have solved this problem in an interesting way. You walk into the store, head to the women’s section, find the slacks, look for a color you like, then try them on. Bam! You’ve got what you’re looking for and you are on your way to the checkout stand.
E-commerce sites have adopted this approach as well. It’s familiar and comfortable for visitors.
But it’s not just for e-commerce. Imagine you run a non-profit like The Mountaineers that offers courses in outdoorsmanship. Perhaps I come to visit your site. I would like to take a class, learn something new. I’ve never been climbing before, but it looks fun. I am an absolute beginner, never climbed a mountain in my life. Oh, and I know I’ve got some time off later this summer! Cool, in three clicks I’ve narrowed the selection of hundreds of courses offered by your organization down to just a few! I can read about each, find the one that fits me best, and head to registration. We call this “faceted search”.
So how can you get such a wonderful feature for your website? You’ll need to start with a content management system of some kind. This is where you’ll create, store, manage and display the “products” your visitors are looking for. We think the open source Plone CMS is the best choice for large sites with lots of editors and rich content.
You’ll need a robust search engine. This is where the information about your “products” is stored. A good engine will produce lists of facet values for you, give you counts of matching items, and allow for lightning-fast lookups. We work mostly with Solr and elasticsearch, two products built on the open source Lucene search engine. But Plone also has a fine index for faceted search built in if your needs are straightforward.
Your CMS should allow you to edit “metadata” or information about your content. Here is where you can determine what facets, or aspects of this information you want to use. With a powerful CMS like Plone, you can customize the metadata to suit your needs.
Or, you can work with an external service to capture metadata. Perhaps your offerings are stored in Salesforce. We can index information from Salesforce into a search engine like Solr or elasticsearch, and use your CMS to display the search interface and results.
Finally, you’ll need a plugin for your CMS that supports faceted search. Plone has a great one thanks to the folks at the European Environment Agency: eea.facetednavigation. It lets you easily experiment with different facets, optimizing your search based on analytics about your traffic. This means you can shape the search according to real visitor needs, frequently and with little or no developer time required.
With a solid faceted search experience, you can ensure that your visitors will find those “hidden treasures” they seek. Contact Jazkarta to discuss whether this feature would be a good addition to your website.
Kudos to KCRW for the vision, Hard Candy Shell for the design, the Plone content management system for providing a great platform, lead developer Alec Mitchell, and Jazkarta team members Cris Ewing, Carlos de la Guardia, David Glick, and me. We are very proud to have been a part of it.
You can read more about the project on this blog post.
Faculty Staff Directory is a venerable Plone add-on that integrates with Plone’s users and groups infrastructure and provides content types for creating and organizing personnel directories within educational institutions. It adds academic profile information such as job title and contact details, and provides an area for personnel to add their own bibliographies, as well as pages and other content. Faculty can be associated with departments, committees and specialties, and these groupings can then be used to control access and editing permissions throughout the site.
Originally released in 2007, FSD is an “old-style” Archetypes add-on that is currently in use by many universities and colleges. As Plone moves away from Archetypes and embraces the Dexterity content type framework, the Plone community needs to decide what to do about old but important add-ons like FSD.
A group of concerned Plone citizens convened an open space at the Plone Conference last October to discuss this. There was clear consensus on the way forward: replace FSD with a Dexterity-based add-on and provide a migration path for existing FSD content. We also agreed that the new FSD should be based on an existing add-on rather than starting from scratch, and we identified several existing add-ons as potential candidates:
Two months later, Jazkarta was tasked with recommending a replacement for an FSD-like custom add-on that was developed at NYU’s Institute for the Study of the Ancient World to manage faculty information.
This provided the perfect opportunity to assess the above set of candidates.
Cris Ewing did the evaluation and concluded that collective.roster is the only package suitable as the basis for an FSD replacement. collective.contact.core does not allow the extended profile data that is needed. collective.contacts is Archetypes-based. ibme.persondirectory is a bit too bare-bones and does not provide enough of a starting point to be reasonably useful on its own. collective.workspace is more like a building block (for example see this post about using it to build a badge system), and is discussed further below.
collective.roster is dexterity-based so features can be easily added with behaviors. It has a nice viewlet-based system for extending views. It can use dexterity.membrane to provide integration with Plone’s membership system. Groups are currently implemented as a simple keyword behavior, but it could use collective.workspace to group-based rights management.
In short, we have a winner in collective.roster. Instead of implementing a specific use case it provides an easy way to add features via behavior add-ons. This building block approach is what gives the Dexterity framework its power. The next step on the path to replacing Faculty Staff Directory will be to combine collective.roster, dexterity.membrane, collective.workspace, and other add-ons to provide the FSD features that users rely on.
Do you want to be able to use existing training content in an Open edX course? SCORM – the “Sharable Content Object Reference Model” – is a set of interoperability standards for e-learning software that governs how online learning content and Learning Management Systems (LMSs) communicate with each other. It allows units of online training material to be shared across e-learning systems.
Open edX doesn’t support SCORM natively yet, but here at Jazkarta we’ve successfully integrated SCORM Cloud and Open edX. SCORM Cloud is a third party service that wraps e-learning content in a SCORM dispatch package that can be embedded into an LMS. The gist of this integration is as follows:
- Export a learning module from your e-Learning authoring tool as a SCORM package.
- Upload SCORM package to SCORM Cloud.
- Configure SCORM Cloud dispatch to serve them up as LTI (Learning Tools Interoperability) components.
- Use the LTI component in Open edX to add these packages, which are actually being hosted on SCORM Cloud.
The user doesn’t need to login again as this is transmitted via LTI, and the activity is passed back into edX for grading purposes.
Here is a detailed how-to for people who would like to duplicate our work. I found some sample courses in this blog article and used the “Picture Perfect_Simulation Sample” course. Open that course in Adobe Captivate and follow these instructions for prepping, uploading, and using this sample in Open edX. (You can download Adobe Captivate 8 here – a free 30 day trial is available by clicking the ‘Try’ link on that URL.)
Mark interactive elements as graded and assign points
For each interactive element that you want graded, you need to click on the element, click on the Properties icon (in the upper right corner of the screen), mark it as graded in the properties panel, assign a point value that will count towards the grade, and check the Report Answers checkbox.
Set project end action to close project
In Publish Settings -> Project -> Start and End, set the Project End Action to “Close project” (I think it defaults to Stop project). That way the window showing the assessment will automatically close when it’s done playing.
In Publish Settings -> Project -> Quiz -> Reporting, set the Standard form to SCORM 2004, and then click the Configure button.
Give the course an identifier and title
You can optionally give your course an identifier and title. If you skip this step, then all of your courses will have the default identifier “Captivate E-Learning Course” and it will be hard to differentiate between the different courses.
Export from Captivate
From the File menu, choose Publish… and make sure the eLearning output value is set to SCORM 2004, which you should have already set in the previous step. Click the Publish button and it will create a .zip file in the location you specified.
Upload to SCORMCloud
Create a free account at SCORMCloud.com and from the Add Content section of the dashboard, upload the .zip file that you just created.
Tell SCORM Cloud to make it available via LTI
Once the content has been uploaded, you need to create a dispatch that will be used to make it available via LTI.
Create a dispatch
If the first time, click Create New Destination.
Create a destination
Enter ‘Open EdX’ as the name. On subsequent times you can click Add Existing Destination and choose Open EdX. This name can really be anything – it doesn’t need to be ‘Open edX’.
Export dispatch as BLTI
From the Dispatch screen, click on the Dispatch that you just created, and under Export your dispatch, click the BLTI button
Capture the BLTI information
You should see a pop-up with information about the BLTI endpoint URL, key and secret key. Make a note of the URL, Key, and Secret that it displays
Enable LTI in your Open edX course
Login to edX Studio and go to your course, and select Settings -> Advanced Settings. For the Advanced Module List, add “lti” to enable adding LTI components to your course.
Add an LTI passport entry
On the same Advanced Settings page, scroll down to the section entitled LTI Passports, and add a new entry in the form:
lti_id:client_key:client_secret where the client_key and client_secret are the key and secret that you got when you made the BLTI dispatch in SCORM Cloud. The LTI ID can be anything (no spaces) – it’s just an identifier that will be used when we add an individual LTI component to our edX course.
So for our last example, it would be:
Note: you need to add a new entry for each course in SCORM Cloud that you want to embed in an edX course. It’s annoying that this is an extra step required for each item. Open edX assumes that an LTI provider will have one key/secret combo for all courses, but SCORM Cloud uses a different one for each course.
Add a new LTI component in your course
Go to your course outline: Content -> Outline and navigate to where you want to add the LTI component containing your SCORM Cloud exercise/quiz. Click the New Unit button.
Add an advanced component
If you’ve enabled Advanced Components for your course, you should see the Advanced Component button appear when you add a new unit.
Choose the LTI component
Edit the component to set the values
Configure the LTI component settings
For LTI Application Information, you can type “SCORM Cloud” or whatever you want in this field. For LTI ID, this needs to match exactly, the LTI ID that you used in the LTI passports entry. The LTI URL for SCORM Cloud should be set to http://cloud.scorm.com/sc/blti
The Open in New Page setting should be set to True.
More LTI component settings
Make sure that you set Scored to be True and assign a weight that you want it to have on the total grade. You can also set a Display Name if you want.
Preview or Publish your changes
Once you’ve added the component, you need to click the Preview Changes button or Publish it to your course.
Login as a student and try the exercise
Now we can login as a student and test it out. When you navigate to the page, there is a link “View resource in a new window”. Click on this button to launch the SCORM Cloud exercise in a new window.
Take the exercise
You then take the exercise and SCORM Cloud is tracking your activity.
Complete the exercise
At the end of the exercise, it will compute a score for you, and if the score is above the threshhold to get a passing grade, then get a “Pass” grade.
See score in edX progress page
This grade is sent back into edX and can be seen on the student’s Progress page. Please note that these scores don’t match because I took a screenshot of a different student.
1. Make sure that your Open edX site is at an internet address that can be reached by SCORM Cloud. This means basic auth must be disabled and if you’re using SSL, that you have a real SSL certificate, not a self-signed certificate.
2. A fix to the edX code which parses the SCORM Cloud request handle a non-standard (well, old standard) XML namespace that it uses. https://github.com/jazkarta/edx-platform/commit/ebcf93002557176102df2bf93ab79a979aaf0fba
3. A fix for edX’s validation of the oauth signature (https://github.com/edx/edx-platform/pull/5016)
We invite you to join the conversation on the edx-code mailing list about SCORM support in edX, and feel free to reach out and contact us if you are looking for professional help with edX.
Or if you want to take Open edX for a test-drive, you can get a free trial from our partner Appsembler.