The system for remote workers to prevent their family members from interrupting conference calls. The system is designed to automatically detect conference calls on workers' PC, and let their family members know by changing the color on the screen right next to the door.
For example, when you're on conference calls, the system shows the red screen:
when you're working (PC is turned on) but not in conference calls, shows the green screen:
when you're not working (PC is turned off), shows the gray screen:
Currently, the implementation supports zoom conference and slack huddle on macbook catlina (i.e. author's PC).
onair-cli
: Client-side agent that monitors conference call processes and push the status to the web service (onair-be
).onair-be
: The backend part of the web service that receives the updates fromonair-cli
then publishes the status to screens.onair-fe
: The frontend part of the web service that shows colored screen that indicates the current status.
graph LR
A("PC (onair-cli)") -->|POST| B("Server (onair-be)")
B -->|GET/Websocket| C("Screen (onair-fe)")
The project requires
npm
for frontendrust
for backend
To install dependencies,
make setup
This will build frontend/backend and start backend locally.
make
- Open
http://localhost:8080/view
in your browser to check the colored screen. - Run this command to update the state to
onair
:
curl -X POST -d '{"onair": true}' http://localhost:8080/state
- Run this command to update the state to
working
:
curl -X POST -d '{"onair": false}' http://localhost:8080/state
- If you don't send the command for a while, the state will automatically turn
offline
.
This will build the web service binary.
make release