An exercise in Django, Angular, websockets, Ansible, TDD, and other stuff