From 2d3dc19a528005a990ab1eb4304e4f26d8155529 Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Tue, 28 Nov 2017 02:30:54 -0500 Subject: [PATCH 01/42] obteniendo el total de desertores --- index.html | 4 ++-- js/app.js | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 8930fa03..7a9aefe5 100644 --- a/index.html +++ b/index.html @@ -7,8 +7,8 @@ - + - + diff --git a/js/app.js b/js/app.js index 895ae2dd..9356cb66 100644 --- a/js/app.js +++ b/js/app.js @@ -2,5 +2,26 @@ * Funcionalidad de tu producto */ +// console.log(data.AQP['2016-2']['students'][0]['active']); +var studemts = data.AQP['2016-2']['students']; +var studemtsActive = []; +var studemtsDeserte = []; + +for (var i = 0; i <= studemts.length; i++) { + debugger; + if (studemts[i].active === true) { + studemtsActive.push(studemts[i].active); + console.log('activos estudiamtes' + studemtsActive); + } else { + studemtsDeserte.push(studemts[i].active); + console.log('desertores' + studemtsDeserte); + } +} + +console.log(studemtsDeserte.length); // Puedes hacer uso de la base de datos a través de la variable `data` -console.log(data); +// console.log(data); + +// console.log(Object.keys(data)[0]); + + From 7d35d33d2b2211d41997d5dacaf120d37ca167de Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Tue, 28 Nov 2017 02:41:03 -0500 Subject: [PATCH 02/42] obteniendo el porcentaje de desertores --- js/app.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/app.js b/js/app.js index 9356cb66..63299946 100644 --- a/js/app.js +++ b/js/app.js @@ -18,7 +18,9 @@ for (var i = 0; i <= studemts.length; i++) { } } +var porcentajeDesercion = (studemtsDeserte / studemts.length * 100); console.log(studemtsDeserte.length); +console.log(porcentajeDesercion); // Puedes hacer uso de la base de datos a través de la variable `data` // console.log(data); From c8d338aba86d2ad239cc39b2f4f8e0e14380343d Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Tue, 28 Nov 2017 12:35:16 -0500 Subject: [PATCH 03/42] hmtl estudiantes --- css/main.css | 40 ++++++++++++++++++++++++++++++++++++++++ js/app.js | 9 +++++---- students.html | 29 +++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 students.html diff --git a/css/main.css b/css/main.css index 6355c827..465c3f88 100644 --- a/css/main.css +++ b/css/main.css @@ -1,3 +1,43 @@ /* * Estilos de tu proyecto */ + *{ + margin: 0; + padding: 0; + box-sizing: border-box; + } +body{ + background-color: #F7F7F7; + font-family: monospace; + position: relative; +} +.first{ + background-color: white; + display: inline-block; + padding-left: 20px; + padding-right: 60px; + padding-top: 10px; + padding-bottom: 10px; + font-size: 20px; + line-height: 1.5; + margin-top: 50px; + margin-right: 10px; + margin-left: 80px; +} + +.second{ + background-color: white; + display: inline-block; + padding-left: 20px; + padding-right: 10px; + padding-top: 10px; + padding-bottom: 10px; + font-size: 20px; + line-height: 1.5; + margin-top: 50px; + position: absolute; +} +.search{ + width:800px; + height:35px; +} \ No newline at end of file diff --git a/js/app.js b/js/app.js index 63299946..d5750331 100644 --- a/js/app.js +++ b/js/app.js @@ -1,9 +1,10 @@ /* * Funcionalidad de tu producto */ - +console.log(data); +console.log(Object.keys(Object.getOwnPropertyNames(data)[1])); // console.log(data.AQP['2016-2']['students'][0]['active']); -var studemts = data.AQP['2016-2']['students']; +/*var studemts = data.AQP['2016-2']['students']; var studemtsActive = []; var studemtsDeserte = []; @@ -20,9 +21,9 @@ for (var i = 0; i <= studemts.length; i++) { var porcentajeDesercion = (studemtsDeserte / studemts.length * 100); console.log(studemtsDeserte.length); -console.log(porcentajeDesercion); +console.log(porcentajeDesercion);*/ // Puedes hacer uso de la base de datos a través de la variable `data` -// console.log(data); +// // console.log(Object.keys(data)[0]); diff --git a/students.html b/students.html new file mode 100644 index 00000000..6cf75dfd --- /dev/null +++ b/students.html @@ -0,0 +1,29 @@ + + + + + + + Students + + + +
+

ESPECIALIZATION

