The three-person team of Comity Designs placed third in the competition, winning $1000. They also won the GNIP partner category prize for another $1000.
The most difficult part about any developer challenge or hackathon is not the implementation, but coming up with a killer idea. In our opinion, it’s better to have a great idea and a bad implementation rather than the opposite. It took us 2 days to come up with an idea. We tried several approaches– long brainstorming sessions, thinking in a vacuum without any interaction, browsing Internet for inspiration, we had tried so many things. I even tried to sit on a bench near a small fountain next to my apartment – just nature and me … which unfortunately didn’t work out very well. Many ideas were discarded because they seemed too trivial, or had already been mentioned on the Internet or even implemented.
For instance, Salesforce.com’s Service Cloud 3 included a whole set of “Social Enterprise” features and integrations with various social media resources which were pretty amazing. Other things that we considered: integration with Google + (which didn’t have an official API at the moment); a Radian6-driven marketing campaigns on Force.com; and an Android app that would aggregate data from Chatter, Facebook and Twitter. At the end of the day, none of these seemed like the killer idea we were searching for.
Finally on the evening of Aug 28, an idea sparked our minds. What if we had an application that could calculate the mood of employees based on statuses they set and tweets they posted on various social media sites? Such data could be used to build charts that would show the emotional state for an individual, or for the whole company – which could then be analyzed and correlated with other metrics from let’s say, Sales, Support and Marketing– to get a holistic picture of the company’s mood. One could come up with various scenarios on how to use such data. We decided to go with this idea.
Now that we had an idea, the easier part was to design and implement it. On a high level, we thought about capturing tweets and statuses from Facebook, Twitter, LinkedIn and Chatter via their corresponding APIs, and analyzing it all using the Twitter Sentiment API. We later decided to add GNIP and Twilio integration as well, to make the solution more robust. GNIP was used to analyze the general public’s attitude towards the company brand and we used Twilio to send a SMS message when the overall company mood went below certain threshold.
After identifying all the necessary APIs, we started building the Proof of Concept code with bare minimum functionality. Later, the POCs were then enhanced with additional code. Certain things were built 100% from scratch; for others, we reused some of the openly available resources such as Facebook and Force.com integration that we customized and enhanced to meet our needs. The APIs were well documented and it was relatively easy to figure out how to work with them.
Some of the challenges we had were related to JSON and XML parsing– while processing the data, we ran into the ‘Too many script statements’ exceptions which forced us to write our own small parsers specific to our needs. Now that JSON is going to be natively supported soon, it will make developers’ lives so much easier.
Another item that took some time to figure out was GNIP authentication. It turned out that in addition the documented way of authenticating, credentials had to be Base64 encoded and passed to the API in the HTTP header. To figure out this we had to inspect the HTTP traffic while testing the API in the Firefox.
All in all, we met the target to finish coding by 6 am Sep 1. The app was submitted, and we were now eligible for the $10,000 top prize plus at least two partner category prizes.
During the final pitch, all finalists were given 3 minutes each to present. The main lesson learned from the final demo was: it takes effort to properly structure the presentation/demo so that within the short period of time all the key features of the app are highlighted. Having a nicely prepared pitch is really an art of its own. Even the coolest app if poorly presented, may not convey all of its the coolness to the audience.
We were lucky enough to win the 3d prize and the GNIP award. It was an amazing experience full of lots of fun and of course, hard work. Most of the team members had never worked with the technologies that were used to build the app, so it was a unique and valuable experience. Kudos to Salesforce.com for organizing such a great event. We’re looking forward to the upcoming challenges!
About Comity Designs
All team members work for Comity Designs Inc., a Salesforce.com Partner:
Shamil Arsunukayev – Principal Technical Architect
Ivan Melnikov – Technical Architect/Senior Developer
Gaziz Tazhenov – Technical Architect/Senior Developer