Step 1
download and install node.js
Step 2
add nodejs path to environment variable 'Path'

Step 3
Restart windows, let Path variable take effect.
Step 4
use CMD test whether node.js is success by type node -v, if you see version number, then it success

Step 5
You must login ESRI developer website, then download web appbuilder
https://developers.arcgis.com/downloads/#web-appbuilder

Step 6
select the version you need
https://developers.arcgis.com/web-appbuilder/downloads/

Step 7
unzip, extract file
Step 8
double click startup.bat

Step 9
Fill in portal URL is easy.
But how to get portal item ID? This is hard part.

Step 10
On portal create a new item. Item url is actually your web appbuilder URL, so you need to copy paste here

Step 11
After you save new item, copy new item id in URL bar, then paste in App ID field

Step 12
Even registar app still does not work, run into dead end.

Step 13
try use arcgis online again, see if it works

Step 14
Registar app with client ID.

Step 15
Same ERROR, run into dead end
