You are here: Home / Case Studies / KARL at the Open Society Foundations

KARL at the Open Society Foundations

KARL is a community based intranet system with features including wikis, file upload and storage, blogs, and multi-user calendars. All of these features support internal communication within a large organization. The development of KARL, carried out by several Python development companies distributed across the globe, is sponsored by the Open Society Foundations (OSF). KARL is Open Source and published under the GNU GPL 2 free software license. KARL is implemented in the Pyramid web development framework, and it was the first large Pyramid application in production. To learn more about the KARL project, go to www. karlproject.org.

Greenfinity has been involved with the development of KARL since 2008. Greenfinity participates in requirements gathering, development, implementation, and quality assurance for KARL.

Greenfinity was first involved with migrating Drupal and Wordpress sites into a KARL site. After that, Greenfinity has held a major role in the ongoing development of the KARL project. We focus on JavaScript and complex UI implementations for KARL, which gives us a responsive web application on top of standard HTML. This provides KARL with a modern, user-friendly interface. We research, test, and implement open source JavaScript libraries. Our goal is to reuse open source components, as well as select the best JavaScript libraries that satisfy our user's requirements.

The front-end of KARL is based on jQuery, jQuery UI JavaScript libraries, and several other open source JavaScript packages. Below are some examples from the user interface of KARL. These are examples of a user interface that was developed over the past few years to provide a better, more dynamic user experience for its users.

The Live Search shows possible matches as you type in the search box. Search results are categorized by content type. The Search can be narrowed down to only search by certain content types. Live Search relies on jQuery UI libraries to implement its "autocomplete" and "dropdown" widgets.

One of KARL's useful features is the Multi Upload tool, which helps users manage files. The Multi Upload tool allows users to upload as many files as they want all at once. Users can upload multiple file types into the KARL site. The tool features a percent complete indicator and a file size counter. The Multi Upload tool was built with an upload handler and widget called Plupload by Moxiecode Systems AB. Plupload integration allows us to use a standard upload tool which easily adapts to function in any browser, including non-HTML5 browsers that lack a native support for uploading multiple files.

The Image Drawer is a part of the rich editing toolbar of the TinyMCE editor. The Image Drawer lets the user upload an image, add an image title, choose the size, and placement of the image inside the document being edited. Users can also browse and search for images that have already been uploaded into the community site, and then reuse them. The My Recent feature lets the user view and reuse previously used images. The Web feature allows people to enter a URL and use an image from another website. The Image Drawer can easily handle browsing through hundreds (or thousands) of images, due to a built-in mechanism that dynamically queries the server only for those images that are currently visible in the viewport.

The OSF KARL site currently has 7,209 users. These users have created over 6,463 blog posts, 5,280 blog comments, 5,682 events, 2,347 folders, and 1,393 wiki pages. KARL sites are more than capable of handling large amounts of users and files, all while remaining fast for each user. There are at least 12 other large organizations using KARL across the world. KARL is open source, which means anyone can contribute to the code. Many other organization and individuals contribute to the source code of KARL.

A new front-end interface for the OSF KARL is under development and is scheduled for delivery in 2013. The new user interface will be implemented with the Twitter Bootstrap UI Framework.

Document Actions
Social
Tweets