Blockly is an open source library that makes it easy to add block based visual programming to an app, see the official webpage.
This tool has a good graphics and one great design to understand the flow of programming issue.
This project is good for kids and teenagers to start programming and see the source code into programming languages.
For example, the program build with this tool can be convert into programming language like: Java Script, Python, PHP, Lua and Dart.
You can see a simple video tutorial from the official Google Developers Youtube channel: