Read the article

Check the code on Github

Screen 1
Scroll for more
Screen 2
Screen 3
Screen 4