С авторизацией успеете. Сначала аутентификация - тут стоит посмотреть на удобный для этого openid или OAuth2. Мы остановились на OpenId с JWT токеном и довольны. С ассиметричной подписью. Если сразу хотите хорошо и на будущее то стоит добавить identity server отдельно. Keycloak или wso2 (с первым проще). Я вообще радею за Auth0, но он стоит как Боинг для небольших проектов.
Обязательно документирйте API в swagger (oas 3) или raml. Версионирую все в зависимости от проекта. Есть 2 основных подхода: версионировать все API или отдельно его методы. В мире облаков, например, версия это просто роутинг траффика
Сравните top нижнего и bottom верхнего и вызовите функцию.
Что-то типа:
var pos1 = document.getElementById("myDiv1").style.bottom;
var pos2 = document.getElementById("myDiv2").style.top;
if (pos2<=pos1) {
alert("событие!")
}