With the release of the latest version of Bungee Connect we are happy to announce the release of a new reference application for Bungee Connect. WideLens is a calendaring application built to demonstrate what can be built with Bungee Connect, such as:
Connectivity to multiple types of external data:
WideLens connects to Microsoft Exchange calendar, Google Calendar, Salesforce.com, Facebook, MySQL and iCalendar feeds. If you’re familiar with these services, you know this list isn’t just a mouthful to say, it represents a variety of protocols and authentication schemes. MS Exchange is accessed through WebDav, Google Calendar through gData, Salesforce.com via SOAP, Facebook through REST and MySQL connectivity is based on client libraries provided by MySQL (integrated directly inside Bungee Connect).
WideLens connects to each of the sources in real-time, presenting the user with live data. With the exception of Facebook and iCalendar, users can create and modify events and those changes are immediately posted back to the source.MySQL pulls double duty, serving as both a WideLens native calendar source and as the persistence layer for all kinds of application data including user preferences and credential information for each service.
Due to the sensitivity of calendar data, user credentials for each type of service are encrypted before being stored into the database. Credentials can only be unlocked with the users password, not stored in the database. If they forget their password they will need to re-enter all their credential information for each service.This list of services was chosen to demonstrate to variety of ways Bungee Connect can leverage existing data in applications and the accelerated way in which a developer can integrate that data into their application. To provide some perspective, once the base calendar was functional it took only 3 hours of development time to integrate Salesforce.com and only 1 day to integrate Facebook.
Amazing user experience:
WideLens also shows the flexibility of the many controls available to build applications. Some of the interactions were created using calendar specific controls, such as the appointment list control, while others were created by compositing multiple controls together. For instance, the month view is actually the FormList control which uses a form to display each day of the month. Each form representing a single day also has a FormList control displaying the list of events. As you use WideLens, you’ll notice that the number of weeks displayed in the month view varies depending on the month. The developers didn’t write any logic to get that interaction, they simply bound the control to a collection of days and the FormList control took care of how to correctly display days of the current month depending on the number of days in the collection.
Another interaction worth calling out is the ability to drill down to the day view from within the month view. From within the month view you can click on the down arrow in the upper-right corner and a pop-up opens to display the day in more detail. You’ll also notice, that dragging an appointment in the pop-up to a new time causes an update in the month view behind it. Adding this interaction required only writing a function to pop open a dialog and building a form with the appointment list control on it. Bungee Connect handled the state management between the client and server and updating the views as the data changes.
There are many more interactions that give users a truly amazing experience, go check out the app and the source code to see how they were implemented.
Embed the app into any SaaS solution or website, even with single sign-on:
Because WideLens connects to multiple data sources, it makes sense to deliver the application as part of the UI. Specifically with Salesforce.com in mind, we added the ability to embed WideLens within Salesforce.com and support single sign-on. To enable single sign-on for Salesforce we just sub-classed the EmbeddedSingleSignOn class and wrote a function to take some arguments from the URL and validate the Salesforce user. Once we validate the Salesforce user we unlock their credentials and they are logged in. This is a great way to deliver a seamless experience compositing multiple applications.
Sophistication and flexibility provided through OO programming in Bungee Connect:
Bungee Connect is built on OO principles and supports full object inheritance. WideLens was architected to take advantage of that fact and builds several base classes as a foundation for the calendar. Connecting the multiple services together required only sub-classing the base classes and overriding the appropriate functions for each new source. When you jump into the source code you’ll see exactly what I mean.
More to come!
This is only the beginning for WideLens, over the next couple of months you’ll see many new features.
Extending the WideLens Reference App
We hope that this application will provide you with both a reference on the best way to leverage Bungee Connect and even a starting point for your own projects.In addition to the release of the application, we also have an article on extending the app to fit your own business needs. In this article, WideLens was extended to support a new calendar type and display Salesforce.com opportunities on the calendar.
We provide WideLens under a BSD-style open source license so you can use it in your own projects. You can see the full license here.
Director of Marketing