To start the assignment you need to have docker installed (with docker-compose). To start, clone the repo and then run:
./start.sh
On a unix-like system, or
.\start.ps1
On a windows system.
Wait for everything to start and then navigate to http://localhost:3000
in your browser.
I used redux as the state management solution for this assignment. The database used is elasticsearch v7.17
(it's part of the docker-compose). To get state updates which happen in another instance of the app, websocket connection is used (via socket.io
lib).
I haven't fully implemented authentication, but I use login request to get accessToken from the server, which is used to uniquely identify the app instance later.