Data sort and visualisation from state of js survey
Clone the Repository
git clone https://github.com/manchandajayant/JS_DATA_SURVEY_VIS.git
To collaborate, make a new branch or push changes to the develop branch
Unzip state_of_js_2016 in DATA
Unzip SORTED_DATA in server
Install node packages in server :
npm install or yarn install
To run the server :
npm run serve or yarn serve
Install node packages in Front_end:
npm install or yarn install
The data is available on these endpoints : /dataByTools
{
"tool": {
"not_interested": "int",
"would_use": "int",
"would_not_use": "int",
"never_heard": "int",
"interested": "int"
}
}
/jsmainlangauge
[
{ "definitely no": "int" },
{ "no, not really": "int" },
{ "yeah, why not?": "int" },
{ "definitely yes": "int" }
]
/allDocsByYear
{
"2016": [
{
"_id": {
"$oid": "5deecf461314d0e2cabf636a"
},
"browser_type": "touch",
"createdAt": "2017-08-09T03:40:42Z",
"happiness": {
"backend_frameworks": 3,
"build_tools": 1,
"css": 3,
"data_layer": 2,
"front_end_frameworks": 2,
"javascript_flavors": 2,
"mobile_desktop": 2,
"state_management": 2,
"testing": 1
},
"opinions": {
"building_js_apps_overly_complex": 4,
"enjoy_building_js_apps": 3,
"js_ecosystem_changing_to_fast": 4,
"js_moving_in_right_direction": 4,
"js_over_used_online": 2,
"survey_too_long": 4,
"would_like_js_to_be_main_lang": 1
},
"platform": "mobile",
"sections_other_tools": {
"front_end_frameworks": [
"aurelia"
]
},
"survey": "state_of_js",
"tools": {
"angular": {
"experience": "would_use"
},
"aphrodite": {
"experience": "never_heard"
},
"apollo": {
"experience": "would_not_use"
},
"ava": {
"experience": "never_heard"
},
"backbone": {
"experience": "not_interested"
},
"bower": {
"experience": "interested"
},
"browserify": {
"experience": "interested"
},
"clojurescript": {
"experience": "not_interested"
},
"coffeescript": {
"experience": "not_interested"
},
"cordova": {
"experience": "would_use"
},
"cssmodules": {
"experience": "interested"
},
"cucumberjs": {
"experience": "never_heard"
},
"donejs": {
"experience": "never_heard"
},
"elm": {
"experience": "not_interested"
},
"ember": {
"experience": "not_interested"
},
"enzyme": {
"experience": "never_heard"
},
"es6": {
"experience": "would_use"
},
"falcor": {
"experience": "never_heard"
},
"feathers": {
"experience": "never_heard"
},
"firebase": {
"experience": "would_not_use"
},
"graphql": {
"experience": "would_not_use"
},
"grunt": {
"experience": "would_use"
},
"gulp": {
"experience": "would_use"
},
"horizon": {
"experience": "never_heard"
},
"jasmine": {
"experience": "interested"
},
"jest": {
"experience": "interested"
},
"less": {
"experience": "would_use"
},
"mean": {
"experience": "would_use"
},
"mern": {
"experience": "never_heard"
},
"meteor": {
"experience": "interested"
},
"mobx": {
"experience": "not_interested"
},
"mocha": {
"experience": "interested"
},
"nativeapps": {
"experience": "not_interested"
},
"nativescript": {
"experience": "interested"
},
"nofrontendframework": {
"experience": "would_use"
},
"phonegap": {
"experience": "not_interested"
},
"plaincss": {
"experience": "would_use"
},
"react": {
"experience": "would_use"
},
"reactnative": {
"experience": "would_use"
},
"redux": {
"experience": "not_interested"
},
"relay": {
"experience": "not_interested"
},
"rest": {
"experience": "would_use"
},
"sass": {
"experience": "would_use"
},
"typescript": {
"experience": "would_use"
},
"vanillajs": {
"experience": "would_use"
},
"vuejs": {
"experience": "interested"
},
"webpack": {
"experience": "interested"
}
},
"tools_others": {},
"updatedAt": "2017-08-09T03:46:49Z",
"user_agent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
"user_info": {
"browser_type": "touch",
"company_size": "range_100_1000",
"platform": "mobile",
"user_agent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
"yearly_salary": "range_50_100",
"years_of_experience": "range_10_20"
},
"year": 2016
},
"...."
]
}
/allDocsByYear/:year
{
"2016": [
{
"_id": {
"$oid": "5deecf461314d0e2cabf636a"
},
"browser_type": "touch",
"createdAt": "2017-08-09T03:40:42Z",
"happiness": {
"backend_frameworks": 3,
"build_tools": 1,
"css": 3,
"data_layer": 2,
"front_end_frameworks": 2,
"javascript_flavors": 2,
"mobile_desktop": 2,
"state_management": 2,
"testing": 1
},
"opinions": {
"building_js_apps_overly_complex": 4,
"enjoy_building_js_apps": 3,
"js_ecosystem_changing_to_fast": 4,
"js_moving_in_right_direction": 4,
"js_over_used_online": 2,
"survey_too_long": 4,
"would_like_js_to_be_main_lang": 1
},
"platform": "mobile",
"sections_other_tools": {
"front_end_frameworks": [
"aurelia"
]
},
"survey": "state_of_js",
"tools": {
"angular": {
"experience": "would_use"
},
"aphrodite": {
"experience": "never_heard"
},
"apollo": {
"experience": "would_not_use"
},
"ava": {
"experience": "never_heard"
},
"backbone": {
"experience": "not_interested"
},
"bower": {
"experience": "interested"
},
"browserify": {
"experience": "interested"
},
"clojurescript": {
"experience": "not_interested"
},
"coffeescript": {
"experience": "not_interested"
},
"cordova": {
"experience": "would_use"
},
"cssmodules": {
"experience": "interested"
},
"cucumberjs": {
"experience": "never_heard"
},
"donejs": {
"experience": "never_heard"
},
"elm": {
"experience": "not_interested"
},
"ember": {
"experience": "not_interested"
},
"enzyme": {
"experience": "never_heard"
},
"es6": {
"experience": "would_use"
},
"falcor": {
"experience": "never_heard"
},
"feathers": {
"experience": "never_heard"
},
"firebase": {
"experience": "would_not_use"
},
"graphql": {
"experience": "would_not_use"
},
"grunt": {
"experience": "would_use"
},
"gulp": {
"experience": "would_use"
},
"horizon": {
"experience": "never_heard"
},
"jasmine": {
"experience": "interested"
},
"jest": {
"experience": "interested"
},
"less": {
"experience": "would_use"
},
"mean": {
"experience": "would_use"
},
"mern": {
"experience": "never_heard"
},
"meteor": {
"experience": "interested"
},
"mobx": {
"experience": "not_interested"
},
"mocha": {
"experience": "interested"
},
"nativeapps": {
"experience": "not_interested"
},
"nativescript": {
"experience": "interested"
},
"nofrontendframework": {
"experience": "would_use"
},
"phonegap": {
"experience": "not_interested"
},
"plaincss": {
"experience": "would_use"
},
"react": {
"experience": "would_use"
},
"reactnative": {
"experience": "would_use"
},
"redux": {
"experience": "not_interested"
},
"relay": {
"experience": "not_interested"
},
"rest": {
"experience": "would_use"
},
"sass": {
"experience": "would_use"
},
"typescript": {
"experience": "would_use"
},
"vanillajs": {
"experience": "would_use"
},
"vuejs": {
"experience": "interested"
},
"webpack": {
"experience": "interested"
}
},
"tools_others": {},
"updatedAt": "2017-08-09T03:46:49Z",
"user_agent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
"user_info": {
"browser_type": "touch",
"company_size": "range_100_1000",
"platform": "mobile",
"user_agent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
"yearly_salary": "range_50_100",
"years_of_experience": "range_10_20"
},
"year": 2016
}
Schema of the data :
{
"_id": {
"$oid": "5deecf461314d0e2cabf636a"
},
"survey": "state_of_js",
"year": 2016,
"browser_type": "touch",
"user_agent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
"platform": "mobile",
"createdAt": "2017-08-09T03:40:42Z",
"updatedAt": "2017-08-09T03:46:49Z",
"tools": {
"vanillajs": {
"experience": "would_use"
},
"es6": {
"experience": "would_use"
},
"coffeescript": {
"experience": "not_interested"
},
"typescript": {
"experience": "would_use"
},
"elm": {
"experience": "not_interested"
},
"clojurescript": {
"experience": "not_interested"
},
"nofrontendframework": {
"experience": "would_use"
},
"react": {
"experience": "would_use"
},
"angular": {
"experience": "would_use"
},
"ember": {
"experience": "not_interested"
},
"vuejs": {
"experience": "interested"
},
"backbone": {
"experience": "not_interested"
},
"redux": {
"experience": "not_interested"
},
"mobx": {
"experience": "not_interested"
},
"relay": {
"experience": "not_interested"
},
"rest": {
"experience": "would_use"
},
"firebase": {
"experience": "would_not_use"
},
"graphql": {
"experience": "would_not_use"
},
"apollo": {
"experience": "would_not_use"
},
"falcor": {
"experience": "never_heard"
},
"horizon": {
"experience": "never_heard"
},
"meteor": {
"experience": "interested"
},
"feathers": {
"experience": "never_heard"
},
"donejs": {
"experience": "never_heard"
},
"mern": {
"experience": "never_heard"
},
"mean": {
"experience": "would_use"
},
"mocha": {
"experience": "interested"
},
"jasmine": {
"experience": "interested"
},
"enzyme": {
"experience": "never_heard"
},
"jest": {
"experience": "interested"
},
"cucumberjs": {
"experience": "never_heard"
},
"ava": {
"experience": "never_heard"
},
"plaincss": {
"experience": "would_use"
},
"sass": {
"experience": "would_use"
},
"less": {
"experience": "would_use"
},
"cssmodules": {
"experience": "interested"
},
"aphrodite": {
"experience": "never_heard"
},
"webpack": {
"experience": "interested"
},
"grunt": {
"experience": "would_use"
},
"gulp": {
"experience": "would_use"
},
"browserify": {
"experience": "interested"
},
"bower": {
"experience": "interested"
},
"nativeapps": {
"experience": "not_interested"
},
"reactnative": {
"experience": "would_use"
},
"cordova": {
"experience": "would_use"
},
"phonegap": {
"experience": "not_interested"
},
"nativescript": {
"experience": "interested"
}
},
"sections_other_tools": {
"front_end_frameworks": ["aurelia"]
},
"opinions": {
"js_moving_in_right_direction": 4,
"building_js_apps_overly_complex": 4,
"js_over_used_online": 2,
"enjoy_building_js_apps": 3,
"would_like_js_to_be_main_lang": 1,
"js_ecosystem_changing_to_fast": 4,
"survey_too_long": 4
},
"user_info": {
"browser_type": "touch",
"user_agent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/59.0.3071.125 Mobile Safari/537.36",
"platform": "mobile",
"years_of_experience": "range_10_20",
"company_size": "range_100_1000",
"yearly_salary": "range_50_100"
},
"happiness": {
"javascript_flavors": 2,
"front_end_frameworks": 2,
"state_management": 2,
"data_layer": 2,
"backend_frameworks": 3,
"testing": 1,
"css": 3,
"build_tools": 1,
"mobile_desktop": 2
},
"tools_others": {}
}