**See schematic below
Deliverable: Video, Source Code
GitHub Private Repository: https://github.com/bkmunar/WareComm
Challenge #1: Build server for mobile to mobile communication
Challenge#2: Synchronization of communication events
Explanation of evidence showing progress:
For challenge one, we established a node.js server on DigitalOcean that our clients can hit. We set up endpoints that the client can listen on in order to get any updates (aka any pings that are directed at them) and can post to in order to send pings to other people/departments.
The clients have set intervals where they fetch data from the server, like in programming assignment 2, and parse the response to see if there are any new pings destined for the client. The post end point allows the client to create a new post to the server, sending the destination and message of the ping in the parameters of the post. We are able to send and receive data to and from the server on the device.
Since all the data is synced on the server the responses act in a first come first serve manner. If user one broadcasts a ping and user two responds, user two tells the server to invalidate everyone else's ping, thus synchronizing all the devices. If another user tries to respond to the ping the server will respond and tell the device that it is already resolved. We set up a database to store the information and switch a pings status from active to resolved when a user responds.
GitHub Repository: https://github.com/squeekur/node-js-sever