Restructure Authentication

dependent on #262 (closed) In this ticket, we want to restructure Authentication component so that we use MVC(or other design patterns).

Assignee Loading
Time tracking Loading