Skip to content

Live chat application inspired by Discord — React, Redux, Ruby on Rails

Notifications You must be signed in to change notification settings

PhishyFish/hubbub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0b1fa28 · May 5, 2018
May 5, 2018
Nov 16, 2017
Apr 12, 2018
Nov 29, 2017
May 5, 2018
Nov 16, 2017
Nov 16, 2017
Apr 5, 2018
Jan 16, 2018
Nov 16, 2017
Nov 20, 2017
Apr 3, 2018
Dec 1, 2017
Apr 2, 2018
Apr 11, 2018
Apr 11, 2018
Jan 22, 2018
Nov 16, 2017
Nov 16, 2017
Apr 10, 2018
May 5, 2018
May 5, 2018
Dec 1, 2017

Repository files navigation

Hubbub

Hubbub is a live chat web application based on Discord, offering multi-server and multi-channel support, as well as multi-person direct messages.

Overview

Hubbub is built with React + Redux on the front-end and Ruby on Rails and PostgreSQL on the back-end. State is updated based on the data returned from the JSON API via Rails.

Features

Live Chat

real-time messaging

Instant messaging is made available through Pusher. A subscription to a new room-specific Pusher channel is made each time a user enters a direct message thread or channel.

componentWillMount() {
  let { serverId, channelId } = this.props.match.params;
  this.channel = pusher.subscribe(`${serverId}-${channelId}`);
}

componentDidMount() {
  let { serverId, channelId } = this.props.match.params;
  this.props.fetchMessages(serverId, channelId);

  this.channel.bind('new-message', message => {
    this.props.fetchMessages(serverId, channelId);
  }, this);
}

Direct Messages

direct messages

Users can create individual or group direct messages with each other. To start a new thread, users can search through all available users. Messages are stored in the database, while React handles the updates client-side.

Channels

channels

Multiple channels are available in a server. Members can separate conversations by topic and easily navigate between channels.

The message model forms polymorphic associations between channels and direct messages. They are differentiated in the React state by looking at URL params, with a /channels/@me URL denoting a direct message.

About

Live chat application inspired by Discord — React, Redux, Ruby on Rails

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published