In my spare time, such as it is, I’m going to build a feature-rich javascript chat system. There are other javascript-based chat systems, but this one is mine. The server component will be written in NodeJS, and the client will be a rich internet application in javascript using the Dojo toolkit. Communication will be done using websockets.

In terms of javascript proficiency, I’m probably a 7 on a scale of 1 to 10. I mainly use the ExtJS framework at my day job, but until now I’ve not used NodeJS or Dojo at all. This project is primarily for self-education.

In the past day or so, I’ve watched the hour-long presentation on the NodeJS home page, and managed to get it installed.  I’ve read a few of the Dojo tutorials and did some hello world type stuff.

This chat system will be called Nodojo, because I couldn’t think of anything more clever than just mashing the names of the two underlying projects together,  and the word had limited matches on Google.  So, unless you’re in Japan, it should be easy to find on the tubes.

Today, I created two projects on github: nodojo-server and nodojo-client. They are mainly just place holders for now.

I usually have just a couple hours in the evenings to work on things like this. Mostly, it’ll be about 8 to 10 hours per week for this project, so progress might be slow. And, now I have a really good reason to go the TriangleJS hack nights.

I  plan on making posts about my progress and what I’ve learned so far about once or twice per week. If you’re new to javascript or node or dojo, we can learn together.

Feedback is welcome and deeply appreciated, either here or on github,  but don’t send me any pull requests because  I want to write all the code myself.

One decision I feel strongly about is using the Dojo “programmatic” style for the client, emphasizing more code and less markup.  I don’t know if the dojo community leans one way or the other, so I may be helping or hurting myself when it comes to looking up tips in the dojo support systems, but we’ll see what happens.

I’ll be using the IntelliJ IDEA IDE for development, using the new, beta NodeJS plugin.  All development will be on my Ubuntu Maverick laptop.

Tomorrow, I want to

  • Capture a written  list of functional requirements
  • Create one or two mockups of what I think the client UI might look like
  • Create meaningful README files for projects so github will have something to show.

I also want to investigate unit testing for node and for dojo, but that will probably be this weekend.  I have not done any unit testing for javascript code yet.

See you in a day or two.

  • mshiltonj