Merge sprint 1 work into master

Please do not merge this branch till we verify that everything is working together. 
This means we have to wait till every component finished their work.
@ammarwa  @mrbasio @Nour2610  @yousraHazem