Implement login view, closes #1