Your mission is to write a chat widget using meteorJS. We already have the Meteor basics, with Mongo on the back end. You only have to do the widget. You don't have to have Meteor or Mongo skills already. You do need related skills like Derby, Angular, Backbone, or Ember.
Chat is an easy problem with this toolset and there are a bunch of quickie implementations on Github. The difference here is more hardening.
These are the short term requirements for the app:
* Text only
* Database backed, so that on entering a page containing the widget the last 20 messages are visible.
* Messages can be up to 120 characters; there is a reverse counter as the user types.
* Each message begins with the username. The username can be edited at any time. Usernames cannot be used twice in the same chat. No two users (they unique IDs in the database) can have the same name.
* URLs in messages are converted to links that open in a new window.
* Widget autosizes to container.
* Thorough unit tests using Mocha. Passes them.
* Checked on Chrome, Firefox 5+, IE 8+, Safari iPad, Safari 5+, an iOS phone browser, an Android phone browser (We'll help with this testing)