+ +
+
+
+
+
+
+
+ +
+ + \ No newline at end of file From 89edf5c66858f5903bbeeb9dbc7c5e1e134598b7 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Tue, 28 Nov 2017 14:03:16 -0500 Subject: [PATCH 04/42] subiendo primera parte de Estructura HTML --- assets/fonts/fonts/icomoon.eot | Bin 0 -> 1412 bytes assets/fonts/fonts/icomoon.svg | 12 +++++++ assets/fonts/fonts/icomoon.ttf | Bin 0 -> 1248 bytes assets/fonts/fonts/icomoon.woff | Bin 0 -> 1324 bytes assets/fonts/style.css | 38 ++++++++++++++++++++++ css/main.css | 1 + index.html | 54 +++++++++++++++++++++++++++++++- 7 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 assets/fonts/fonts/icomoon.eot create mode 100644 assets/fonts/fonts/icomoon.svg create mode 100644 assets/fonts/fonts/icomoon.ttf create mode 100644 assets/fonts/fonts/icomoon.woff create mode 100644 assets/fonts/style.css diff --git a/assets/fonts/fonts/icomoon.eot b/assets/fonts/fonts/icomoon.eot new file mode 100644 index 0000000000000000000000000000000000000000..5836416c2a6283c781f6ff3d120dc9598f87822a GIT binary patch literal 1412 zcmah}J7^S96g_WdcXspJ@sk~b1f6{CHk*%8(LhKM7-LW(1Pj4TcGpc{cP4B$lAuKj zv9K|yO?qo1Hfb!$^Cl_>ZE-u?=CMzv9$h%_B-0W3&rwk%Qg|T3cHSipKp@f}B0)wg;=J4lIlJ<gtBAJ6;%!nJmZ`x^YJJKyqJqx29GrVn``5F3Ter>2-_gQPMENi=b+c9n zJLfy(4TQqH;68aFQgrWNq|nXY2tA=K(-^~*D}OWEaT@b@L|d-G;I|3h+us>fV4xCs zp~e@8sSFNAJg0b_cvRsC@ruGx{EUF2E7yr77=C{t(2&0~$d6O_McRsK>u_3(ab I@1+j^0h0N@YybcN literal 0 HcmV?d00001 diff --git a/assets/fonts/fonts/icomoon.svg b/assets/fonts/fonts/icomoon.svg new file mode 100644 index 00000000..dacff8da --- /dev/null +++ b/assets/fonts/fonts/icomoon.svg @@ -0,0 +1,12 @@ + + + +Generated by IcoMoon + + + + + + + + \ No newline at end of file diff --git a/assets/fonts/fonts/icomoon.ttf b/assets/fonts/fonts/icomoon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..52f5bf396de2e3c2f8e07be50a54eecb5bf80fdf GIT binary patch literal 1248 zcmah|J!lhA9RIz$m|2dr9MKwL7gm>H*bENeg2Jniz~D0xkb}_{}#|5 z(?7LJLn5!gB7Z|Zv|4Fwbng&BYjW!=2L%@|a0}3rA|7d@wD`)Q9BW8SgmK z=a|{7$jY72vV^6qmL<<1pgEd@EK$Zth_o0yJ#t3m#Mx+&tmYW;7UI2$WUthQWoj_9 z+OVQVT+o@6#d#)me!ckl*$wm3S9Hh1kNR$Q{+a{_Iy^bwA#WfO=7smk3z4Gx2bCf> zcO&vdT&6LGlPiA;8Jxrl?vcwG4CJHt_Pc`$3{@IWRegbk%3v|#Wo6firxcD6uPYqq zAD30wpnYE96i%==UrMZtmNY#P)`&|A>%`Lv$B6GJ9ESy4VT1NXg;SWsleI!n2?8H$ zC?G(ED}cY`)#_`3Z;$2jSb~Qd>I|TRb;giGzGGHL7Z63h7EL@pZCMcP)d$=wMLun--9Gx7r4ujFt1 E3s;-2KL7v# literal 0 HcmV?d00001 diff --git a/assets/fonts/fonts/icomoon.woff b/assets/fonts/fonts/icomoon.woff new file mode 100644 index 0000000000000000000000000000000000000000..a6ad05fb21c5adf013d15e696ac1076512223140 GIT binary patch literal 1324 zcmah|O=uHA6#iy6*|h1;R!x>7Mblp|lBPda#1={qfmlkRig*z0Hd&KGvRjf=Tl6R% zyeN9=-Ls09UV9Kk@Z`aQc&K<1FYUpDsKjq(r#4{Ff%oQn-+S|ZW_E8cX0s6Bik?M> z+#`EZw_1yrN5=utM&Gg&`*`P*e8pWOSE7Ag%E5_)J4Lr9xmUDhtdyQ&dGjW@x0HmG zPjfH6mpr!s7<=?jNwMt@?@A;AvzPXelvu`mU8>YK$W7Chd~e4#P!94k?h5U0B`06$(%?jiDTS%D;~Lfta)F`)}{6zYeB8fc{~5anM9`XSUf_M{cIWR5)Z>&e8q%l zr`^0nPqQWQEU>?8?lg8VYf{LlJLN7{N@-PvsE179A0p~RCvVCi7D(;C+23va zYBbcjBTFData Dashboard - +
+ +
+
+
+ +
+
+ +
+
From d4c448b480a264304d94ae5ad86881869436ad30 Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Tue, 28 Nov 2017 14:38:22 -0500 Subject: [PATCH 05/42] calculando el porcentaje de dropout --- js/app.js | 40 +++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/js/app.js b/js/app.js index d5750331..a5e67a49 100644 --- a/js/app.js +++ b/js/app.js @@ -2,26 +2,32 @@ * Funcionalidad de tu producto */ console.log(data); -console.log(Object.keys(Object.getOwnPropertyNames(data)[1])); +//console.log(Object.keys(Object.getOwnPropertyNames(data)[1])); // console.log(data.AQP['2016-2']['students'][0]['active']); -/*var studemts = data.AQP['2016-2']['students']; -var studemtsActive = []; -var studemtsDeserte = []; - -for (var i = 0; i <= studemts.length; i++) { - debugger; - if (studemts[i].active === true) { - studemtsActive.push(studemts[i].active); - console.log('activos estudiamtes' + studemtsActive); - } else { - studemtsDeserte.push(studemts[i].active); - console.log('desertores' + studemtsDeserte); +//function desercion(){ + var students = data.AQP['2016-2']['students']; + var studentsActive = []; + var studentsDeserte = []; + + for (var i = 0; i <= students.length-1; i++) { + + if (students[i].active === true) { + studentsActive.push(students[i].active); + console.log('activos estudiantes: ' + studentsActive); + } else { + studentsDeserte.push(students[i].active); + console.log('desertores: ' + studentsDeserte); + } } -} + debugger; + var porcentajeDesercion = ((studentsDeserte.length * 100/ students.length)); + console.log('STUDENTS CURRENTLY ENROLLMENT'+ '\t'+ studentsActive.length); + console.log('STUDENTS DROPOUT'+ '\t'+ studentsDeserte.length); + console.log('PERCENTAGE OF DESERTION'+ '\t' + porcentajeDesercion+'%'); +//} + +//console.log(desercion()); -var porcentajeDesercion = (studemtsDeserte / studemts.length * 100); -console.log(studemtsDeserte.length); -console.log(porcentajeDesercion);*/ // Puedes hacer uso de la base de datos a través de la variable `data` // From 48de400b65f9678ff1f4fc3b8634f7fd472e3a8d Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Tue, 28 Nov 2017 15:05:50 -0500 Subject: [PATCH 06/42] =?UTF-8?q?calculando=20el=20porcentaje=20de=20cualq?= =?UTF-8?q?uier=20sede=20y=20cualquier=20promoci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/app.js | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/js/app.js b/js/app.js index a5e67a49..56a7a67f 100644 --- a/js/app.js +++ b/js/app.js @@ -1,11 +1,10 @@ -/* - * Funcionalidad de tu producto - */ console.log(data); //console.log(Object.keys(Object.getOwnPropertyNames(data)[1])); // console.log(data.AQP['2016-2']['students'][0]['active']); -//function desercion(){ - var students = data.AQP['2016-2']['students']; + +/* DATOS QUE MUESTRA EL ENROLLMENT */ +function desercion(sede, generacion){ + var students = data[sede][generacion]['students']; var studentsActive = []; var studentsDeserte = []; @@ -13,24 +12,17 @@ console.log(data); if (students[i].active === true) { studentsActive.push(students[i].active); - console.log('activos estudiantes: ' + studentsActive); } else { studentsDeserte.push(students[i].active); - console.log('desertores: ' + studentsDeserte); } } - debugger; + var porcentajeDesercion = ((studentsDeserte.length * 100/ students.length)); console.log('STUDENTS CURRENTLY ENROLLMENT'+ '\t'+ studentsActive.length); console.log('STUDENTS DROPOUT'+ '\t'+ studentsDeserte.length); console.log('PERCENTAGE OF DESERTION'+ '\t' + porcentajeDesercion+'%'); -//} - -//console.log(desercion()); - -// Puedes hacer uso de la base de datos a través de la variable `data` -// +} -// console.log(Object.keys(data)[0]); +console.log(desercion('LIM', '2017-2')); From eec56e04c72c354f20a63c10b7a36293ba7cc52c Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Tue, 28 Nov 2017 16:45:35 -0500 Subject: [PATCH 07/42] agregando porcentaje de estudiantes que lograron el objetivo --- js/app.js | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/js/app.js b/js/app.js index 56a7a67f..ebf4a97b 100644 --- a/js/app.js +++ b/js/app.js @@ -1,15 +1,14 @@ console.log(data); -//console.log(Object.keys(Object.getOwnPropertyNames(data)[1])); +// console.log(Object.keys(Object.getOwnPropertyNames(data)[1])); // console.log(data.AQP['2016-2']['students'][0]['active']); /* DATOS QUE MUESTRA EL ENROLLMENT */ -function desercion(sede, generacion){ +function desercion(sede, generacion) { var students = data[sede][generacion]['students']; var studentsActive = []; var studentsDeserte = []; - for (var i = 0; i <= students.length-1; i++) { - + for (var i = 0; i <= students.length - 1; i++) { if (students[i].active === true) { studentsActive.push(students[i].active); } else { @@ -17,12 +16,39 @@ function desercion(sede, generacion){ } } - var porcentajeDesercion = ((studentsDeserte.length * 100/ students.length)); - console.log('STUDENTS CURRENTLY ENROLLMENT'+ '\t'+ studentsActive.length); - console.log('STUDENTS DROPOUT'+ '\t'+ studentsDeserte.length); - console.log('PERCENTAGE OF DESERTION'+ '\t' + porcentajeDesercion+'%'); + var porcentajeDesercion = ((studentsDeserte.length * 100 / students.length)); + console.log('STUDENTS CURRENTLY ENROLLMENT' + '\t' + studentsActive.length); + console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); + console.log('PERCENTAGE OF DESERTION' + '\t' + porcentajeDesercion + '%'); } console.log(desercion('LIM', '2017-2')); +/* DATOS ACHIEVEMENT*/ +function logroMetas(sede, generacion, sprint) { + // debugger; + var students = data[sede][generacion]['students']; + // var sprint = data[sede][generacion]['students']['sprints']['number']; + var studentsOverTarget = []; + var studentsDownTarget = []; + + for (var i = 0; i < students.length; i++) { + for (var j = 0; j < students[i].sprints.length; j++) { + if (students[i].sprints[j].score['tech'] >= 1260 && students[i].sprints[j].score['hse'] >= 840) { + studentsOverTarget.push(students[i].sprints[j]); + } else { + studentsDownTarget.push(students[i].sprints[j]); + } + } + } + + var porcentajeLogroMetas = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); + console.log('pasaron la meta: ' + '\t' + studentsOverTarget.length); + console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); + console.log('porcentaje que logro la meta:' + '\t' + porcentajeLogroMetas); +} + +console.log(logroMetas('LIM', '2017-1', 1)); + +/* */ From 177f4783e2668c30f9cedc3640b18332db166be1 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Tue, 28 Nov 2017 17:15:38 -0500 Subject: [PATCH 08/42] subiendo avances de CSS --- css/main.css | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++ index.html | 33 ++++++++++++++++------ 2 files changed, 104 insertions(+), 9 deletions(-) diff --git a/css/main.css b/css/main.css index 051d7ec4..7f23b095 100644 --- a/css/main.css +++ b/css/main.css @@ -2,3 +2,83 @@ * Estilos de tu proyecto */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} +body { + font-family: 'Catamaran', sans-serif; +} +header { + height: 76px; +} +nav { + background: #ffffff; + display: inline-block; + position: relative; + width: 1279px; + height: 76px; +} +.logo { + width: 169px; + height: 70px; + margin-left: 550px; + margin-top: 1px; +} +.icon-bars { + font-size: 28px; + padding-top: 21px; + padding-bottom: 27px; + float: right; + margin-right: 86px; +} +.selecting { + background-color: #e1e1e1; + height: 122px; +} +.sedes { + width: 445px; +} +#select { + /*outline: 1px solid black;*/ + border: 0; + background-color: transparent; + height: 40px; + font-size: 24px; + line-height: 20px; + margin-left: 81px; + margin-top: 20px; + overflow: hidden; + padding: 5px; + width: 445px; +} +#wrap { + /*outline: 1px solid red;*/ + background-color: #e1e1e1; + width: 395px; + height: 49px; + max-width: 80%; + margin-left: 81px; + margin-top: 12px; + +} +.tabs { + display: inline; + list-style: none; + position: relative; +} +.tabs a { + /*outline: 1px solid green;*/ + text-decoration: none; + color: black; + float: left; + font-size: 20px; + margin-left: 15px; + margin-top: 1px; + padding: 8px; +} +.info-container { + background-color: #e1e1e1; + width: 100%; +} \ No newline at end of file diff --git a/index.html b/index.html index 6702c254..d0a2acd9 100644 --- a/index.html +++ b/index.html @@ -2,19 +2,21 @@ + + + Data Dashboard
-
-
+
+
+
+
+ +
-
- -
+
+
+ +
From 5dcaa30ff59d133f6838023cf773b5e08a97dced Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Tue, 28 Nov 2017 17:24:19 -0500 Subject: [PATCH 09/42] promoter score --- js/app.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/js/app.js b/js/app.js index ebf4a97b..38a0850c 100644 --- a/js/app.js +++ b/js/app.js @@ -27,9 +27,7 @@ console.log(desercion('LIM', '2017-2')); /* DATOS ACHIEVEMENT*/ function logroMetas(sede, generacion, sprint) { - // debugger; var students = data[sede][generacion]['students']; - // var sprint = data[sede][generacion]['students']['sprints']['number']; var studentsOverTarget = []; var studentsDownTarget = []; @@ -46,9 +44,29 @@ function logroMetas(sede, generacion, sprint) { var porcentajeLogroMetas = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); console.log('pasaron la meta: ' + '\t' + studentsOverTarget.length); console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); - console.log('porcentaje que logro la meta:' + '\t' + porcentajeLogroMetas); + console.log('porcentaje que logro la meta:' + '\t' + porcentajeLogroMetas + '%'); } console.log(logroMetas('LIM', '2017-1', 1)); -/* */ +/* NET PROMOTER SCORE */ + +function puntajePromotor() { + var raiting = data[sede][generacion]['raitings']; + var promoters = []; + var passive = []; + var detractors = []; + var totalNps = []; + + for (var i = 0; i < raiting.length; i++) { + // if(raiting[i].nps.promoters) + var nps = raiting[i].nps.promoters - raiting[i].nps.detractors; + totalNps.push(nps); + } + + console.log(totalNps.length); + + for (var i = 0; i < totalNps.length; i++) { + var acumulativeNps + = totalNps[ i ]; + } +} From 1266492e6385b875042b842127665d309b443683 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Tue, 28 Nov 2017 18:23:12 -0500 Subject: [PATCH 10/42] subiendo esqueleto de datos/HTML --- css/main.css | 32 ++++++++++++++++++++++++-------- index.html | 37 +++++++++++++++++++++++++++++-------- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/css/main.css b/css/main.css index 7f23b095..e8cb8f4b 100644 --- a/css/main.css +++ b/css/main.css @@ -8,10 +8,12 @@ padding: 0; } body { - font-family: 'Catamaran', sans-serif; + font-family: 'Roboto', sans-serif; + line-height: 26px; + } header { - height: 76px; + height: 201px; } nav { background: #ffffff; @@ -41,24 +43,24 @@ nav { width: 445px; } #select { - /*outline: 1px solid black;*/ border: 0; background-color: transparent; height: 40px; - font-size: 24px; + font-size: 26px; + font-family: 'Roboto', sans-serif; line-height: 20px; margin-left: 81px; margin-top: 20px; overflow: hidden; padding: 5px; + text-transform: uppercase; width: 445px; } #wrap { - /*outline: 1px solid red;*/ background-color: #e1e1e1; width: 395px; height: 49px; - max-width: 80%; + max-width: 60%; margin-left: 81px; margin-top: 12px; @@ -69,16 +71,30 @@ nav { position: relative; } .tabs a { - /*outline: 1px solid green;*/ text-decoration: none; color: black; float: left; font-size: 20px; margin-left: 15px; margin-top: 1px; - padding: 8px; + padding: 6px; } .info-container { background-color: #e1e1e1; width: 100%; +} +.overview { + outline: 1px solid black; +} +.square { + display: inline-block; + outline: 1px solid green; + height: 335px; + width: 342px; +} +.rectangle { + display: block; + outline: 1px solid orange; + width: 1087px; + height: 520px; } \ No newline at end of file diff --git a/index.html b/index.html index d0a2acd9..906c52c5 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - + Data Dashboard @@ -12,9 +12,7 @@ - -
+
-
+
-
+
  • +
  • +
  • + +
    -
    +
    @@ -86,7 +82,7 @@
    -
    +
    hola
    diff --git a/js/app.js b/js/app.js index 895ae2dd..d5249984 100644 --- a/js/app.js +++ b/js/app.js @@ -1,6 +1,37 @@ /* * Funcionalidad de tu producto */ +var showHide = function(e) { + var tabs = e.target.dataset.selecttab; + var overContent = document.getElementById('overview-tab'); + var studentsTab = document.getElementById('students-tab'); + if(tabs === 'overview'){ + console.log('bien hecho'); + //ocultar students y teachers + //mostrar info de overview + var changeOne = overContent.style.display = 'block'; + change.toggle('overview-tab'); + } else if (tabs === 'students'){ + console.log('vas bien'); + //ocultar overview y teachers + changeOne.toggle('overview-tab'); + //mostrar students + var changeTwo = studentsTab.style.display = 'block'; + + changeTwo.toggle('students-tab'); + } if (tabs === 'teachers') + console.log('lo lograste'); + //ocultar students y overview + //mostrar teachers + } + var chargePage = function() { + var tabElements = document.getElementsByClassName('tabBtn'); + for(var i = 0; i < tabElements.length; i++) { + tabElements[i].addEventListener('click', showHide); + } + } + + chargePage(); // Puedes hacer uso de la base de datos a través de la variable `data` console.log(data); From 922b605fac9f3b46dde2fef06bac35cc6c222cb2 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Wed, 29 Nov 2017 16:58:31 -0500 Subject: [PATCH 19/42] funcionalidad de tabs --- index.html | 2 +- js/app.js | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 28b3cee3..60b480bc 100644 --- a/index.html +++ b/index.html @@ -82,7 +82,7 @@
    -
    hola
    +
    diff --git a/js/app.js b/js/app.js index d5249984..59a2ccba 100644 --- a/js/app.js +++ b/js/app.js @@ -1,6 +1,9 @@ /* * Funcionalidad de tu producto */ +// selector de sedes + + //tabs overview, students y teacher var showHide = function(e) { var tabs = e.target.dataset.selecttab; var overContent = document.getElementById('overview-tab'); From e4f5a3923ff6e5360d1a10480ab587d3356ebbb8 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Wed, 29 Nov 2017 17:41:23 -0500 Subject: [PATCH 20/42] modificando HTML --- index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 60b480bc..2ddad52b 100644 --- a/index.html +++ b/index.html @@ -82,7 +82,9 @@
    -
    +
    + +
    From c68f9830a5528bc01c71ee05d26944606dcdaf2a Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Wed, 29 Nov 2017 17:54:28 -0500 Subject: [PATCH 21/42] =?UTF-8?q?a=C3=B1adiendo=20informacion=20de=20estud?= =?UTF-8?q?iantes=20en=20HTML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/main.css | 2 +- index.html | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/css/main.css b/css/main.css index be17f4fb..5bde97aa 100644 --- a/css/main.css +++ b/css/main.css @@ -42,7 +42,7 @@ nav { .sedes { width: 445px; } -#select { +.select { border: 0; background-color: transparent; height: 40px; diff --git a/index.html b/index.html index 2ddad52b..7789743b 100644 --- a/index.html +++ b/index.html @@ -15,7 +15,7 @@
    - @@ -83,6 +83,13 @@
    +
    +
    +
    +

    Javacript

    +
    +
    +
    From ef281823eade7b52327fbca312cf0f7f12c469b1 Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Wed, 29 Nov 2017 17:55:01 -0500 Subject: [PATCH 22/42] corriegiendo porcentajes HSE y TECH --- index.html | 2 +- js/app.js | 69 ++++++++++++++++++++++++++++++------------------------ 2 files changed, 40 insertions(+), 31 deletions(-) diff --git a/index.html b/index.html index 1dbf32ba..5bff859f 100644 --- a/index.html +++ b/index.html @@ -70,7 +70,7 @@
    -
    +
    diff --git a/js/app.js b/js/app.js index 9b04e36b..724cba5a 100644 --- a/js/app.js +++ b/js/app.js @@ -1,6 +1,5 @@ console.log(data); -// console.log(Object.keys(Object.getOwnPropertyNames(data)[1])); -// console.log(data.AQP['2016-2']['students'][0]['active']); + /* DATOS QUE MUESTRA EL ENROLLMENT */ function desercion(sede, generacion) { @@ -17,9 +16,15 @@ function desercion(sede, generacion) { } var porcentajeDesercion = ((studentsDeserte.length * 100 / students.length)); - console.log('STUDENTS CURRENTLY ENROLLMENT' + '\t' + studentsActive.length); + var studentsCurrent = studentsActive.length + '\n' + 'STUDENTS CURRENTLY ENROLLMENT' ; console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); - console.log('PERCENTAGE OF DESERTION' + '\t' + porcentajeDesercion + '%'); + var desercion = Math.round(porcentajeDesercion) + '%' + '\t' + 'PERCENTAGE OF DESERTION' ; + + var studentsCurrentEnrollment = document.getElementById('studentsCurrent'); + studentsCurrentEnrollment.textContent = studentsCurrent; + + var dropout = document.getElementById('dropout'); + dropout.textContent = desercion; } console.log(desercion('LIM', '2017-2')); @@ -106,17 +111,27 @@ function logroMetasTech(sede, generacion, sprint) { var students = data[sede][generacion]['students']; var studentsOverTarget = []; var studentsDownTarget = []; + var puntajesTech = []; + var totalPuntajeTech = 0; + var promedioNotaTech = 0; for (var i = 0; i < students.length; i++) { - for (var j = 0; j < students[i].sprints.length; j++) { - if (students[i].sprints[j].score['tech'] >= 1260) { - studentsOverTarget.push(students[i].sprints[j]); - } else { - studentsDownTarget.push(students[i].sprints[j]); - } + if (students[i].sprints[sprint].score['tech'] >= 1260) { + studentsOverTarget.push(students[i].sprints[sprint].score['tech']); + } else { + studentsDownTarget.push(students[i].sprints[sprint].score['tech']); } } + + for (var i = 0; i < students.length; i++) { + puntajesTech.push(students[i].sprints[sprint].score['tech']); + totalPuntajeTech = totalPuntajeTech + puntajesTech[i]; + } + + promedioNotaTech = totalPuntajeTech / students.length; + console.log(promedioNotaTech); + var porcentajeLogroMetasTech = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); console.log('pasaron la meta Tech: ' + '\t' + studentsOverTarget.length); console.log('no llegaron a la meta Tech: ' + '\t' + studentsDownTarget.length); @@ -124,7 +139,7 @@ function logroMetasTech(sede, generacion, sprint) { console.log('% del total' + '\t' + (studentsOverTarget.length + studentsDownTarget.length)); } -console.log(logroMetasTech('LIM', '2017-1', 1)); +console.log(logroMetasTech('AQP', '2016-2', '1')); /* LIFE SKILLS */ @@ -132,32 +147,26 @@ function logroMetasLife(sede, generacion, sprint) { var students = data[sede][generacion]['students']; var studentsOverTarget = []; var studentsDownTarget = []; - // var puntajesHse = []; - // var totalPuntajeHse = 0; + var puntajesHse = []; + var totalPuntajeHse = 0; + var promedioNotaHse = 0; for (var i = 0; i < students.length; i++) { if (students[i].sprints[sprint].score['hse'] >= 840) { - studentsOverTarget.push(students[i].sprints[sprint]); + studentsOverTarget.push(students[i].sprints[sprint].score['hse']); } else { - studentsDownTarget.push(students[i].sprints[sprint]); + studentsDownTarget.push(students[i].sprints[sprint].score['hse']); } - /* for (var j = 0; j < students[i].sprints.length; j++) { - if (students[i].sprints[j].score['hse'] >= 840) { - studentsOverTarget.push(students[i].sprints[j]); - } else { - studentsDownTarget.push(students[i].sprints[j]); - } - }*/ } - /* for (var i = 0; i < students.length; i++) { - puntajesHse.push(students[i].sprints[j]['score']['hse']); - //totalPuntajeHse = totalPuntajeHse + puntajesHse[i]; + puntajesHse.push(students[i].sprints[sprint].score['hse']); + totalPuntajeHse = totalPuntajeHse + puntajesHse[i]; } - - console.log(puntajesHse); - console.log(totalPuntajeHse);*/ + + promedioNotaHse = totalPuntajeHse / students.length; + + console.log(promedioNotaHse); var porcentajeLogroMetasLife = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); console.log('pasaron la meta hse: ' + '\t' + studentsOverTarget.length); @@ -166,7 +175,7 @@ function logroMetasLife(sede, generacion, sprint) { console.log('% del total' + '\t' + (studentsOverTarget.length + studentsDownTarget.length)); } -console.log(logroMetasLife('LIM', '2017-1', 1)); +console.log(logroMetasLife('AQP', '2016-2', '1')); /* STUDENT SATISFACTION */ function satisfaccionEstudiantes(sede, generacion) { @@ -178,4 +187,4 @@ function satisfaccionEstudiantes(sede, generacion) { for (var i = 0; i < rating.length; i++) { } -} \ No newline at end of file +} From e2fa1d6d2cf3172e5ecd9605d114c8888e19d055 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Wed, 29 Nov 2017 18:13:45 -0500 Subject: [PATCH 23/42] actualizando estructura HTML --- css/main.css | 7 +++---- index.html | 4 +++- js/app.js | 2 -- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/css/main.css b/css/main.css index 27af82b5..ef71f239 100644 --- a/css/main.css +++ b/css/main.css @@ -81,9 +81,9 @@ nav { margin-top: 12px; padding: 4px; } -.first { +/*.first { margin-left: 85px; -} +}*/ .info-container { background-color: #e1e1e1; width: 100%; @@ -95,10 +95,9 @@ nav { background: #f7f7f7; height: 433px; width: 100%; - } .container2 { - display: block; + display: inline-block; background: #f7f7f7; height: 559px; width: 100%; diff --git a/index.html b/index.html index 0aca0dc5..1cf6b380 100644 --- a/index.html +++ b/index.html @@ -86,7 +86,9 @@
    -

    Javacript

    + + +
    diff --git a/js/app.js b/js/app.js index 4e575aee..8b156d00 100644 --- a/js/app.js +++ b/js/app.js @@ -17,10 +17,8 @@ var showHide = function(e) { } else if (tabs === 'students'){ console.log('vas bien'); //ocultar overview y teachers - changeOne.toggle('overview-tab'); //mostrar students var changeTwo = studentsTab.style.display = 'block'; - changeTwo.toggle('students-tab'); } if (tabs === 'teachers') console.log('lo lograste'); From 0eef4687002ad02e11e5df4170bcc5638e530d26 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Wed, 29 Nov 2017 23:06:12 -0500 Subject: [PATCH 24/42] avanzando maquetado de tab students --- css/main.css | 38 ++++++++++++++++++-------------------- index.html | 28 +++++++++++++++------------- js/app.js | 31 ++++++++++++++----------------- students.html | 2 +- 4 files changed, 48 insertions(+), 51 deletions(-) diff --git a/css/main.css b/css/main.css index ef71f239..e5daa442 100644 --- a/css/main.css +++ b/css/main.css @@ -56,17 +56,15 @@ nav { text-transform: uppercase; width: 445px; } -#wrap { +.wrap { background-color: #e1e1e1; width: 395px; height: 49px; - max-width: 60%; - margin-left: 81px; + margin-left: 41px; margin-top: 12px; - } .tabs { - display: inline; + display: inline-flex; list-style: none; position: relative; } @@ -77,13 +75,11 @@ nav { color: black; float: left; font-size: 22px; - margin-left: 15px; - margin-top: 12px; padding: 4px; } -/*.first { - margin-left: 85px; -}*/ +.first { + margin-left: 5px; +} .info-container { background-color: #e1e1e1; width: 100%; @@ -97,26 +93,26 @@ nav { width: 100%; } .container2 { - display: inline-block; + display: inline-flex; background: #f7f7f7; height: 559px; width: 100%; } .square { + outline: 1px solid green; background-color: #ffffff; display: inline-flex; height: 335px; width: 342px; - margin-top: 58px; - margin-left:26px; - margin-bottom: 41px; -} -.first-position { - margin-left: 87px; + } + .data1 { outline: 1px solid red; background: #f7f7f7; + font-size: 10px; + text-align: center; + line-height: 25px; width: 145px; height: 60px; margin: 4.5px; @@ -147,7 +143,8 @@ nav { .students-tab { display: none; } -.first{ +.specialization { + outline: 1px solid green; background-color: white; display: inline-block; padding-left: 20px; @@ -161,7 +158,8 @@ nav { margin-left: 80px; } -.second{ +.students-data { + outline: 1px solid red; background-color: white; display: inline-block; padding-left: 20px; @@ -176,4 +174,4 @@ nav { .search{ width:800px; height:35px; -} +}*/ diff --git a/index.html b/index.html index 1cf6b380..a645ac79 100644 --- a/index.html +++ b/index.html @@ -66,31 +66,33 @@
    -
    -
    -
    +
    +
    +
    -
    +
    -
    +
    -
    -
    -
    +
    +
    +
    -
    +
    +

    SPECIALIZATION

    -
    - - - + +
    +
    +
    +
    diff --git a/js/app.js b/js/app.js index 8b156d00..4d484727 100644 --- a/js/app.js +++ b/js/app.js @@ -7,31 +7,28 @@ var showHide = function(e) { var tabs = e.target.dataset.selecttab; var overContent = document.getElementById('overview-tab'); - var studentsTab = document.getElementById('students-tab'); if(tabs === 'overview'){ - console.log('bien hecho'); - //ocultar students y teachers - //mostrar info de overview var changeOne = overContent.style.display = 'block'; - change.toggle('overview-tab'); + //mostrar info de overview + changeOne.toggle('overview-tab'); + //ocultar students y teachers + changeOne.remove('changeTwo'); } else if (tabs === 'students'){ - console.log('vas bien'); - //ocultar overview y teachers - //mostrar students + var studentsTab = document.getElementById('students-tab'); var changeTwo = studentsTab.style.display = 'block'; - changeTwo.toggle('students-tab'); - } if (tabs === 'teachers') - console.log('lo lograste'); - //ocultar students y overview - //mostrar teachers - } + //mostrar students + changeTwo.toggle('students-tab'); + //ocultar overview y teachers + changeTwo.remove('overview-tab'); + } + }; + var chargePage = function() { var tabElements = document.getElementsByClassName('tabBtn'); for(var i = 0; i < tabElements.length; i++) { tabElements[i].addEventListener('click', showHide); } - } - + }; chargePage(); // Puedes hacer uso de la base de datos a través de la variable `data` @@ -53,7 +50,7 @@ function desercion(sede, generacion) { } var porcentajeDesercion = ((studentsDeserte.length * 100 / students.length)); - var studentsCurrent = studentsActive.length + '\n' + 'STUDENTS CURRENTLY ENROLLMENT' ; + var studentsCurrent = studentsActive.length + '\n' + '# STUDENTS CURRENTLY ENROLLMENT' ; console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); var desercion = Math.round(porcentajeDesercion) + '%' + '\t' + 'PERCENTAGE OF DESERTION' ; diff --git a/students.html b/students.html index 6cf75dfd..ba5ef75d 100644 --- a/students.html +++ b/students.html @@ -16,7 +16,7 @@

    ESPECIALIZATION

    --> -
    +


    From 1312eff97dc8504c681b733c620e30f0aa70ff8a Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Thu, 30 Nov 2017 01:51:17 -0500 Subject: [PATCH 25/42] mostrando datos de los dos primeros cuadros en mi index --- index.html | 2 +- js/app.js | 163 +++++++++++++++++++++++++++++++++-------------------- 2 files changed, 104 insertions(+), 61 deletions(-) diff --git a/index.html b/index.html index 1cf6b380..406b6b85 100644 --- a/index.html +++ b/index.html @@ -67,7 +67,7 @@
    -
    +
    diff --git a/js/app.js b/js/app.js index 8b156d00..426cd40f 100644 --- a/js/app.js +++ b/js/app.js @@ -3,42 +3,42 @@ */ // selector de sedes - //tabs overview, students y teacher -var showHide = function(e) { - var tabs = e.target.dataset.selecttab; - var overContent = document.getElementById('overview-tab'); - var studentsTab = document.getElementById('students-tab'); - if(tabs === 'overview'){ - console.log('bien hecho'); - //ocultar students y teachers - //mostrar info de overview - var changeOne = overContent.style.display = 'block'; - change.toggle('overview-tab'); - } else if (tabs === 'students'){ - console.log('vas bien'); - //ocultar overview y teachers - //mostrar students - var changeTwo = studentsTab.style.display = 'block'; +// tabs overview, students y teacher +var showHide = function(event) { + var tabs = event.target.dataset.selecttab; + var overContent = document.getElementById('overview-tab'); + var studentsTab = document.getElementById('students-tab'); + if (tabs === 'overview') { + console.log('bien hecho'); + // ocultar students y teachers + // mostrar info de overview + var changeOne = overContent.style.display = 'block'; + change.toggle('overview-tab'); + } else if (tabs === 'students') { + console.log('vas bien'); + // ocultar overview y teachers + // mostrar students + var changeTwo = studentsTab.style.display = 'block'; changeTwo.toggle('students-tab'); - } if (tabs === 'teachers') - console.log('lo lograste'); - //ocultar students y overview - //mostrar teachers - } - var chargePage = function() { - var tabElements = document.getElementsByClassName('tabBtn'); - for(var i = 0; i < tabElements.length; i++) { - tabElements[i].addEventListener('click', showHide); - } + } if (tabs === 'teachers') + console.log('lo lograste'); + // ocultar students y overview + // mostrar teachers +}; +var chargePage = function() { + var tabElements = document.getElementsByClassName('tabBtn'); + for (var i = 0; i < tabElements.length; i++) { + tabElements[i].addEventListener('click', showHide); } +}; - chargePage(); +chargePage(); // Puedes hacer uso de la base de datos a través de la variable `data` console.log(data); -/* DATOS QUE MUESTRA EL ENROLLMENT */ +/** **************DATOS QUE MUESTRA EL ENROLLMENT ***********/ function desercion(sede, generacion) { var students = data[sede][generacion]['students']; var studentsActive = []; @@ -53,46 +53,74 @@ function desercion(sede, generacion) { } var porcentajeDesercion = ((studentsDeserte.length * 100 / students.length)); - var studentsCurrent = studentsActive.length + '\n' + 'STUDENTS CURRENTLY ENROLLMENT' ; + + var studentsCurrent = studentsActive.length; console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); - var desercion = Math.round(porcentajeDesercion) + '%' + '\t' + 'PERCENTAGE OF DESERTION' ; + var desercion = Math.round(porcentajeDesercion) + '%'; var studentsCurrentEnrollment = document.getElementById('studentsCurrent'); - studentsCurrentEnrollment.textContent = studentsCurrent; + studentsCurrentEnrollment.innerHTML = studentsCurrent + '
    ' + ' # STUDENTS CURRENTLY ENROLLMENT' ; var dropout = document.getElementById('dropout'); - dropout.textContent = desercion; + dropout.innerHTML = desercion + '
    ' + ' % DROPOUT'; } console.log(desercion('LIM', '2017-2')); -/* DATOS ACHIEVEMENT*/ +/** ************* DATOS ACHIEVEMENT********************/ function logroMetas(sede, generacion, sprint) { var students = data[sede][generacion]['students']; var studentsOverTarget = []; var studentsDownTarget = []; + /* alcanzaron la metaacumulado for (var i = 0; i < students.length; i++) { for (var j = 0; j < students[i].sprints.length; j++) { - if (students[i].sprints[j].score['tech'] >= 1260 && students[i].sprints[j].score['hse'] >= 840) { - studentsOverTarget.push(students[i].sprints[j]); + if (students[i].active === true) { + if ((students[i].sprints[j].score.tech >= 1260) && (students[i].sprints[j].score.hse >= 840)) { + studentsOverTarget.push(students[i].sprints[j]); + } else { + studentsDownTarget.push(students[i].sprints[j]); + } + } + } + } + var porcentajeLogroMetas = (studentsOverTarget.length / students[0].sprints.length * 100) / (studentsOverTarget.length / students[0].sprints.length + studentsDownTarget.length / students[0].sprints.length); + console.log('pasaron la meta: ' + '\t' + studentsOverTarget.length / students[0].sprints.length); + console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length / students[0].sprints.length); + console.log('porcentaje que logro la meta:' + '\t' + porcentajeLogroMetas + '%'); + console.log('% del total' + (studentsOverTarget.length / students[0].sprints.length + studentsDownTarget.length / students[0].sprints.length)); +} */ + for (var i = 0; i < students.length; i++) { + if (students[i].active === true) { + if ((students[i].sprints[sprint].score.tech >= 1260) && (students[i].sprints[sprint].score.hse >= 840)) { + studentsOverTarget.push(students[i].sprints[sprint]); } else { - studentsDownTarget.push(students[i].sprints[j]); + studentsDownTarget.push(students[i].sprints[sprint]); } + } else { + } } var porcentajeLogroMetas = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); - console.log('pasaron la meta: ' + '\t' + studentsOverTarget.length); + + var studentsTarget = studentsOverTarget.length; console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); - console.log('porcentaje que logro la meta:' + '\t' + porcentajeLogroMetas + '%'); - console.log('% del total' + (studentsOverTarget.length + studentsDownTarget.length)); + var porcentajeAchievement = Math.round(porcentajeLogroMetas) + '%'; + var totalStudents = '% OF TOTAL THE (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; + + var studentsMeetTarget = document.getElementById('studentTarget'); + studentsMeetTarget.innerHTML = studentsTarget + '
    ' + '# STUDENTS THE MEET THE TARGET'; + + var porcentajeAchievementShow = document.getElementById('porcentajeAchievement'); + porcentajeAchievementShow.innerHTML = porcentajeAchievement + '
    ' + totalStudents; } -console.log(logroMetas('LIM', '2017-1', 1)); +console.log(logroMetas('LIM', '2017-1', '0')); -/* NET PROMOTER SCORE */ +/** ************** NET PROMOTER SCORE ****************/ function puntajePromotor(sede, generacion) { var rating = data[sede][generacion]['ratings']; @@ -142,7 +170,7 @@ function puntajePromotor(sede, generacion) { console.log(puntajePromotor('LIM', '2016-2')); -/* TECH SKILLS */ +/** ********** TECH SKILLS *******************/ function logroMetasTech(sede, generacion, sprint) { var students = data[sede][generacion]['students']; @@ -151,21 +179,28 @@ function logroMetasTech(sede, generacion, sprint) { var puntajesTech = []; var totalPuntajeTech = 0; var promedioNotaTech = 0; - for (var i = 0; i < students.length; i++) { - if (students[i].sprints[sprint].score['tech'] >= 1260) { - studentsOverTarget.push(students[i].sprints[sprint].score['tech']); - } else { - studentsDownTarget.push(students[i].sprints[sprint].score['tech']); + if (students[i].active === true) { + if (students[i].sprints[sprint].score['tech'] >= 1260) { + studentsOverTarget.push(students[i].sprints[sprint].score['tech']); + } else { + studentsDownTarget.push(students[i].sprints[sprint].score['tech']); + } } } + for (var i = 0; i < students.length; i++) { - puntajesTech.push(students[i].sprints[sprint].score['tech']); + if (students[i].active === true) { + puntajesTech.push(students[i].sprints[sprint].score['tech']); + } + } + + for (var i = 0; i < puntajesTech.length; i++) { totalPuntajeTech = totalPuntajeTech + puntajesTech[i]; } - promedioNotaTech = totalPuntajeTech / students.length; + promedioNotaTech = totalPuntajeTech / puntajesTech.length; console.log(promedioNotaTech); @@ -176,9 +211,9 @@ function logroMetasTech(sede, generacion, sprint) { console.log('% del total' + '\t' + (studentsOverTarget.length + studentsDownTarget.length)); } -console.log(logroMetasTech('AQP', '2016-2', '1')); +console.log(logroMetasTech('AQP', '2016-2', '0')); -/* LIFE SKILLS */ +/** ****** LIFE SKILLS *****************/ function logroMetasLife(sede, generacion, sprint) { var students = data[sede][generacion]['students']; @@ -189,32 +224,40 @@ function logroMetasLife(sede, generacion, sprint) { var promedioNotaHse = 0; for (var i = 0; i < students.length; i++) { - if (students[i].sprints[sprint].score['hse'] >= 840) { - studentsOverTarget.push(students[i].sprints[sprint].score['hse']); - } else { - studentsDownTarget.push(students[i].sprints[sprint].score['hse']); + if (students[i].active === true) { + if (students[i].sprints[sprint].score['hse'] >= 840) { + studentsOverTarget.push(students[i].sprints[sprint].score['hse']); + } else { + studentsDownTarget.push(students[i].sprints[sprint].score['hse']); + } } } for (var i = 0; i < students.length; i++) { - puntajesHse.push(students[i].sprints[sprint].score['hse']); - totalPuntajeHse = totalPuntajeHse + puntajesHse[i]; + if (students[i].active === true) { + puntajesHse.push(students[i].sprints[sprint].score['hse']); + } } - promedioNotaHse = totalPuntajeHse / students.length; + for (var i = 0; i < puntajesHse.length; i++) { + totalPuntajeHse = totalPuntajeHse + puntajesHse[i]; + } + + promedioNotaHse = totalPuntajeHse / puntajesHse.length; console.log(promedioNotaHse); var porcentajeLogroMetasLife = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); + console.log('pasaron la meta hse: ' + '\t' + studentsOverTarget.length); console.log('no llegaron a la meta hse: ' + '\t' + studentsDownTarget.length); console.log('porcentaje que logro la meta hse:' + '\t' + porcentajeLogroMetasLife + '%'); console.log('% del total' + '\t' + (studentsOverTarget.length + studentsDownTarget.length)); } -console.log(logroMetasLife('AQP', '2016-2', '1')); +console.log(logroMetasLife('AQP', '2016-2', '0')); -/* STUDENT SATISFACTION */ +/** ****************** STUDENT SATISFACTION ****************/ function satisfaccionEstudiantes(sede, generacion) { var rating = data[sede][generacion]['ratings']; var supera = []; From 32092b3296af2fbe1a3b0c6d6350b1233678556b Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 02:42:14 -0500 Subject: [PATCH 26/42] =?UTF-8?q?a=C3=B1adiendo=20imagenes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/main.css | 88 ++++++++++++++++++++++++++++++---------------------- index.html | 36 ++++++++++----------- js/app.js | 7 ++--- 3 files changed, 72 insertions(+), 59 deletions(-) diff --git a/css/main.css b/css/main.css index e5daa442..26c99c05 100644 --- a/css/main.css +++ b/css/main.css @@ -57,7 +57,7 @@ nav { width: 445px; } .wrap { - background-color: #e1e1e1; + background: #e1e1e1; width: 395px; height: 49px; margin-left: 41px; @@ -77,68 +77,79 @@ nav { font-size: 22px; padding: 4px; } -.first { - margin-left: 5px; -} -.info-container { - background-color: #e1e1e1; - width: 100%; -} .overview-tab { display: none; + background-color: #f7f7f7; } .container1 { - background: #f7f7f7; - height: 433px; - width: 100%; -} -.container2 { display: inline-flex; - background: #f7f7f7; - height: 559px; + background-color: #f7f7f7; width: 100%; + height: 433px; } .square { - outline: 1px solid green; + outline: 1px solid blue; background-color: #ffffff; - display: inline-flex; height: 335px; width: 342px; - + position: relative; } - .data1 { - outline: 1px solid red; - background: #f7f7f7; + background-color: #f7f7f7; + display: inline-block; font-size: 10px; + font-weight: 500; + line-height: 9px; + margin: 4.5px; + margin-left: 14px; text-align: center; - line-height: 25px; - width: 145px; + width: 146px; height: 60px; - margin: 4.5px; - margin-top: 62px; +} +.first-position { + margin-top: 27px; +} +.container2 { + display: block; + margin-bottom: 24px; } .rectangle { - background-color: #ffffff; - display: inline-flex; - width: 1087px; - height: 520px; + outline: 1px solid orange; + background: #ffffff; margin-left: 87px; + width: 1084px; + height: 520px; + position: relative; } .data2 { - outline: 1px solid black; - background: #f7f7f7; + background-color: #f7f7f7; + display: inline-block; + font-size: 10px; + font-weight: 500; + line-height: 9px; + margin: 4.5px; width: 197px; height: 60px; - margin: 4.5px; - margin-top: 65px; + margin-left: 20px; +} +.initial { + margin-left: 20px; } .last-position { margin-bottom: 123px; margin-top: 27px; } -.initial { - margin-left: 20px; +.graphic { + outline: 1px solid red; + display: block; + position: relative; + top: 200px; + width: 300px; + height: 181px; +} +.info-container { + background-color: #e1e1e1; + width: 100%; } .students-tab { display: none; @@ -157,7 +168,9 @@ nav { margin-right: 10px; margin-left: 80px; } - +.students-tab { + display: none; +} .students-data { outline: 1px solid red; background-color: white; @@ -174,4 +187,5 @@ nav { .search{ width:800px; height:35px; -}*/ +} + diff --git a/index.html b/index.html index a645ac79..f2f002e9 100644 --- a/index.html +++ b/index.html @@ -64,24 +64,24 @@
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    SPECIALIZATION

    diff --git a/js/app.js b/js/app.js index 4d484727..72a15186 100644 --- a/js/app.js +++ b/js/app.js @@ -12,14 +12,13 @@ var showHide = function(e) { //mostrar info de overview changeOne.toggle('overview-tab'); //ocultar students y teachers - changeOne.remove('changeTwo'); + } else if (tabs === 'students'){ var studentsTab = document.getElementById('students-tab'); var changeTwo = studentsTab.style.display = 'block'; - //mostrar students - changeTwo.toggle('students-tab'); + //mostrar students; //ocultar overview y teachers - changeTwo.remove('overview-tab'); + } }; From 34e0784b59d94a13dc6ecfad4220daf3c126cc11 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 08:10:56 -0500 Subject: [PATCH 27/42] cambio --- index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index f2f002e9..34c82e2b 100644 --- a/index.html +++ b/index.html @@ -92,7 +92,9 @@

    SPECIALIZATION


    -
    +
    + +
    From c0119a84062f953e8044bfb3a4825a127022f8ea Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 09:36:49 -0500 Subject: [PATCH 28/42] "resolviendo conflictos" --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 34c82e2b..208e8317 100644 --- a/index.html +++ b/index.html @@ -68,13 +68,13 @@
    -
    +
    -
    +
    -
    +
    From a1a17e53372567fde18fbd76647c13211471a8ff Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 09:50:54 -0500 Subject: [PATCH 29/42] resolviendo conflictos --- index.html | 42 ++++++++++++++++++++++-------------------- js/app.js | 2 +- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/index.html b/index.html index 208e8317..7bfb072d 100644 --- a/index.html +++ b/index.html @@ -64,24 +64,24 @@
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    SPECIALIZATION

    @@ -93,7 +93,9 @@

    SPECIALIZATION

    - +
    + +
    @@ -105,4 +107,4 @@

    SPECIALIZATION

    - + \ No newline at end of file diff --git a/js/app.js b/js/app.js index 0a6526fa..60d263b1 100644 --- a/js/app.js +++ b/js/app.js @@ -284,4 +284,4 @@ function satisfaccionEstudiantes(sede, generacion) { for (var i = 0; i < rating.length; i++) { } -} +} \ No newline at end of file From 89f49fd4fa4270826d111c256b6726b5783a5841 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 10:42:05 -0500 Subject: [PATCH 30/42] cambios en estructura HTML --- css/main.css | 37 +++++++++++++++++++++---------------- index.html | 28 ++++++++++++++++------------ 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/css/main.css b/css/main.css index 26c99c05..876cb63b 100644 --- a/css/main.css +++ b/css/main.css @@ -86,9 +86,9 @@ nav { background-color: #f7f7f7; width: 100%; height: 433px; + margin-left: 85px; } .square { - outline: 1px solid blue; background-color: #ffffff; height: 335px; width: 342px; @@ -100,21 +100,21 @@ nav { font-size: 10px; font-weight: 500; line-height: 9px; - margin: 4.5px; margin-left: 14px; + margin-top: 61px; text-align: center; width: 146px; height: 60px; } .first-position { - margin-top: 27px; + margin-top: 50px; + margin-right: 30.5px; } .container2 { display: block; margin-bottom: 24px; } .rectangle { - outline: 1px solid orange; background: #ffffff; margin-left: 87px; width: 1084px; @@ -130,7 +130,8 @@ nav { margin: 4.5px; width: 197px; height: 60px; - margin-left: 20px; + margin-left: 26px; + margin-top: 66px; } .initial { margin-left: 20px; @@ -143,9 +144,14 @@ nav { outline: 1px solid red; display: block; position: relative; - top: 200px; - width: 300px; - height: 181px; + top: 35px; + left: 40px; +} +.graphic2 { + display: inline-flex; + position: relative; + top: 90px; + left: 26px; } .info-container { background-color: #e1e1e1; @@ -168,24 +174,23 @@ nav { margin-right: 10px; margin-left: 80px; } -.students-tab { - display: none; -} + .students-data { outline: 1px solid red; background-color: white; - display: inline-block; + position: relative; padding-left: 20px; padding-right: 10px; padding-top: 10px; padding-bottom: 10px; font-size: 20px; line-height: 1.5; - margin-top: 50px; - position: absolute; + + } .search{ - width:800px; - height:35px; + width: 735px; + height: 41px; + float: right; } diff --git a/index.html b/index.html index 7bfb072d..96449b25 100644 --- a/index.html +++ b/index.html @@ -66,20 +66,21 @@
    -
    -
    -
    +
    +
    grafico
    +
    grafico
    +
    grafico
    -
    +
    graficografico
    -
    +
    graficografico
    -
    -
    -
    +
    grafico
    +
    grafico
    +
    grafico
    @@ -92,11 +93,14 @@

    SPECIALIZATION


    +
    -
    - -
    -
    +
    +
    + + +
    +
    From 02e2e242f1862a84efd2528a779c97c84e64f512 Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Thu, 30 Nov 2017 12:33:54 -0500 Subject: [PATCH 31/42] agregando students satisfaction --- index.html | 2 +- js/app.js | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index f32a59c3..b91f2c8b 100644 --- a/index.html +++ b/index.html @@ -77,7 +77,7 @@
    -
    +
    diff --git a/js/app.js b/js/app.js index 0a6526fa..7491fdb3 100644 --- a/js/app.js +++ b/js/app.js @@ -280,8 +280,28 @@ function satisfaccionEstudiantes(sede, generacion) { var supera = []; var cumple = []; var noCumple = []; + var totalExcede = 0; for (var i = 0; i < rating.length; i++) { - + if (rating[i].student.supera) { + supera.push(rating[i].student.supera); + } + if (rating[i].student.cumple) { + cumple.push(rating[i].student.cumple); + } + if (rating[i].student['no-cumple']) { + noCumple.push(rating[i].student.noCumple); + } + } + + for (var i = 0; i < supera.length; i++) { + totalExcede = totalExcede + supera[i] + cumple[i]; } + + var porcentajeSupera = totalExcede / supera.length; + + var studentSatisfaction = document.getElementById('studentSatisfaction'); + studentSatisfaction.innerHTML = Math.round(porcentajeSupera) + '
    ' + '% MEETING OR EXCEEDING EXPECTATIONS(CUMULATIVE)'; } + +console.log(satisfaccionEstudiantes('LIM', '2016-2')); \ No newline at end of file From 79a3a9374ba86d72a1a3ab4c65868b41302d485a Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Thu, 30 Nov 2017 12:55:26 -0500 Subject: [PATCH 32/42] agregando overall teacher --- index.html | 2 +- js/app.js | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index b91f2c8b..798622ed 100644 --- a/index.html +++ b/index.html @@ -78,7 +78,7 @@
    -
    +
    diff --git a/js/app.js b/js/app.js index 7491fdb3..3995e2f7 100644 --- a/js/app.js +++ b/js/app.js @@ -304,4 +304,27 @@ function satisfaccionEstudiantes(sede, generacion) { studentSatisfaction.innerHTML = Math.round(porcentajeSupera) + '
    ' + '% MEETING OR EXCEEDING EXPECTATIONS(CUMULATIVE)'; } -console.log(satisfaccionEstudiantes('LIM', '2016-2')); \ No newline at end of file +console.log(satisfaccionEstudiantes('LIM', '2016-2')); + +/** ************* TEACHER RATING ************ */ + +function calificacionMaestros(sede, generacion) { + var rating = data[sede][generacion]['ratings']; + var calificacion = []; + var sumCalificacion = 0; + + for (var i = 0; i < rating.length; i++) { + calificacion.push(rating[i].teacher); + } + + for (var i = 0; i < calificacion.length; i++) { + sumCalificacion = sumCalificacion + calificacion[i]; + } + + var calificacionGeneralTeacher = sumCalificacion / calificacion.length; + + var overallTeacher = document.getElementById('calificactionGeneral'); + overallTeacher.innerHTML = Math.round(overallTeacher) + '
    ' + 'OVERALL TEACHER RATING(CUMULATIVE)'; +} + +console.log(calificacionMaestros('LIM', '2016-2')); \ No newline at end of file From d0302ca07ef964cbeea3a4b59ad7ba4f63c1b118 Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Thu, 30 Nov 2017 13:28:09 -0500 Subject: [PATCH 33/42] agregando y mostrando teacher rating y jedi master rating --- index.html | 2 +- js/app.js | 28 ++++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 798622ed..de709db2 100644 --- a/index.html +++ b/index.html @@ -79,7 +79,7 @@
    -
    +
    diff --git a/js/app.js b/js/app.js index 3995e2f7..d94206bb 100644 --- a/js/app.js +++ b/js/app.js @@ -324,7 +324,31 @@ function calificacionMaestros(sede, generacion) { var calificacionGeneralTeacher = sumCalificacion / calificacion.length; var overallTeacher = document.getElementById('calificactionGeneral'); - overallTeacher.innerHTML = Math.round(overallTeacher) + '
    ' + 'OVERALL TEACHER RATING(CUMULATIVE)'; + overallTeacher.innerHTML = calificacionGeneralTeacher + '
    ' + 'OVERALL TEACHER RATING(CUMULATIVE)'; } -console.log(calificacionMaestros('LIM', '2016-2')); \ No newline at end of file +console.log(calificacionMaestros('LIM', '2016-2')); + + +/** ************* JEDI RATING ************ */ + +function calificacionJedi(sede, generacion) { + var rating = data[sede][generacion]['ratings']; + var calificacion = []; + var sumCalificacion = 0; + + for (var i = 0; i < rating.length; i++) { + calificacion.push(rating[i].jedi); + } + + for (var i = 0; i < calificacion.length; i++) { + sumCalificacion = sumCalificacion + calificacion[i]; + } + + var calificacionGeneralJedi = sumCalificacion / calificacion.length; + + var overallJedi = document.getElementById('calificactionGeneralJedi'); + overallJedi.innerHTML = calificacionGeneralJedi.toFixed(1) + '
    ' + 'OVERALL JEDI RATING(CUMULATIVE)'; +} + +console.log(calificacionJedi('LIM', '2016-2')); \ No newline at end of file From f30c5954fe91002c808412e0252ec5dccf653d2f Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 14:30:42 -0500 Subject: [PATCH 34/42] =?UTF-8?q?a=C3=B1adiendo=20seccion=20STUDENTS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/main.css | 22 +++++++---------- index.html | 18 +++++++------- js/app.js | 69 +++++++++++++++++++++++++++++++++++++++++++++------- 3 files changed, 78 insertions(+), 31 deletions(-) diff --git a/css/main.css b/css/main.css index 876cb63b..3dc403fd 100644 --- a/css/main.css +++ b/css/main.css @@ -80,10 +80,11 @@ nav { .overview-tab { display: none; background-color: #f7f7f7; + } .container1 { display: inline-flex; - background-color: #f7f7f7; + width: 100%; height: 433px; margin-left: 85px; @@ -93,6 +94,7 @@ nav { height: 335px; width: 342px; position: relative; + outline: 1px solid green; } .data1 { background-color: #f7f7f7; @@ -135,10 +137,13 @@ nav { } .initial { margin-left: 20px; + outline: 1px solid black; } .last-position { + outline: 1px solid red; margin-bottom: 123px; margin-top: 27px; + margin-right: 30.5px; } .graphic { outline: 1px solid red; @@ -164,10 +169,7 @@ nav { outline: 1px solid green; background-color: white; display: inline-block; - padding-left: 20px; - padding-right: 60px; - padding-top: 10px; - padding-bottom: 10px; + padding: 20px 30px 10px 10px; font-size: 20px; line-height: 1.5; margin-top: 50px; @@ -179,14 +181,8 @@ nav { outline: 1px solid red; background-color: white; position: relative; - padding-left: 20px; - padding-right: 10px; - padding-top: 10px; - padding-bottom: 10px; - font-size: 20px; - line-height: 1.5; - - + height: 50px; + width: 735px; } .search{ width: 735px; diff --git a/index.html b/index.html index 96449b25..8472be65 100644 --- a/index.html +++ b/index.html @@ -65,22 +65,22 @@
    -
    -
    +
    +
    grafico
    -
    grafico
    -
    grafico
    +
    grafico
    +
    grafico
    -
    graficografico
    +
    graficografico
    -
    graficografico
    +
    graficografico
    -
    grafico
    -
    grafico
    -
    grafico
    +
    +
    +
    diff --git a/js/app.js b/js/app.js index 60d263b1..6e5ad657 100644 --- a/js/app.js +++ b/js/app.js @@ -1,25 +1,32 @@ /* * Funcionalidad de tu producto */ -// selector de sedes +// evento para el selector de Sedes +var select = document.getElementById('select'); +var enrollment = document.getElementById('enrollment'); +var info = data; -// tabs overview, students y teacher +select.addEventListener('change', function(event){ + if(select.value === 'Ciudad de México') { + + } +}) + +// Evento para las tabs: overview, students y teacher var showHide = function(e) { var tabs = e.target.dataset.selecttab; - var overContent = document.getElementById('overview-tab'); if (tabs === 'overview') { - var changeOne = overContent.style.display = 'block'; + var overContent = document.getElementById('overview-tab'); // mostrar info de overview + var changeOne = overContent.style.display = 'block'; changeOne.toggle('overview-tab'); // ocultar students y teachers - changeOne.remove('changeTwo'); } else if (tabs === 'students') { var studentsTab = document.getElementById('students-tab'); var changeTwo = studentsTab.style.display = 'block'; // mostrar students changeTwo.toggle('students-tab'); - // ocultar overview y teachers - changeTwo.remove('overview-tab'); + } }; @@ -31,6 +38,7 @@ var chargePage = function() { }; chargePage(); + // Puedes hacer uso de la base de datos a través de la variable `data` console.log(data); @@ -280,8 +288,51 @@ function satisfaccionEstudiantes(sede, generacion) { var supera = []; var cumple = []; var noCumple = []; + var totalExcede = 0; for (var i = 0; i < rating.length; i++) { - + if (rating[i].student.supera) { + supera.push(rating[i].student.supera); + } + if (rating[i].student.cumple) { + cumple.push(rating[i].student.cumple); + } + if (rating[i].student['no-cumple']) { + noCumple.push(rating[i].student.noCumple); + } + } + + for (var i = 0; i < supera.length; i++) { + totalExcede = totalExcede + supera[i] + cumple[i]; + } + + var porcentajeSupera = totalExcede / supera.length; + + var studentSatisfaction = document.getElementById('studentSatisfaction'); + studentSatisfaction.innerHTML = Math.round(porcentajeSupera) + '
    ' + '% MEETING OR EXCEEDING EXPECTATIONS(CUMULATIVE)'; +} + +console.log(satisfaccionEstudiantes('LIM', '2016-2')); + +/** ************* TEACHER RATING ************ */ + +function calificacionMaestros(sede, generacion) { + var rating = data[sede][generacion]['ratings']; + var calificacion = []; + var sumCalificacion = 0; + + for (var i = 0; i < rating.length; i++) { + calificacion.push(rating[i].teacher); + } + + for (var i = 0; i < calificacion.length; i++) { + sumCalificacion = sumCalificacion + calificacion[i]; } -} \ No newline at end of file + + var calificacionGeneralTeacher = sumCalificacion / calificacion.length; + + var overallTeacher = document.getElementById('calificactionGeneral'); + overallTeacher.innerHTML = Math.round(overallTeacher) + '
    ' + 'OVERALL TEACHER RATING(CUMULATIVE)'; +} + +console.log(calificacionMaestros('LIM', '2016-2')); \ No newline at end of file From 7531fb4f78f7e409a04c0fdaa1052d2c67f26a97 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 14:42:08 -0500 Subject: [PATCH 35/42] anadiendo cambios a seccion estudiantes --- css/main.css | 13 +++++++------ js/app.js | 10 ++++------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/css/main.css b/css/main.css index 3dc403fd..fce521f3 100644 --- a/css/main.css +++ b/css/main.css @@ -94,7 +94,6 @@ nav { height: 335px; width: 342px; position: relative; - outline: 1px solid green; } .data1 { background-color: #f7f7f7; @@ -137,16 +136,14 @@ nav { } .initial { margin-left: 20px; - outline: 1px solid black; + } .last-position { - outline: 1px solid red; margin-bottom: 123px; margin-top: 27px; margin-right: 30.5px; } -.graphic { - outline: 1px solid red; +.graphic { display: block; position: relative; top: 35px; @@ -168,7 +165,9 @@ nav { .specialization { outline: 1px solid green; background-color: white; - display: inline-block; + display: block; + height: 159px; + width: 358px; padding: 20px 30px 10px 10px; font-size: 20px; line-height: 1.5; @@ -181,6 +180,8 @@ nav { outline: 1px solid red; background-color: white; position: relative; + float: left; + left: 400px; height: 50px; width: 735px; } diff --git a/js/app.js b/js/app.js index 6e5ad657..3c3fb6e0 100644 --- a/js/app.js +++ b/js/app.js @@ -6,7 +6,7 @@ var select = document.getElementById('select'); var enrollment = document.getElementById('enrollment'); var info = data; -select.addEventListener('change', function(event){ +select.addEventListener('change', function(){ if(select.value === 'Ciudad de México') { } @@ -18,15 +18,13 @@ var showHide = function(e) { if (tabs === 'overview') { var overContent = document.getElementById('overview-tab'); // mostrar info de overview - var changeOne = overContent.style.display = 'block'; - changeOne.toggle('overview-tab'); + overContent.style.display = 'block'; // ocultar students y teachers } else if (tabs === 'students') { var studentsTab = document.getElementById('students-tab'); - var changeTwo = studentsTab.style.display = 'block'; + studentsTab.style.display = 'block'; // mostrar students - changeTwo.toggle('students-tab'); - + } }; From 29f238c81e8d03dfd29435ac1edcfa0e0eb34550 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 15:49:23 -0500 Subject: [PATCH 36/42] actualizando seccion students --- css/main.css | 61 ++++++++++++++++++++++++++++++++++++++-------------- index.html | 11 ++++++---- js/app.js | 38 ++++++++++++++++---------------- 3 files changed, 71 insertions(+), 39 deletions(-) diff --git a/css/main.css b/css/main.css index fce521f3..05bdfabe 100644 --- a/css/main.css +++ b/css/main.css @@ -10,7 +10,7 @@ body { font-family: 'Roboto', sans-serif; line-height: 26px; - + background-color: #f7f7f7; } header { height: 201px; @@ -80,11 +80,13 @@ nav { .overview-tab { display: none; background-color: #f7f7f7; - +} +.students-tab { + display: none; + background-color: #f7f7f7; } .container1 { display: inline-flex; - width: 100%; height: 433px; margin-left: 85px; @@ -98,9 +100,9 @@ nav { .data1 { background-color: #f7f7f7; display: inline-block; - font-size: 10px; + font-size: 10.5px; font-weight: 500; - line-height: 9px; + line-height: 1.8; margin-left: 14px; margin-top: 61px; text-align: center; @@ -125,18 +127,17 @@ nav { .data2 { background-color: #f7f7f7; display: inline-block; - font-size: 10px; + font-size: 10.5px; font-weight: 500; - line-height: 9px; - margin: 4.5px; + line-height: 9px1.5; + margin: 1.5px; width: 197px; height: 60px; margin-left: 26px; margin-top: 66px; } .initial { - margin-left: 20px; - + margin-left: 20px; } .last-position { margin-bottom: 123px; @@ -159,11 +160,8 @@ nav { background-color: #e1e1e1; width: 100%; } -.students-tab { - display: none; -} + .specialization { - outline: 1px solid green; background-color: white; display: block; height: 159px; @@ -176,12 +174,13 @@ nav { margin-left: 80px; } -.students-data { +.students-profile { outline: 1px solid red; background-color: white; position: relative; float: left; left: 400px; + bottom: 154px; height: 50px; width: 735px; } @@ -190,4 +189,34 @@ nav { height: 41px; float: right; } - +.students-info { + outline: 1px solid violet; + background-color: #ffffff; + height: 189px; + width: 737px; + position: relative; + float: left; + left: 400px; + bottom: 124px; +} +.photo { + outline: 1px solid orange; + display: inline-flex; + position: relative; + height: 150px; + width: 150px; + left: 20px; + top: 20px; +} +.average { + outline: 1px solid green; + background-color: #e1e1e1; + display: inline-flex; + position: relative; + left: 300px; + bottom: 73px; + height: 58px; + width: 74px; + margin: 5px; + margin-top: 17px; +} diff --git a/index.html b/index.html index 1e18f9a6..6734bcfc 100644 --- a/index.html +++ b/index.html @@ -78,9 +78,9 @@
    graficografico
    -
    -
    -
    +
    +
    +
    @@ -94,10 +94,13 @@

    SPECIALIZATION

    -
    +
    +
    +
    +
    diff --git a/js/app.js b/js/app.js index f848477f..0fa45f3f 100644 --- a/js/app.js +++ b/js/app.js @@ -15,16 +15,16 @@ select.addEventListener('change', function(){ // Evento para las tabs: overview, students y teacher var showHide = function(e) { var tabs = e.target.dataset.selecttab; - if (tabs === 'overview') { - var overContent = document.getElementById('overview-tab'); - // mostrar info de overview - overContent.style.display = 'block'; - // ocultar students y teachers - } else if (tabs === 'students') { - var studentsTab = document.getElementById('students-tab'); - studentsTab.style.display = 'block'; - // mostrar students - + var div1 = document.getElementById('overview-tab'); + var div2 = document.getElementById('students-tab'); + if(tabs === 'overview') { + div2.style.display = 'none'; + div1.style.display = 'block'; + } else if(tabs === 'students'){ + div2.style.display = 'block'; + div1.style.display = 'none'; + } else { + div1.style.display = 'block'; } }; @@ -111,7 +111,7 @@ function logroMetas(sede, generacion, sprint) { var studentsTarget = studentsOverTarget.length; console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); var porcentajeAchievement = Math.round(porcentajeLogroMetas) + '%'; - var totalStudents = '% OF TOTAL THE (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; + var totalStudents = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; var studentsMeetTarget = document.getElementById('studentTarget'); studentsMeetTarget.innerHTML = studentsTarget + '
    ' + '# STUDENTS THE MEET THE TARGET'; @@ -156,9 +156,9 @@ function puntajePromotor(sede, generacion) { porcentajeDetractors = totalDetractors * 100 / (totalPromoters + totalDetractors + totalPassive); porcentajePassive = totalPassive * 100 / (totalPromoters + totalDetractors + totalPassive); - var promoters = (porcentajePromotors + '%' + '\t' + 'porcentaje de promoters'); - var detractors = (porcentajeDetractors + '%' + '\t' + 'porcentaje de detractors'); - var passive = (porcentajePassive + '%' + '\t' + 'porcentaje de passive'); + var promoters = (porcentajePromotors + '%' + '\t' + 'PROMOTER'); + var detractors = (porcentajeDetractors + '%' + '\t' + 'DETRACTORS'); + var passive = (porcentajePassive + '%' + '\t' + 'PASSIVE'); var porcentajeIndividual = document.getElementById('porcentajeVarios'); porcentajeIndividual.innerHTML = promoters + '
    ' + passive + '
    ' + detractors; @@ -210,7 +210,7 @@ function logroMetasTech(sede, generacion, sprint) { promedioNotaTech = totalPuntajeTech / puntajesTech.length; var promedioTech = document.getElementById('promedioTech'); - promedioTech.innerHTML = Math.round(promedioNotaTech) + '
    ' + 'average score'; + promedioTech.innerHTML = Math.round(promedioNotaTech) + '
    ' + 'AVERAGE SCORE'; var porcentajeLogroMetasTech = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); @@ -221,7 +221,7 @@ function logroMetasTech(sede, generacion, sprint) { console.log('no llegaron a la meta Tech: ' + '\t' + studentsDownTarget.length); var porcentajeTargetTech = porcentajeLogroMetasTech + '%'; - var totalTech = '% del total (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; + var totalTech = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; var porcentajeTargetTechShow = document.getElementById('porcentajeTargetTech'); porcentajeTargetTechShow.innerHTML = porcentajeTargetTech + '
    ' + totalTech; @@ -262,17 +262,17 @@ function logroMetasLife(sede, generacion, sprint) { promedioNotaHse = totalPuntajeHse / puntajesHse.length; var promedioHse = document.getElementById('promedioHse'); - promedioHse.innerHTML = Math.round(promedioNotaHse) + '
    ' + 'average score'; + promedioHse.innerHTML = Math.round(promedioNotaHse) + '
    ' + 'AVERAGE SCORE'; var porcentajeLogroMetasLife = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); var targetHse = studentsOverTarget.length; var targetHseShow = document.getElementById('targetHse'); targetHseShow.innerHTML = targetHse + '
    ' + 'STUDENT THE MEET THE TARGET'; - console.log('no llegaron a la meta hse: ' + '\t' + studentsDownTarget.length); + console.log('NO LLEGARON A LA META HSE: ' + '\t' + studentsDownTarget.length); var porcentajeTargetHse = Math.round(porcentajeLogroMetasLife) + '%'; - var totalHse = '% del total (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; + var totalHse = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; var porcentajeTargetHseShow = document.getElementById('porcentajeTargetHse'); porcentajeTargetHseShow.innerHTML = porcentajeTargetHse + '
    ' + totalHse; From 3f4e7f30d764612f9abaa886ee5f62e2d33b39a9 Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Thu, 30 Nov 2017 16:44:22 -0500 Subject: [PATCH 37/42] data the students --- js/app.js | 51 +++++++++++++++++++++++++++++++++++++++++++++------ students.html | 29 ----------------------------- 2 files changed, 45 insertions(+), 35 deletions(-) delete mode 100644 students.html diff --git a/js/app.js b/js/app.js index f848477f..f1027a6e 100644 --- a/js/app.js +++ b/js/app.js @@ -6,11 +6,11 @@ var select = document.getElementById('select'); var enrollment = document.getElementById('enrollment'); var info = data; -select.addEventListener('change', function(){ - if(select.value === 'Ciudad de México') { +select.addEventListener('change', function() { + if (select.value === 'Ciudad de México') { } -}) +}); // Evento para las tabs: overview, students y teacher var showHide = function(e) { @@ -18,13 +18,12 @@ var showHide = function(e) { if (tabs === 'overview') { var overContent = document.getElementById('overview-tab'); // mostrar info de overview - overContent.style.display = 'block'; + overContent.style.display = 'block'; // ocultar students y teachers } else if (tabs === 'students') { var studentsTab = document.getElementById('students-tab'); - studentsTab.style.display = 'block'; + studentsTab.style.display = 'block'; // mostrar students - } }; @@ -358,3 +357,43 @@ function calificacionJedi(sede, generacion) { } console.log(calificacionJedi('LIM', '2016-2')); + +/** ******* STUDENTS DATA ******/ + +function studentsData(sede, generacion) { + var students = data[sede][generacion]['students']; + var studentNotaTech = []; + var studentNotaHse = []; + var sumaNotasTech = 0; + var sumaNotasHse = 0; + // debugger; + for (var i = 0; i < students.length; i++) { + for (var j = 0; j < students[i].sprints.length; j++) { + if (students[i].active === true) { + if (students[i].sprints[j].score.tech) { + studentNotaTech.push(students[i].sprints[j].score.tech); + } + if (students[i].sprints[j].score.hse) { + studentNotaHse.push(students[i].sprints[j].score.hse); + } + } + // console.log(students[i].name + '\t' + promedioStudentNotaTech + '\t' + promedioStudennotaHse); + + console.log(students[i].name + '\t' + students[i].sprints[j].score.hse + '\t' + students[i].sprints[j].score.tech); + /* + for (var i = 0; i < studentNotaTech.length; i++) { + sumaNotasTech = sumaNotasTech + studentNotaTech[i]; + sumaNotasHse = sumaNotasHse + studentNotaHse[i]; + } + + var promedioStudentNotaTech = sumaNotasTech / studentNotaTech.length; + + var promedioStudennotaHse = sumaNotasHse / studentNotaHse.length; + + console.log(promedioStudennotaHse); + console.log(promedioStudentNotaTech);*/ + } + } +} + +console.log(studentsData('LIM', '2016-2')); \ No newline at end of file diff --git a/students.html b/students.html deleted file mode 100644 index ba5ef75d..00000000 --- a/students.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - Students - - - -
    -

    ESPECIALIZATION

    - -
    -
    -
    -
    -
    -
    -
    - -
    - - \ No newline at end of file From 361397fd8992804984af09de8cc1547f7edcc806 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 17:42:25 -0500 Subject: [PATCH 38/42] seccion STUDENTS actualizada --- css/main.css | 59 ++++++++++++++++++++++++++++++++++++--------------- index.html | 24 +++++++++++++-------- js/app.js | 51 ++++++++++++++++++++++++-------------------- students.html | 29 ------------------------- 4 files changed, 85 insertions(+), 78 deletions(-) delete mode 100644 students.html diff --git a/css/main.css b/css/main.css index 05bdfabe..a1a8736c 100644 --- a/css/main.css +++ b/css/main.css @@ -60,13 +60,15 @@ nav { background: #e1e1e1; width: 395px; height: 49px; - margin-left: 41px; + margin-left: 75px; margin-top: 12px; } .tabs { display: inline-flex; list-style: none; position: relative; + margin: 10px; + padding: 0; } .tabBtn { text-decoration: none; @@ -75,6 +77,7 @@ nav { color: black; float: left; font-size: 22px; + font-weight: 500; padding: 4px; } .overview-tab { @@ -103,9 +106,9 @@ nav { font-size: 10.5px; font-weight: 500; line-height: 1.8; - margin-left: 14px; - margin-top: 61px; text-align: center; + margin-left: 14px; + margin-top: 31px; width: 146px; height: 60px; } @@ -129,12 +132,13 @@ nav { display: inline-block; font-size: 10.5px; font-weight: 500; - line-height: 9px1.5; + line-height: 2.5; + text-align: center; margin: 1.5px; width: 197px; height: 60px; margin-left: 26px; - margin-top: 66px; + margin-top: 26px; } .initial { margin-left: 20px; @@ -153,54 +157,75 @@ nav { .graphic2 { display: inline-flex; position: relative; - top: 90px; + height: 316px; + width: 611px; + top: 20px; + left: 26px; +} +.graphic3 { + display: inline-flex; + position: relative; + height: 329px; + width: 403px; left: 26px; + top: 20px; +} +h2 { + text-align: left; + margin-left: 22px; + margin-top: 20px; +} +.rectangle h2 { + text-align: left; + width: 300px; + bottom: 30px; } .info-container { background-color: #e1e1e1; width: 100%; } - .specialization { background-color: white; display: block; - height: 159px; + height: 190px; width: 358px; - padding: 20px 30px 10px 10px; + padding: 2px 25px 2px 45px; font-size: 20px; line-height: 1.5; - margin-top: 50px; + margin-top: 30px; margin-right: 10px; margin-left: 80px; + margin-bottom: 15px; +} +.form1 { + padding-bottom: 15px; } - .students-profile { - outline: 1px solid red; background-color: white; position: relative; float: left; left: 400px; bottom: 154px; - height: 50px; + height: 39px; width: 735px; } .search{ width: 735px; - height: 41px; + height: 39px; float: right; } .students-info { - outline: 1px solid violet; background-color: #ffffff; height: 189px; width: 737px; position: relative; float: left; + margin: 12px; left: 400px; bottom: 124px; } .photo { - outline: 1px solid orange; + background-color: #e1e1e1; display: inline-flex; position: relative; height: 150px; @@ -209,7 +234,6 @@ nav { top: 20px; } .average { - outline: 1px solid green; background-color: #e1e1e1; display: inline-flex; position: relative; @@ -220,3 +244,4 @@ nav { margin: 5px; margin-top: 17px; } + diff --git a/index.html b/index.html index 6734bcfc..cce24310 100644 --- a/index.html +++ b/index.html @@ -66,28 +66,28 @@
    -
    +

    ENROLLEMENT

    grafico
    -
    grafico
    -
    grafico
    +

    ACHIVEMENT

    grafico
    +

    NET PROMOTER SCORE

    grafico
    -
    graficografico
    +

    TECH SKILLS

    graficografico
    -
    graficografico
    +

    LIFE SKILLS

    graficografico
    -
    -
    -
    +

    STUDENT SATISFACTION

    grafico
    +

    TEACHER RATING

    grafico
    +

    JEDI MASTER RATING

    grafico

    SPECIALIZATION

    -
    +


    @@ -101,6 +101,12 @@

    SPECIALIZATION

    +
    +
    +
    +
    +
    +
    diff --git a/js/app.js b/js/app.js index 0fa45f3f..486d91bb 100644 --- a/js/app.js +++ b/js/app.js @@ -2,15 +2,22 @@ * Funcionalidad de tu producto */ // evento para el selector de Sedes -var select = document.getElementById('select'); -var enrollment = document.getElementById('enrollment'); -var info = data; +var LIM = document.getElementById('LIM'); +var AQP = document.getElementById('AQP'); +var SCL = document.getElementById('SCL'); +var CDMX = document.getElementById('CDMX'); +var dataContainer = document.getElementById('overview-tab'); + +LIM.addEventListener('click', function(){ + if(LIM.value === '2016-II') { + for(var i = 0; i <= dataContainer.length; i++){ + console.log(dataContainer[i]); + } + } +}); + -select.addEventListener('change', function(){ - if(select.value === 'Ciudad de México') { - } -}) // Evento para las tabs: overview, students y teacher var showHide = function(e) { @@ -23,8 +30,6 @@ var showHide = function(e) { } else if(tabs === 'students'){ div2.style.display = 'block'; div1.style.display = 'none'; - } else { - div1.style.display = 'block'; } }; @@ -38,7 +43,7 @@ chargePage(); // Puedes hacer uso de la base de datos a través de la variable `data` -console.log(data); +//console.log(data); /** **************DATOS QUE MUESTRA EL ENROLLMENT ***********/ @@ -57,7 +62,7 @@ function desercion(sede, generacion) { var porcentajeDesercion = ((studentsDeserte.length * 100 / students.length)); var studentsCurrent = studentsActive.length; - console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); + //console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); var desercion = Math.round(porcentajeDesercion) + '%'; var studentsCurrentEnrollment = document.getElementById('studentsCurrent'); @@ -67,7 +72,7 @@ function desercion(sede, generacion) { dropout.innerHTML = desercion + '
    ' + ' % DROPOUT'; } -console.log(desercion('LIM', '2016-2')); +//console.log(desercion('LIM', '2016-2')); /** ************* DATOS ACHIEVEMENT********************/ @@ -109,7 +114,7 @@ function logroMetas(sede, generacion, sprint) { var porcentajeLogroMetas = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); var studentsTarget = studentsOverTarget.length; - console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); + //console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); var porcentajeAchievement = Math.round(porcentajeLogroMetas) + '%'; var totalStudents = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; @@ -120,7 +125,7 @@ function logroMetas(sede, generacion, sprint) { porcentajeAchievementShow.innerHTML = porcentajeAchievement + '
    ' + totalStudents; } -console.log(logroMetas('LIM', '2016-2', '0')); +//console.log(logroMetas('LIM', '2016-2', '0')); /** ************** NET PROMOTER SCORE ****************/ @@ -162,7 +167,7 @@ function puntajePromotor(sede, generacion) { var porcentajeIndividual = document.getElementById('porcentajeVarios'); porcentajeIndividual.innerHTML = promoters + '
    ' + passive + '
    ' + detractors; - console.log(totalNps.length); + //console.log(totalNps.length); for (var i = 0; i < totalNps.length; i++) { acumulativeNps = acumulativeNps + totalNps[i]; @@ -176,7 +181,7 @@ function puntajePromotor(sede, generacion) { cumulativeNpsShow.innerHTML = cumulativeNps + '
    ' + '% CUMULATIVE NPS'; } -console.log(puntajePromotor('LIM', '2016-2')); +//console.log(puntajePromotor('LIM', '2016-2')); /** ********** TECH SKILLS *******************/ @@ -218,7 +223,7 @@ function logroMetasTech(sede, generacion, sprint) { var studentsTargetTechShow = document.getElementById('targetTech'); studentsTargetTechShow.innerHTML = studentsTargetTech + '
    ' + '# STUDENT THE MEET THE TARGET'; - console.log('no llegaron a la meta Tech: ' + '\t' + studentsDownTarget.length); + //console.log('no llegaron a la meta Tech: ' + '\t' + studentsDownTarget.length); var porcentajeTargetTech = porcentajeLogroMetasTech + '%'; var totalTech = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; @@ -227,7 +232,7 @@ function logroMetasTech(sede, generacion, sprint) { porcentajeTargetTechShow.innerHTML = porcentajeTargetTech + '
    ' + totalTech; } -console.log(logroMetasTech('LIM', '2016-2', '0')); +//console.log(logroMetasTech('LIM', '2016-2', '0')); /** ****** LIFE SKILLS *****************/ @@ -269,7 +274,7 @@ function logroMetasLife(sede, generacion, sprint) { var targetHse = studentsOverTarget.length; var targetHseShow = document.getElementById('targetHse'); targetHseShow.innerHTML = targetHse + '
    ' + 'STUDENT THE MEET THE TARGET'; - console.log('NO LLEGARON A LA META HSE: ' + '\t' + studentsDownTarget.length); + //console.log('NO LLEGARON A LA META HSE: ' + '\t' + studentsDownTarget.length); var porcentajeTargetHse = Math.round(porcentajeLogroMetasLife) + '%'; var totalHse = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; @@ -278,7 +283,7 @@ function logroMetasLife(sede, generacion, sprint) { porcentajeTargetHseShow.innerHTML = porcentajeTargetHse + '
    ' + totalHse; } -console.log(logroMetasLife('LIM', '2016-2', '0')); +//console.log(logroMetasLife('LIM', '2016-2', '0')); /** ****************** STUDENT SATISFACTION ****************/ function satisfaccionEstudiantes(sede, generacion) { @@ -310,7 +315,7 @@ function satisfaccionEstudiantes(sede, generacion) { studentSatisfaction.innerHTML = Math.round(porcentajeSupera) + '
    ' + '% MEETING OR EXCEEDING EXPECTATIONS(CUMULATIVE)'; } -console.log(satisfaccionEstudiantes('LIM', '2016-2')); +//console.log(satisfaccionEstudiantes('LIM', '2016-2')); /** ************* TEACHER RATING ************ */ @@ -333,7 +338,7 @@ function calificacionMaestros(sede, generacion) { overallTeacher.innerHTML = calificacionGeneralTeacher + '
    ' + 'OVERALL TEACHER RATING(CUMULATIVE)'; } -console.log(calificacionMaestros('LIM', '2016-2')); +//console.log(calificacionMaestros('LIM', '2016-2')); /** ************* JEDI RATING ************ */ @@ -357,4 +362,4 @@ function calificacionJedi(sede, generacion) { overallJedi.innerHTML = calificacionGeneralJedi.toFixed(1) + '
    ' + 'OVERALL JEDI RATING(CUMULATIVE)'; } -console.log(calificacionJedi('LIM', '2016-2')); +//console.log(calificacionJedi('LIM', '2016-2')); diff --git a/students.html b/students.html deleted file mode 100644 index ba5ef75d..00000000 --- a/students.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - Students - - - -
    -

    ESPECIALIZATION

    - - -
    -
    -
    - -
    -
    - -
    - - \ No newline at end of file From 5c92867a30ccc4e3c16827539833248a8c42e2d9 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 17:48:52 -0500 Subject: [PATCH 39/42] corrigiendo errores --- js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/app.js b/js/app.js index 486d91bb..ec76ec3a 100644 --- a/js/app.js +++ b/js/app.js @@ -11,7 +11,7 @@ var dataContainer = document.getElementById('overview-tab'); LIM.addEventListener('click', function(){ if(LIM.value === '2016-II') { for(var i = 0; i <= dataContainer.length; i++){ - console.log(dataContainer[i]); + ; } } }); From f416da5e999f1986e68e2e0ee7e0450082d2c226 Mon Sep 17 00:00:00 2001 From: NishiAicchi Date: Thu, 30 Nov 2017 18:12:19 -0500 Subject: [PATCH 40/42] =?UTF-8?q?a=C3=B1adiendo=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 41 ++++++++++++++++++++++-------- assets/images/reference.png | Bin 0 -> 140919 bytes css/main.css | 2 +- index.html | 4 --- js/app.js | 49 +++++++++++------------------------- 5 files changed, 46 insertions(+), 50 deletions(-) create mode 100644 assets/images/reference.png diff --git a/README.md b/README.md index e9b59c4c..af2b4220 100644 --- a/README.md +++ b/README.md @@ -3,23 +3,42 @@ * **Track:** _Common Core_ * **Curso:** _Creando tu primer sitio web interactivo_ * **Unidad:** _Producto final_ +* **Colaboradores del Proyecto:** _Thalia Diaz y Aylin Espichan_ *** ## Flujo de trabajo -1. Debes realizar un [**fork**](https://gist.github.com/ivandevp/1de47ae69a5e139a6622d78c882e1f74) - de este repositorio. +1. Es importante para nuestro cliente poder optimizar el tiempo de procesamiento de data, sobre todo si maneja importante data para esta. Hemos desarrollado un MVP: Data Dashboard para las TMs de Laboratoria, quienes tienen la ardua labor de monitorear la información de las alumnas y egresadas, ademas de los porcentajes de crecimiento de cada una y entre sedes. -2. Luego deberás **clonar** tu fork en tu máquina. Recuerda que el comando a usar - es `git clone` y su estructura normalmente se ve así: +**Estos fueron nuestros requerimientos:** ++ El total de estudiantes presentes por sede y generación. ++ El porcentaje de deserción de estudiantes. ++ La cantidad de estudiantes que superan la meta de puntos en promedio de todos los sprints cursados. La meta de puntos es 70% del total de puntos en HSE y en tech. ++ El porcentaje que representa el dato anterior en relación al total de estudiantes. - ```bash - git clone https://github.com//freelancer.git - ``` ++ El Net Promoter Score (NPS) promedio de los sprints cursados. El NPS se calcula en base a la encuesta que las estudiantes responden al respecto de la recomendación que darían de Laboratoria, bajo la siguiente fórmula: -3. Cuando hayas terminado tu producto, envía un Pull Request a este repositorio - (puedes solicitar apoyo de tus profes para este paso). + ~~~ + [Promoters] = [Respuestas 9 o 10] / [Total respuestas] * 100 -> Nota: No olvides que es una buena práctica describir tu proyecto en este -> archivo `README.md` y también desplegar tu web a Github Pages :smiley:. +[Passive] = [Respuestas 7 u 8] / [Total respuestas] * 100 + +[Detractors] = [Respuestas entre 1 y 6] / [Total respuestas] * 100 + +[NPS] = [Promoters] - [Detractors] +~~~ + ++ La cantidad y el porcentaje que representa el total de estudiantes que superan la meta de puntos técnicos en promedio y por sprint. + ++ La cantidad y el porcentaje que representa el total de estudiantes que superan la meta de puntos de HSE en promedio y por sprint. + ++ El porcentaje de estudiantes satisfechas con la experiencia de Laboratoria. + ++ La puntuación promedio de l@s profesores. + ++ La puntuación promedio de l@s jedi masters. + +Así deberia quedar nuestro MVP: + +![referencia](assets/images/reference.png) \ No newline at end of file diff --git a/assets/images/reference.png b/assets/images/reference.png new file mode 100644 index 0000000000000000000000000000000000000000..5b7a9b709847c9d9b2cfa1f8802ad7d25be964a7 GIT binary patch literal 140919 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

    nOJLGvArX^g~N^ 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 literal 0 HcmV?d00001 diff --git a/css/main.css b/css/main.css index a1a8736c..7820fe99 100644 --- a/css/main.css +++ b/css/main.css @@ -19,7 +19,7 @@ nav { background: #ffffff; display: inline-block; position: relative; - width: 1279px; + width: 100%; height: 76px; } .logo { diff --git a/index.html b/index.html index cce24310..0727d265 100644 --- a/index.html +++ b/index.html @@ -107,14 +107,10 @@

    SPECIALIZATION

    -
    - -
    - diff --git a/js/app.js b/js/app.js index ec76ec3a..37cb057f 100644 --- a/js/app.js +++ b/js/app.js @@ -11,7 +11,7 @@ var dataContainer = document.getElementById('overview-tab'); LIM.addEventListener('click', function(){ if(LIM.value === '2016-II') { for(var i = 0; i <= dataContainer.length; i++){ - ; + da } } }); @@ -43,7 +43,7 @@ chargePage(); // Puedes hacer uso de la base de datos a través de la variable `data` -//console.log(data); +console.log(data); /** **************DATOS QUE MUESTRA EL ENROLLMENT ***********/ @@ -62,7 +62,7 @@ function desercion(sede, generacion) { var porcentajeDesercion = ((studentsDeserte.length * 100 / students.length)); var studentsCurrent = studentsActive.length; - //console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); + console.log('STUDENTS DROPOUT' + '\t' + studentsDeserte.length); var desercion = Math.round(porcentajeDesercion) + '%'; var studentsCurrentEnrollment = document.getElementById('studentsCurrent'); @@ -72,7 +72,7 @@ function desercion(sede, generacion) { dropout.innerHTML = desercion + '
    ' + ' % DROPOUT'; } -//console.log(desercion('LIM', '2016-2')); +console.log(desercion('LIM', '2016-2')); /** ************* DATOS ACHIEVEMENT********************/ @@ -80,25 +80,6 @@ function logroMetas(sede, generacion, sprint) { var students = data[sede][generacion]['students']; var studentsOverTarget = []; var studentsDownTarget = []; - - /* alcanzaron la metaacumulado - for (var i = 0; i < students.length; i++) { - for (var j = 0; j < students[i].sprints.length; j++) { - if (students[i].active === true) { - if ((students[i].sprints[j].score.tech >= 1260) && (students[i].sprints[j].score.hse >= 840)) { - studentsOverTarget.push(students[i].sprints[j]); - } else { - studentsDownTarget.push(students[i].sprints[j]); - } - } - } - } - var porcentajeLogroMetas = (studentsOverTarget.length / students[0].sprints.length * 100) / (studentsOverTarget.length / students[0].sprints.length + studentsDownTarget.length / students[0].sprints.length); - console.log('pasaron la meta: ' + '\t' + studentsOverTarget.length / students[0].sprints.length); - console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length / students[0].sprints.length); - console.log('porcentaje que logro la meta:' + '\t' + porcentajeLogroMetas + '%'); - console.log('% del total' + (studentsOverTarget.length / students[0].sprints.length + studentsDownTarget.length / students[0].sprints.length)); -} */ for (var i = 0; i < students.length; i++) { if (students[i].active === true) { if ((students[i].sprints[sprint].score.tech >= 1260) && (students[i].sprints[sprint].score.hse >= 840)) { @@ -114,7 +95,7 @@ function logroMetas(sede, generacion, sprint) { var porcentajeLogroMetas = (studentsOverTarget.length * 100) / (studentsOverTarget.length + studentsDownTarget.length); var studentsTarget = studentsOverTarget.length; - //console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); + console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); var porcentajeAchievement = Math.round(porcentajeLogroMetas) + '%'; var totalStudents = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; @@ -125,7 +106,7 @@ function logroMetas(sede, generacion, sprint) { porcentajeAchievementShow.innerHTML = porcentajeAchievement + '
    ' + totalStudents; } -//console.log(logroMetas('LIM', '2016-2', '0')); +console.log(logroMetas('LIM', '2016-2', '0')); /** ************** NET PROMOTER SCORE ****************/ @@ -167,7 +148,7 @@ function puntajePromotor(sede, generacion) { var porcentajeIndividual = document.getElementById('porcentajeVarios'); porcentajeIndividual.innerHTML = promoters + '
    ' + passive + '
    ' + detractors; - //console.log(totalNps.length); + console.log(totalNps.length); for (var i = 0; i < totalNps.length; i++) { acumulativeNps = acumulativeNps + totalNps[i]; @@ -181,7 +162,7 @@ function puntajePromotor(sede, generacion) { cumulativeNpsShow.innerHTML = cumulativeNps + '
    ' + '% CUMULATIVE NPS'; } -//console.log(puntajePromotor('LIM', '2016-2')); +console.log(puntajePromotor('LIM', '2016-2')); /** ********** TECH SKILLS *******************/ @@ -223,7 +204,7 @@ function logroMetasTech(sede, generacion, sprint) { var studentsTargetTechShow = document.getElementById('targetTech'); studentsTargetTechShow.innerHTML = studentsTargetTech + '
    ' + '# STUDENT THE MEET THE TARGET'; - //console.log('no llegaron a la meta Tech: ' + '\t' + studentsDownTarget.length); + console.log('no llegaron a la meta Tech: ' + '\t' + studentsDownTarget.length); var porcentajeTargetTech = porcentajeLogroMetasTech + '%'; var totalTech = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; @@ -232,7 +213,7 @@ function logroMetasTech(sede, generacion, sprint) { porcentajeTargetTechShow.innerHTML = porcentajeTargetTech + '
    ' + totalTech; } -//console.log(logroMetasTech('LIM', '2016-2', '0')); +console.log(logroMetasTech('LIM', '2016-2', '0')); /** ****** LIFE SKILLS *****************/ @@ -274,7 +255,7 @@ function logroMetasLife(sede, generacion, sprint) { var targetHse = studentsOverTarget.length; var targetHseShow = document.getElementById('targetHse'); targetHseShow.innerHTML = targetHse + '
    ' + 'STUDENT THE MEET THE TARGET'; - //console.log('NO LLEGARON A LA META HSE: ' + '\t' + studentsDownTarget.length); + console.log('NO LLEGARON A LA META HSE: ' + '\t' + studentsDownTarget.length); var porcentajeTargetHse = Math.round(porcentajeLogroMetasLife) + '%'; var totalHse = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; @@ -283,7 +264,7 @@ function logroMetasLife(sede, generacion, sprint) { porcentajeTargetHseShow.innerHTML = porcentajeTargetHse + '
    ' + totalHse; } -//console.log(logroMetasLife('LIM', '2016-2', '0')); +console.log(logroMetasLife('LIM', '2016-2', '0')); /** ****************** STUDENT SATISFACTION ****************/ function satisfaccionEstudiantes(sede, generacion) { @@ -315,7 +296,7 @@ function satisfaccionEstudiantes(sede, generacion) { studentSatisfaction.innerHTML = Math.round(porcentajeSupera) + '
    ' + '% MEETING OR EXCEEDING EXPECTATIONS(CUMULATIVE)'; } -//console.log(satisfaccionEstudiantes('LIM', '2016-2')); +console.log(satisfaccionEstudiantes('LIM', '2016-2')); /** ************* TEACHER RATING ************ */ @@ -338,7 +319,7 @@ function calificacionMaestros(sede, generacion) { overallTeacher.innerHTML = calificacionGeneralTeacher + '
    ' + 'OVERALL TEACHER RATING(CUMULATIVE)'; } -//console.log(calificacionMaestros('LIM', '2016-2')); +console.log(calificacionMaestros('LIM', '2016-2')); /** ************* JEDI RATING ************ */ @@ -362,4 +343,4 @@ function calificacionJedi(sede, generacion) { overallJedi.innerHTML = calificacionGeneralJedi.toFixed(1) + '
    ' + 'OVERALL JEDI RATING(CUMULATIVE)'; } -//console.log(calificacionJedi('LIM', '2016-2')); +console.log(calificacionJedi('LIM', '2016-2')); From b43b1c95f612eab44f38027e4ff397d3e1491e3e Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Mon, 4 Dec 2017 01:30:51 -0500 Subject: [PATCH 41/42] cambiando funcion logro de metas para que calcule para todos los sprints --- js/app.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/js/app.js b/js/app.js index c97ca26e..55990d0b 100644 --- a/js/app.js +++ b/js/app.js @@ -1,3 +1,4 @@ + // evento para el selector de Sedes var LIM = document.getElementById('LIM'); var AQP = document.getElementById('AQP'); @@ -66,16 +67,18 @@ console.log(desercion('LIM', '2016-2')); /** ************* DATOS ACHIEVEMENT********************/ -function logroMetas(sede, generacion, sprint) { +function logroMetas(sede, generacion) { var students = data[sede][generacion]['students']; var studentsOverTarget = []; var studentsDownTarget = []; for (var i = 0; i < students.length; i++) { if (students[i].active === true) { - if ((students[i].sprints[sprint].score.tech >= 1260) && (students[i].sprints[sprint].score.hse >= 840)) { - studentsOverTarget.push(students[i].sprints[sprint]); - } else { - studentsDownTarget.push(students[i].sprints[sprint]); + for (var j = 0; j < students[i].sprints.length; j++) { + if ((students[i].sprints[j].score.tech >= 1260) && (students[i].sprints[j].score.hse >= 840)) { + studentsOverTarget.push(students[i].sprints[j]); + } else { + studentsDownTarget.push(students[i].sprints[j]); + } } } else { @@ -96,7 +99,7 @@ function logroMetas(sede, generacion, sprint) { porcentajeAchievementShow.innerHTML = porcentajeAchievement + '
    ' + totalStudents; } -console.log(logroMetas('LIM', '2016-2', '0')); +console.log(logroMetas('LIM', '2016-2')); /** ************** NET PROMOTER SCORE ****************/ From b54771e01cc551fcc565530ec8f5d48271c26e44 Mon Sep 17 00:00:00 2001 From: ThaliaDiaz Date: Mon, 4 Dec 2017 15:02:36 -0500 Subject: [PATCH 42/42] redondeando net score --- js/app.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/js/app.js b/js/app.js index 55990d0b..25f66161 100644 --- a/js/app.js +++ b/js/app.js @@ -1,3 +1,4 @@ +console.log(data); // evento para el selector de Sedes var LIM = document.getElementById('LIM'); @@ -73,6 +74,7 @@ function logroMetas(sede, generacion) { var studentsDownTarget = []; for (var i = 0; i < students.length; i++) { if (students[i].active === true) { + var cantidadSprint = students[i].sprints.length; for (var j = 0; j < students[i].sprints.length; j++) { if ((students[i].sprints[j].score.tech >= 1260) && (students[i].sprints[j].score.hse >= 840)) { studentsOverTarget.push(students[i].sprints[j]); @@ -90,7 +92,7 @@ function logroMetas(sede, generacion) { var studentsTarget = studentsOverTarget.length; console.log('no llegaron a la meta: ' + '\t' + studentsDownTarget.length); var porcentajeAchievement = Math.round(porcentajeLogroMetas) + '%'; - var totalStudents = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) + ')'; + var totalStudents = '% OF TOTAL (' + (studentsOverTarget.length + studentsDownTarget.length) / cantidadSprint + ')'; var studentsMeetTarget = document.getElementById('studentTarget'); studentsMeetTarget.innerHTML = studentsTarget + '
    ' + '# STUDENTS THE MEET THE TARGET'; @@ -99,7 +101,7 @@ function logroMetas(sede, generacion) { porcentajeAchievementShow.innerHTML = porcentajeAchievement + '
    ' + totalStudents; } -console.log(logroMetas('LIM', '2016-2')); +console.log(logroMetas('LIM', '2017-2')); /** ************** NET PROMOTER SCORE ****************/ @@ -135,9 +137,9 @@ function puntajePromotor(sede, generacion) { porcentajeDetractors = totalDetractors * 100 / (totalPromoters + totalDetractors + totalPassive); porcentajePassive = totalPassive * 100 / (totalPromoters + totalDetractors + totalPassive); - var promoters = (porcentajePromotors + '%' + '\t' + 'PROMOTER'); - var detractors = (porcentajeDetractors + '%' + '\t' + 'DETRACTORS'); - var passive = (porcentajePassive + '%' + '\t' + 'PASSIVE'); + var promoters = (Math.round(porcentajePromotors) + '%' + '\t' + 'PROMOTER'); + var detractors = (Math.round(porcentajeDetractors) + '%' + '\t' + 'DETRACTORS'); + var passive = (Math.round(porcentajePassive) + '%' + '\t' + 'PASSIVE'); var porcentajeIndividual = document.getElementById('porcentajeVarios'); porcentajeIndividual.innerHTML = promoters + '
    ' + passive + '
    ' + detractors; @@ -149,13 +151,13 @@ function puntajePromotor(sede, generacion) { porcentajeAcumulativeNps = acumulativeNps / totalNps.length; - var cumulativeNps = porcentajeAcumulativeNps + '%'; + var cumulativeNps = Math.round(porcentajeAcumulativeNps) + '%'; var cumulativeNpsShow = document.getElementById('cumulativeNps'); cumulativeNpsShow.innerHTML = cumulativeNps + '
    ' + '% CUMULATIVE NPS'; } -console.log(puntajePromotor('LIM', '2016-2')); +console.log(puntajePromotor('CDMX', '2017-1')); /** ********** TECH SKILLS *******************/