use angular JS for frontend

fixes #29