Part 1: Programming
Write a simple web-chat application that satisfies the following requirements:
-
There is a single chat room
-
All connected users are visible in the room
-
All users get auto-generated user names when they connect
-
A user should be able to change their name
-
All users can send and read messages
Technologies to be used:
-
Frontend - JavaScript, HTML5, CSS, bonus points for using Flux / React or another modern JS framework
-
Backend - JavaScript framework (e.g NodeJS) of your choice Remember to add running instructions to your solution!
Part 2: Architecture
Describe on a high level how you would design a server and client for in-chat applications.
Individual mini-apps should be available inside chat bubbles to all chat participants as dynamic HTML/WebView components.
Synchronization should be taken care of, so that chat participants can see changes affected by others
-
Provide an architecture schematic and justify architectural choices
-
Expand on the key assumptions when building such a system
-
Discuss scalability and performance issues