Bloomfire

Bloomfire is a collaborative learning platform for organizations to share knowledge with their team and partners. We worked closely with their design specifications to develop their custom screencasting tool in Java, as well as a billing system in Rails.

Background

Bloomfire is a collaborative social learning platform for companies who want to share training resources with their team and partners in the field. Bloomfire customers can create and organize a library of material in whichever format suits them best, such as videos, podcasts, screencasts or text. With a strong focus on peer to peer learning, Bloomfire wanted to make it easy for anyone to create and share content. Their practical tools and friendly, minimal interface allows businesses to focus on the information, not the technology.

Screencasts Made Easy

Prior to this project, Bloomfire was licensing a third-party tool to record their screencasts. This tool was available to license by any company, but wasn’t designed to suit the specific needs of Bloomfire customers. With too many additional features and a somewhat complicated interface, it was also inconsistent with the brand. Bloomfire’s core design principle is visual simplicity in every tool. They wanted to take the best qualities of their product, shareability and ease of use, and reflect that in their customized screencast recorder.

Their web application is the complete package. Many similar learning platforms permit the user to upload pre-recorded videos, but Bloomfire makes it possible for customers to record, edit, and upload videos right in the browser. No need to worry about formats or conversion; Bloomfire does the work for you.

A Working Connection

We needed to understand the intricate mechanics of audio and video recording, as well as the requisites for recording media to a desktop. Developing to their requirements, we created the application to support cross-platform usability. Desktop software is fairly unique in Mutually Human’s portfolio, as we usually focus on web and mobile. Through a combination of web and desktop functions, however, Bloomfire’s screencast recorder provides a seamless user experience. It is launched, edited, and uploaded from the site, but momentarily recorded to a desktop, harnessing the power of both.

This project required complete integration with the existing Bloomfire site and service. Bloomfire offloaded development for the project to us because it made sense with their business goals and resources. Bloomfire’s team had full control over the concept, interface, design and experience of the product, while we took their work and brought it to life. They reported bugs and gave us feedback on certain milestones, but otherwise did not work closely with us on the code. With this in mind, we delivered every feature asked of us while building a code base that was clean and structured enough to transfer back to their internal team without much extra training or ramp-up.

The Team

Bloomfire’s UX and visual designers created a series of compositions before handing the work over to our developers. They had precise knowledge of how they wanted the tool to work, and communicated closely with us. From there, we met with Bloomfire and updated iteratively, assessing needs and obstacles as they came.

Our lead developer on the project had a very strong background in Java, having led and contributed to several corporate level Java projects over the past four years. Because this project was relatively new and had no precedent in our work, we had no previous code base to pull from. We had to use a lot of ingenuity and an intrinsic understanding of Java to be able to create the screencast tool from scratch.

Additionally, we dedicated one person to research, in order to understand how to solve some of the logistical challenges of building a media recording tool. Practical background experience helped us devise high-level creative solutions.

Unique Challenges

Bloomfire’s custom screencast tool is fairly unique in their field, so when they communicated their product needs to us, it was an opportunity to do something new and interesting. We had the foundation of skills to meet these challenges, but it was rigorous prototyping and testing that helped smooth out all the bumps.

The screencast tool has four streams of recording: audio, screen (video), mouse movement, and a fourth stream to stitch them all together. We had to design an application that was robust enough to handle these four streams simultaneously without errors or lag time. In addition, we needed the audio and video to automatically convert for web compatibility.

Audio levels were tricky. Users need to be able to reference levels to ensure that their voice and mic input are at the appropriate volume. We compared a number of recorded audio samples to find the median and to develop an algorithm which could accurately reflect levels from any computer or mic input.

Finally, the application had to be capable of recording media to a desktop. This also required some knowledge of cross platform compatibility, as well as code required to homogenize keyboard shortcuts across operating systems.

The Reward

This project was a mutual success. Bloomfire was able to lighten their workload and focus on their core function of product innovation, and we had the opportunity to work with a cool company on an interesting project.

With development of their screencasting tool offloaded to Mutually Human, Bloomfire is able to keep up with the changes in the market. They can move quickly and enhance the product’s features and services in response to customer feedback.

This is truly a unique piece of software, both in terms of execution and services offered. The look and function of this application strike a neat balance, and it’s the result of a close collaboration between dedicated designers and developers. The screencast recorder enables customers to do some basic trimming and editing without much hassle, while functions that are usually complicated, like compression and uploading, occur with the click of a button.

 

Technology
Ruby on Rails