Building a Social Enterprise Application in Under 24 Hours

oif.pngPaul, Jake and I were chatting a few weeks ago wondering how we can establish an ongoing dialog with our peers in product strategy and capture the innovative ideas they have for our future products. We thought of several ways to do this:

  1. Having conference calls to exchange ideas on a regular basis
  2. Inviting our peers to collaborate on a Google doc
  3. Build a simple website to track their ideas

Obviously, 1 and 2 are bad ideas, so we opted for 3. What we needed was a site where people can submit their ideas, tag them, have them be rated by their peers, and allow comments to be entered. I like to call it “The Wall” — throw your ideas up on the wall and see if they stick… the community will decide. The real name of the site is “IdeaFactory”. A pretty simple site, really. It follows the same principles as most Web 2.0 sites today — folksonomies and feedback systems (ratings/comments) to facilitate community building. So, that night I set out to build it.

As you know, I’m a rails fanboy now and so building it with RoR was a no brainer for me. I already knew that there were rails plugins for most of the features we needed (tagging, comments, search, etc.) My job would be to just tie them all together. To start, I gathered together the best plugins I knew about to build this site (I used agilewebdevelopment.com to help me). I ended up with these plugins:

  • acts_as_commentable — for comments integration
  • acts_as_ldap_authenticated — this is a variation on acts_as_authenticated with LDAP authentication support. In the future, I think I’ll migrate the LDAP code in this plugin to the restful_authentication plugin. I needed this plugin to tie into Oracle’s LDAP system so that users can just use their Oracle userid/pwds to get into the site.
  • acts_as_taggable_on_steroids — for tagging support
  • asset_packager — not necessary, but does a nice job of combining and minifying my javascripts and stylesheets
  • minus_r — not necessary, but I hate the way rails treats javascript (they make you code your javascript in ruby… lame). Also, I wanted this since I prefer to use jQuery instead of Prototype.
  • permalink_fu — not necessary, but gives me nice readable URLs
  • acts_as_rateable — enables a five star rating system
  • tiny_mce — enables WYSIWYG text editing which allows people to enter their content with some basic formatting.

The beauty of using rails is that over the past few years, it’s become a popular choice for building “2.0” style apps. And so, lots of the features of a “2.0” style web application have been turned into rails plugins which makes building stuff with those features dirt simple. It’s also a framework that has a huge (and growing) community of developers who love to share their knowledge and code.

When I started building the IdeaFactory, I had no idea that I would have a working version within 24 hours with all the key feature (tagging, ratings, comments, and LDAP auth). I’ve built a few rails apps before this one, but none that were really that interesting. The IdeaFactory is something that was interesting because it was badly needed by our teams — too many ideas weren’t being shared and critiqued by the general Oracle ecosystem. So, we knew that if we built the IdeaFactory, it would get used a fair bit and would help Oracle product strategists be more collaborative.

I started coding on a Thursday night and by mid-day Friday morning, I had the general pieces in place so that data can be entered. On Friday afternoon, I requested a new hostname (http://ideas.us.oracle.com — intranet) which came alive by Saturday. I made a few enhancements over Saturday and Sunday and by Monday, the site was live! Since then, the site’s taken off (thanks to the additional boost by Justin). It’s become such a popular site internally, that there’s talk of putting together a public facing IdeaFactory site for Oracle customers — I’m hoping that happens.

While many of us in development have been used to the whole process of requirements gathering, writing a BRD (business requirements doc), FDD (functional design doc), and TDD (technical design doc) — which I’m intimately used to doing over the years, it’s refreshing to be able to just roll up my sleeves and start building something and have a working product within hours of starting.

I can’t wait for my next project. Stay tuned… you’ll hear about it here.

AboutRich Manalang

a.k.a.: manalang

26 comments

  1. Pingback: ideablogs
  2. Pingback: Speaker City
  3. Pingback: YNNO Research
  4. Cool stuff Rich. I was wondering, did you use an Oracle database for this project? and did you write any tests? (RSpec or unit test?) What major problem did you face? How did you convince people to use Rails?

    I’m glad to see that Ruby and Rails are getting more and more “enterprise”(actually ‘enterprise people’ are getting more interested in Ruby and Rails).

    Keep us posted,

    Matt

  5. Cool stuff Rich. I was wondering, did you use an Oracle database for this project? and did you write any tests? (RSpec or unit test?) What major problem did you face? How did you convince people to use Rails?

    I’m glad to see that Ruby and Rails are getting more and more “enterprise”(actually ‘enterprise people’ are getting more interested in Ruby and Rails).

    Keep us posted,

    Matt

  6. Hi Matt. Currently it’s on a MySQL db. I will be porting it to an Oracle 10g DB and also to jRuby at some point. I wanted to get the site up and running as quickly as possible without having to deal with possible bugs I might run into with jRuby on an Oracle DB.

  7. Hi Matt. Currently it’s on a MySQL db. I will be porting it to an Oracle 10g DB and also to jRuby at some point. I wanted to get the site up and running as quickly as possible without having to deal with possible bugs I might run into with jRuby on an Oracle DB.

  8. Great idea, How long before people started using the site? Did you have to market it much. I think I may try doing something similar for my organization but I will probably do it using oracle portal as that is what our intranet is based on. One question. Was the look and feel of the design produced by ruby on rails or did you code it yourself?

  9. Great idea, How long before people started using the site? Did you have to market it much. I think I may try doing something similar for my organization but I will probably do it using oracle portal as that is what our intranet is based on. One question. Was the look and feel of the design produced by ruby on rails or did you code it yourself?

  10. Nice blog…..Thanks for the info…..It was really useful….. Web 2.0 approach to enterprise application development is the first factor that makes our applications bring about a SEA-change.

  11. Nice blog…..Thanks for the info…..It was really useful….. Web 2.0 approach to enterprise application development is the first factor that makes our applications bring about a SEA-change.

Leave a Reply

Your email address will not be published. Required fields are marked *