rsiddle / mad_chatter

Mad Chatter is a fun, easy to customize chat server written in Ruby utilizing HTML 5 Server Sent Events

Home Page:http://madchatter.github.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mad Chatter

Mad Chatter is a fun, easy to customize, group chat server. It's written in Ruby and utilizes HTML 5 Server Sent Events for fast communication.

The goal of Mad Chatter is to basically become an open-source version of Campfire, HipChat, or FlowDock...or at least use those as inspiration.

Current Status

Mad Chatter is undergoing a complete rewrite. The original application can be found here. The purpose of this rewrite is to make it easier to integrate into a Rails application and make it easier to host in common hosting environments.

It has been rewritten as a Rails Engine which can be easily mounted in an existing Rails application. That way, users of your application can participate in group chat while using the same user account as your application. However, sharing user accounts has not yet been implemented.

The original purpose of Mad Chatter was to provide a standalone, group chat server, so I plan to continue to provide a way to easily deploy Mad Chatter in this manner. However, easy integration in a Rails app is the highest priority.

Trying it out

Since Mad Chatter makes use of HTTP streaming, you will need to use an application server that supports streaming, such as Thin, Unicorn, Rainbows!, or Puma. Add the following gems to your Gemfile:

gem 'thin'
gem 'mad_chatter', github: 'madchatter/mad_chatter'

If you are using Rails 3, you will also need to add the strong_parameters gem.

Next, run these commands in your terminal:

bundle install
bundle exec rake mad_chatter:install:migrations
bundle exec rake db:migrate

Next, mount the Mad Chatter Rails Engine in your config/routes.rb:

Rails.application.routes.draw do
  mount MadChatter::RailsEngine => "/chat"
end

Now you're ready to try out Mad Chatter. Start up your application and open your browser to the path you specified when mounting the Rails Engine.

$ bundle exec rails server --port 3000
$ open http://localhost:3000/chat

Roadmap

Here is a list of some of the features that have been implemented and are in the pipeline:

Done

  • Create a Rails Engine.
  • Use Server Sent Events instead of Web Sockets.
  • Use Backbone.js for better JavaScript organization.
  • Implement user login and registration.
  • Ability to create public chat rooms.
  • Ability to send messages to a chat room.

Todo

Want to help? Find a story to implement: Stories in Ready

  • Add SSE polyfill to support IE.
  • Allow user login to use main Rails app user accounts.
  • Display users currently in a room.
  • Display status message when user enters or leaves a room.
  • Ability to share code sample messages.
  • Ability to share image messages from URL or upload.
  • Ability to create private rooms.
  • Ability to add users to your friends list to know when they are online.
  • Implement GitHub and Travis CI callbacks.
  • Ability to create a room that mirrors an IRC channel or Campfire room.
  • Ability to consume a Mad Chatter messages from an IRC client instead of SSE.
  • ...your idea here.

Contributing

Here are some ideas of ways you can help out:

Copyright

Created by Andrew Havens and released under the MIT license.

About

Mad Chatter is a fun, easy to customize chat server written in Ruby utilizing HTML 5 Server Sent Events

http://madchatter.github.io/

License:MIT License


Languages

Language:Ruby 78.0%Language:HTML 14.6%Language:CSS 2.8%Language:CoffeeScript 2.8%Language:JavaScript 1.8%