Stage 1
Front-end:
- Timer loop раз в 10 секунд. Запрос геопозиции, проверка нахождения в домашних зонах. Если нет домашних зон - конец итерации. Если есть - домашние зоны в массиве - проверка итерированием массива. В домашней зоне - выставить флаг зоны в 0 и конец итерации, иначе: флаг зоны 0 - выставить 1 и конец итерации.
- Watchdog loop раз в 10*3 = 30 секунд. Если флаг 1 - то запустить Mask watchdog, выставить now()+7200 секунд переменную alertTime и флаг зоны выставить в 2
- Mask watchdog раз в 10*6 = 60 секунд. если флаг зоны не 2 - завершить работу, иначе если now() больше alertTime - выдать уведомление о смене необходимости маски и завершить работу
Back-end:
Два сервисных класса-метода:
- login - аутентификатор. Методы:
- getLoginProvidersList - возвращает JSON с id, именем иконки, именем функции JS которую надо вызвать для отображения кнопки/формы и именем функции конструктора
doLogin - передаёт данные формы если есть и id метода авторизации
pollLogin - возвращает пусто или токен НАШЕЙ авторизации
logout - без комментариев )
- storage - интерфейс хранилища. Методы:
store - наш токен + base64 от зашифрованных данных - сохранить
load - наш токен - получить base64 от зашифрованных данных
Два компонента с модульной структурой. Классы-прототипы:
- loginProvider - класс провайдера логина, делает авторизацию. Методы:
login
logout