Unfortunately, slack just isn't cutting it anymore as a chat service. This week we'd like you to build us an alternative. This first iteration of the application will be a simple browser-based chat application.
When accessing the application, a user should have the option to:
- Oauth with github (or maybe even no auth, just sign up with a name?)
- select from a list of existing "rooms" to enter
- Or optionally create a new room
Once inside a chat room, a user should see a standard chat interface, including:
- A list of current members in the room
- Last X messages that have been sent in this room
- A text box for typing a new message and a button to send the message
Chat isn't very useful if it's not real time, so the rooms need to update with new messages sent from other users semi-instantly. You have some leeway about how you accomplish this, but the 2 most realistic options are:
- Long-polling from the client side
- Persistent websocket connections between client and browser
- @-mentions
- emoji
- text/email notifs
- File uploads
- room invites