Real Time Discussion Board Experiment

The prototype demo page can be found at: http://ngo-hung.com/project/myboard

The source code: https://github.com/thehung111/node-discussion-board

I have always been impressed with Node.js and Socket.io which enables us to write real time applications with little amount of code. My very first experience with Socket.io was to write a simple chat application. I was so excited back then as it took only around 15-20 lines of code.

After all the excitement and the 'WOW', it was time to begin writing a practical prototype which ideally have some real life application. As I was looking for some fun ideas, I noticed the scrumblr project which enables users to drag/drop notes or reminders on a virtual board. So, I thought of doing something similar but is slightly different. The idea also has some applications for e-learning which is something I am very interested in.

Below is what I have done for the mini-project:

1) I have rewritten the app to use Twitter Bootstrap UI framework which gives you pretty buttons, popups, javascript popups and also is responsive on mobile devices. Previously I was using Skeleton which is a lot simpler and deployed the first version on Redhat OpenShift:

http://the-hung.rhcloud.com/blog/2012/05/14/experiment-3-real-time-discussion-board-chat

The app now looks a bit nicer :)

2) There are 2 mini apps:

  • Chat Module : enable users to communicate with each other

  • Discussion Board: enable users to create notes/reminders and drag them on the board

I have rewritten the chat module with Backbone.js which is also something new to me. I like the ways Backbone forces you to think about object designs in Javascript and especially its wonderful events/signaling mechanism. The library is so small too.

The discussion blackboard also supports touch events. That mean users can make use of the app in IPad. Dragging support for both mobile and desktop can be done easily with the help of KineticJS and jQuery UI.

Finally, it was quite easy to put the app in PHP. I will make a note in another post.

comments powered by Disqus