client-side time-logging app