Разработать кроссплатформенный сервис, который подключается к серверу
Задача:
Разработать кроссплатформенный сервис, который подключается к серверу, сообщает свое состояние, выполняет полученные от сервера команды.Требования:
- Платформа разработки Go.
- Платформы, на которых функционирует сервис: Windows, MacOS, Ubuntu.
- Возможность задать адрес подключения API и интервалы опроса в настройках сервиса.
- Логирование с различными уровнями: Information, Debug.
- API: https://panteam.pro/ksbim/stage-1/api/swagger/
- Сервис должен функционировать как служба на ОС Windows, как агент или демон на ОС MacOS и ОС Ubuntu.
- На панели инструментов ОС необходимо отображать иконку при нажатии на которую можно увидеть следующую информацию:
- Адрес до API.
- Статус службы вкл/выкл с возможностью переключения.
- Выполненные команды (дата и время выполнения).
- Открыть папку с логами.
- Пользовательский опыт работы со службой и иконкой должен быть похож на ПО Tailscale.
- Выполняемые команды от сервера
- Shutdown - выключение компьютера. Если в списке команд для службы от сервера есть эта команда, то необходимо выключить компьютер. При включении службы проверять если нет подключения до сервера, и команда, полученная от сервера, была выключить, то выключить компьютер, если от сервера в полученных командах нет Shut down, то не выключать компьютер.
- ShutdownNetwork - отключение сетевых интерфейсов компьютера.
Бонусы:
1) Завершение задачи до 12.08.2024 16:00 по Московскому времени - 5 000 рублей;2) Код покрыт юнит тестами:
- Более 30% - 5000 рублей;
- Далее 3000 рублей за каждые дополнительные 10%.