Skip to content

FindMyKids/testtask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ребенок находится в зоне с центром в 57.988962, 56.204668 и радиусом 15м. Часы ребенка с периодичностью в 0 - 100 миллисекунд посылают свои координаты в некий сервис, задача которого состоит в том, что оповестить родителя этого ребенка, если ребенок покинул указанную зону. Необходимо реализовать сервис, который будет принимать http-post запросы, в теле которых передается json формате

{
  "id": 0,
  "child_id": 0,
  "latitude": 57.9889708, 
  "longitude": 56.2047503, 
  "accuracy": 14 // погрешность в метрах (радиус)
}

Задача сервиса определить, когда ребенок уже точно покинул зону и уведомить родителя, совершив пустой http-get запрос по адресу "/notify/parent", чем раньше сервис уведомит родителя - тем лучше, но стоит помнить, что ложные уведомления могут нервировать родителя. Важно помнить, что координаты могут быть не точны и ориентироваться на их надежность не стоит.

Для симуляции ситуации в папке bin/ находится бинарник, который отправит около 300 координат в http-post запросах на указанный в аргументе target, после отправки останется слушать addr/notify/parent (addr указывается в аргументах вызова бинарника, по умолчанию 127.0.0.1:4080), когда сервис отправит запрос на addr/notify/parent в логе child-бинарника будет сообщение о том сколько секунд прошло с момента реального выхода и сервис завершит работу. Единственно правильного ответа нет, существует приближенный ответ.

Пример:

- Создаем свой сервис на go, запускаем его например на адресе 127.0.0.1:4079
- Запускаем: child_parent_simulator_darwin_amd64 start -target http://127.0.0.1:4079/set-coord -addr 127.0.0.1:4080
- Когда сервис определит выход из зоны он должен сделать пустой http-get запрос по адресу 127.0.0.1:4080/notify/parent
- После этого в stdout child_parent_simulator_darwin_amd64 должен быть лог о получении уведомления и его работа прекратится

Итогом решения задачи является ссылка на репозиторий с открытым исходным кодом и инструкцией по запуску сервиса для проверки

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published