[gui] First commit of the gui branch.
[gui] Design of the gui.
[gui] Logic of the gui implemented.
Merge remote-tracking branch 'origin/gui'