Control center and controlee program for linux

Job ID: 30820564

Budget: $30 – $250 USD

I have a bunch of routers, smart phones, laptops, etc. I would like to use for this project, which will be referred to as the machines from now.

A control center which can be setup on ubuntu 18.04 and sends commands to all connected machines

The control center should also have a count command to determine how many machines are currently connected to the control center and ready for commands.
The control center and machines should connect via public IPv4 with public IPv6 as a backup, the machines will be at friends houses as well as my own.

The control centers only 2 (current) commands would be the count command and view command followed by 4 arguements, and if argument 4 is Y then a 5th arguement is needed.
The arguements would be URL VIEWS DURATION BUTTON? XPATH

The URL is the url to load, views is how many views should we send to the url per machine connected, the duration is how much time should be in between each machine loading the page, BUTTON? is asking Y/N if there is a button that needs clicked, and if Y then you supply the XPath to the button (xpath is something like //*[@id="button"]).
So if we have 3 machines connected and we run (view https://www.google.com/ 2 30 Y //*[@id="gb"]/div/div[1]/div/div[2]/a) it would do this:

Randomly select Machine to be machine 1, load https://www.google.com/, click the button at //*[@id="gb"]/div/div[1]/div/div[2]/a (the images button), wait 30 seconds
Randomly select a Machine, determine if this machine has loaded page yet, if not it loads page, clicks button, waits 30 seconds
Randomly select a machine, determine if this machine has loaded page yet, if not it loads page, clicks button, waits 30 seconds then repeats.

If the page has been opened before, it skips that machine for then. It can select which machine is next while waiting for the duration to pass.

A ELF (Executable Linux File) which can be installed on the machines. Some of the machines run on different CPU architectures. I have noticed some have the following: Armv4, Armv6, Armv7, Armv8, MIPS, and x86_64. I will need this file compiled for each of these seperately, as a file compiled for x86_64 won't always work on a MIPS machine.

The elf would need to receive commands and perform them, the control center would need to send commands to the machines

The machines would need to be able to load a web page as a normal web browser would, click on a single button, and be allowed to load the new page the button opens.

The ELF should have the ability to restart when the machine is turned off and back on (in case of power outage for the routers), and should have 2 instances running one of the instances sole job will be to restart the main instance if it gets turned off, and the main instance will do all of the above as well as restart the other instance if closed/crashed

Both the ELF and the control center need to be written in one or more of these languages, for performance and usability reasons: C, C++, Golang

If you want to discuss further, please message me on here. If I do not reply in a timely manner, you can message me on Telegram, and I will respond on here. Any communication regarding the project will need to be done via Freelancer. My telegram is purely to tell me you are interested and I will check Freelancer. Thank you!
My telegram is @JorjeGonzalez
Related categories: C Programming Linux Golang C++ Programming