GithubHelp home page GithubHelp logo

jschat's Introduction

Chabble

Build Status Stories in Ready

Getting Started

  • Clone this repo.
  • Run npm install
  • Run node node_modules/gulp/bin/gulp.js default to check all the tests pass.
  • Run node start-chabble.js to host the site at ```http://localhost:8001````

jschat's People

Contributors

fakeharxy avatar meadsteve avatar johndarv avatar almills avatar

Stargazers

Henry Stanley avatar Oli avatar  avatar Paul Harker avatar

Watchers

Oli avatar James Cloos avatar  avatar  avatar  avatar Paul Harker avatar

jschat's Issues

Better notifications

It currently has the NEW! sign when you get a notification, but it would be even better if it made a noise and a favicon changed from green to red or sommat

different boards

There should be a way to change room based on the endpoint i.e /team or /tonight.

Think this may be reasonably simple with Faye's channels but I don't know

Welcome page

The welcome page should be different from other rooms, and introduce chabble.

Server side data sanitisation

How about we create an incoming extension that is first in the chain to filter out all unwanted HTML, scripts etc.

Add analytics

GA for standard tracking?

Also track Events on video queues with service to get an idea of which services are popular

Maybe even log messages sent and which room they are sent to so we can get a better feel for usage levels

Show upcoming video(s) in some way

Suggestions:

  1. Just the next video and who queued it.
  2. List of who queued the next X videos.
  3. Just a count of the number of videos in the queue.

Thoughts?

Connection to jschat sometimes get dropped.

Not sure if this is a problem or not. I noticed the following in my chrome console:

WebSocket is already in CLOSING or CLOSED state.Faye.Transport.WebSocket.Faye.extend.Faye.Class._ping @ faye.js:2
12faye.js:2 WebSocket connection to 'wss://murmuring-headland-2196.herokuapp.com/faye' failed: Error in connection establishment: net::ERR_NAME_NOT_RESOLVED
faye.js:2 WebSocket connection to 'wss://murmuring-headland-2196.herokuapp.com/faye' failed: Error in connection establishment: net::ERR_NETWORK_CHANGED

we might need to do something that tries reconnecting after X if the connection is dropped.

User 'log in'

Maybe not passwords but there should be some sort of log in so you can't change your name midchat without logging out

Queue priority management

I propose that the queue gets prioritized by user so that users can't fill the queue with their songs and then others have to wait for ever.

Example:
Paul adds 10 items to queue
Steve adds 2 items to queue
Oli adds 2 items to queue

Queue would be: Paul 1, Steve 1, Oli 1, Paul 2, Steve 2, Oli 2, Paul 3, Paul 4..... until someone else dropped songs in.

Thoughts?

Messages lost when Heroku deploys

Due to the local JSON file being removed on deployment. This also seems to happen when the site isnt used for a while.

We will need to look at a DB instead.

Generic play queue for each room

As part of #68 we need a server side object to manage queues of items that "play" for a certain time.

Current thoughts:

For each room:

  1. Top item of a queue gets pulled off. Start time is recorded.
  2. Every few seconds a message will be broadcast containing:
    * the Item type
    * identifier for the queued item (i.e. youtube video id)
    * title of the item
    * play offset in seconds?
    * user who played the item
  3. When the elapsed time (plus maybe some buffer) is passed return to step 1.

stop people using <script>s

Obvs the html is cool and pretty much the best thing about it, but are not cool (STEVE!) so can we prevent those

Favourite rooms

I think being able to add your own favourite rooms rather than rely on recent rooms would be a much better implementation...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.