By a group of enthusiasts.
You will need NodeJS v8 to be able to run this project. Prepare:
git clone <proj>
cd <proj>
npm installNow run the following depending on what you need:
- npm run client-dev: run client development configuration with hot reload. You will need to run server separately, see below.
- npm run build-and-start: run full production build and start the server.
- npm run server-build-and-start: build and run server only.
/src
  /client - handles all client files like Vue templates, images, etc.
    /index.js - client's main entry point (do not rename)
    /index.html - HTML index file (do not rename)
    /.babelrc - Babel transpiler options, used to transpile ES6 to ES5
  /server - handles all server files (Server-side JavaScript).
    /.babelrc - Babel transpiler options, used to transpile ES6 to ES5
    /index.js - server's main entry point (do not rename)
    /Client.js - class representing the client instance. For each WebSocket connection one Client instance is created.
  /global - includes reusable javascript, which can be both included from server or client.
    /const.js - file with constants used both on server and client sidesBoth client and server should use this library for communication.
Chat API:
- Client
- radio.tell("message", { text: "string" })- Send message to server.
- radio.tell("config", { name: "My nickname" })- Set my nickname in chat.
- radio.listen("message", (msg) => { /* msg.text, msg.name, msg.id */ })- Receive messages from server.
 
- Server
- radio.listen("message", (msg) => { /* msg.text, msg.id */ })- Receive message from client.
- radio.listen("config", (conf) => { /* conf.name */ })- Apply config from the client.
- radio.tell("message", { name: "Client Name", text: "Message text" })- Send message to clients.
 
Server: do changes -> npm run build-and-start -> test
Client: npm run server-build-and-start -> npm run client-dev -> do changes -> test