33 | Browsing Pattern HeatMap 34 |
35 | 36 |  37 |38 | Browsing Pattern Anamoly 39 |
40 | 41 | 42 |  43 |44 | Search Keywords 45 |
46 | 47 | 48 |  49 |50 | Psuedo Social Circles 51 |
52 | 53 | ## To-Do 54 | - Support for Windows and Chrome (or any other browser) 55 | - Improve the psuedo-social sphere by grouping by range rather than absolute value. 56 | -------------------------------------------------------------------------------- /assets/Hakuna Metadata -1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sidtechnical/hakuna-metadata-1/9d0d4e48b57d6422468389e1e089818cdacf9eb7/assets/Hakuna Metadata -1.pdf -------------------------------------------------------------------------------- /assets/css/bootstrap-responsive.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.3.1 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} 10 | -------------------------------------------------------------------------------- /assets/css/demo.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Raleway); 2 | 3 | body { 4 | padding-top: 0px; 5 | font-family: 'Raleway', sans-serif; 6 | padding-bottom: 0px; 7 | } 8 | 9 | /* Custom container */ 10 | .container-narrow { 11 | margin: 0 auto; 12 | max-width: 700px; 13 | } 14 | .container-narrow > hr { 15 | margin: 30px 0; 16 | } 17 | 18 | /* Main marketing message and sign up button */ 19 | .jumbotron { 20 | margin: 20px 0; 21 | text-align: center; 22 | } 23 | .jumbotron h1 { 24 | font-size: 72px; 25 | line-height: 1; 26 | } 27 | .jumbotron .btn { 28 | font-size: 21px; 29 | padding: 14px 24px; 30 | } 31 | 32 | /* Supporting marketing content */ 33 | .marketing { 34 | margin: 60px 0; 35 | } 36 | .marketing p + h4 { 37 | margin-top: 28px; 38 | } 39 | -------------------------------------------------------------------------------- /assets/css/introjs.css: -------------------------------------------------------------------------------- 1 | .introjs-overlay { 2 | position: absolute; 3 | box-sizing: content-box; 4 | z-index: 999999; 5 | background-color: #000; 6 | opacity: 0; 7 | background: -moz-radial-gradient(center,ellipse cover,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%); 8 | background: -webkit-gradient(radial,center center,0px,center center,100%,color-stop(0%,rgba(0,0,0,0.4)),color-stop(100%,rgba(0,0,0,0.9))); 9 | background: -webkit-radial-gradient(center,ellipse cover,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%); 10 | background: -o-radial-gradient(center,ellipse cover,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%); 11 | background: -ms-radial-gradient(center,ellipse cover,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%); 12 | background: radial-gradient(center,ellipse cover,rgba(0,0,0,0.4) 0,rgba(0,0,0,0.9) 100%); 13 | filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#66000000',endColorstr='#e6000000',GradientType=1)"; 14 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 15 | filter: alpha(opacity=50); 16 | -webkit-transition: all 0.3s ease-out; 17 | -moz-transition: all 0.3s ease-out; 18 | -ms-transition: all 0.3s ease-out; 19 | -o-transition: all 0.3s ease-out; 20 | transition: all 0.3s ease-out; 21 | } 22 | 23 | .introjs-fixParent { 24 | z-index: auto !important; 25 | opacity: 1.0 !important; 26 | -webkit-transform: none !important; 27 | -moz-transform: none !important; 28 | -ms-transform: none !important; 29 | -o-transform: none !important; 30 | transform: none !important; 31 | } 32 | 33 | .introjs-showElement, 34 | tr.introjs-showElement > td, 35 | tr.introjs-showElement > th { 36 | z-index: 9999999 !important; 37 | } 38 | 39 | .introjs-disableInteraction { 40 | z-index: 99999999 !important; 41 | position: absolute; 42 | background-color: white; 43 | opacity: 0; 44 | filter: alpha(opacity=0); 45 | } 46 | 47 | .introjs-relativePosition, 48 | tr.introjs-showElement > td, 49 | tr.introjs-showElement > th { 50 | position: relative; 51 | } 52 | 53 | .introjs-helperLayer { 54 | box-sizing: content-box; 55 | position: absolute; 56 | z-index: 9999998; 57 | background-color: #FFF; 58 | background-color: rgba(255,255,255,.9); 59 | border: 1px solid #777; 60 | border: 1px solid rgba(0,0,0,.5); 61 | border-radius: 4px; 62 | box-shadow: 0 2px 15px rgba(0,0,0,.4); 63 | -webkit-transition: all 0.3s ease-out; 64 | -moz-transition: all 0.3s ease-out; 65 | -ms-transition: all 0.3s ease-out; 66 | -o-transition: all 0.3s ease-out; 67 | transition: all 0.3s ease-out; 68 | } 69 | 70 | .introjs-tooltipReferenceLayer { 71 | box-sizing: content-box; 72 | position: absolute; 73 | visibility: hidden; 74 | z-index: 10000000; 75 | background-color: transparent; 76 | -webkit-transition: all 0.3s ease-out; 77 | -moz-transition: all 0.3s ease-out; 78 | -ms-transition: all 0.3s ease-out; 79 | -o-transition: all 0.3s ease-out; 80 | transition: all 0.3s ease-out; 81 | } 82 | 83 | .introjs-helperLayer *, 84 | .introjs-helperLayer *:before, 85 | .introjs-helperLayer *:after { 86 | -webkit-box-sizing: content-box; 87 | -moz-box-sizing: content-box; 88 | -ms-box-sizing: content-box; 89 | -o-box-sizing: content-box; 90 | box-sizing: content-box; 91 | } 92 | 93 | .introjs-helperNumberLayer { 94 | box-sizing: content-box; 95 | position: absolute; 96 | visibility: visible; 97 | top: -16px; 98 | left: -16px; 99 | z-index: 9999999999 !important; 100 | padding: 2px; 101 | font-family: Arial, verdana, tahoma; 102 | font-size: 13px; 103 | font-weight: bold; 104 | color: white; 105 | text-align: center; 106 | text-shadow: 1px 1px 1px rgba(0,0,0,.3); 107 | background: #ff3019; /* Old browsers */ 108 | background: -webkit-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* Chrome10+,Safari5.1+ */ 109 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ff3019), color-stop(100%, #cf0404)); /* Chrome,Safari4+ */ 110 | background: -moz-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* FF3.6+ */ 111 | background: -ms-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* IE10+ */ 112 | background: -o-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* Opera 11.10+ */ 113 | background: linear-gradient(to bottom, #ff3019 0%, #cf0404 100%); /* W3C */ 114 | width: 20px; 115 | height:20px; 116 | line-height: 20px; 117 | border: 3px solid white; 118 | border-radius: 50%; 119 | filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3019', endColorstr='#cf0404', GradientType=0)"; /* IE6-9 */ 120 | filter: "progid:DXImageTransform.Microsoft.Shadow(direction=135, strength=2, color=ff0000)"; /* IE10 text shadows */ 121 | box-shadow: 0 2px 5px rgba(0,0,0,.4); 122 | } 123 | 124 | .introjs-arrow { 125 | border: 5px solid white; 126 | content:''; 127 | position: absolute; 128 | } 129 | .introjs-arrow.top { 130 | top: -10px; 131 | border-top-color:transparent; 132 | border-right-color:transparent; 133 | border-bottom-color:white; 134 | border-left-color:transparent; 135 | } 136 | .introjs-arrow.top-right { 137 | top: -10px; 138 | right: 10px; 139 | border-top-color:transparent; 140 | border-right-color:transparent; 141 | border-bottom-color:white; 142 | border-left-color:transparent; 143 | } 144 | .introjs-arrow.top-middle { 145 | top: -10px; 146 | left: 50%; 147 | margin-left: -5px; 148 | border-top-color:transparent; 149 | border-right-color:transparent; 150 | border-bottom-color:white; 151 | border-left-color:transparent; 152 | } 153 | .introjs-arrow.right { 154 | right: -10px; 155 | top: 10px; 156 | border-top-color:transparent; 157 | border-right-color:transparent; 158 | border-bottom-color:transparent; 159 | border-left-color:white; 160 | } 161 | .introjs-arrow.right-bottom { 162 | bottom:10px; 163 | right: -10px; 164 | border-top-color:transparent; 165 | border-right-color:transparent; 166 | border-bottom-color:transparent; 167 | border-left-color:white; 168 | } 169 | .introjs-arrow.bottom { 170 | bottom: -10px; 171 | border-top-color:white; 172 | border-right-color:transparent; 173 | border-bottom-color:transparent; 174 | border-left-color:transparent; 175 | } 176 | .introjs-arrow.left { 177 | left: -10px; 178 | top: 10px; 179 | border-top-color:transparent; 180 | border-right-color:white; 181 | border-bottom-color:transparent; 182 | border-left-color:transparent; 183 | } 184 | .introjs-arrow.left-bottom { 185 | left: -10px; 186 | bottom:10px; 187 | border-top-color:transparent; 188 | border-right-color:white; 189 | border-bottom-color:transparent; 190 | border-left-color:transparent; 191 | } 192 | 193 | .introjs-tooltip { 194 | box-sizing: content-box; 195 | font-size: 14px; 196 | position: absolute; 197 | visibility: visible; 198 | padding: 10px; 199 | background-color: white; 200 | min-width: 200px; 201 | max-width: 300px; 202 | border-radius: 3px; 203 | box-shadow: 0 1px 10px rgba(0,0,0,.4); 204 | -webkit-transition: opacity 0.1s ease-out; 205 | -moz-transition: opacity 0.1s ease-out; 206 | -ms-transition: opacity 0.1s ease-out; 207 | -o-transition: opacity 0.1s ease-out; 208 | transition: opacity 0.1s ease-out; 209 | } 210 | 211 | .introjs-tooltipbuttons { 212 | text-align: right; 213 | white-space: nowrap; 214 | } 215 | 216 | /* 217 | Buttons style by http://nicolasgallagher.com/lab/css3-github-buttons/ 218 | Changed by Afshin Mehrabani 219 | */ 220 | .introjs-button { 221 | box-sizing: content-box; 222 | position: relative; 223 | overflow: visible; 224 | display: inline-block; 225 | padding: 0.3em 0.8em; 226 | border: 1px solid #d4d4d4; 227 | margin: 0; 228 | text-decoration: none; 229 | text-shadow: 1px 1px 0 #fff; 230 | font: 11px/normal sans-serif; 231 | color: #333; 232 | white-space: nowrap; 233 | cursor: pointer; 234 | outline: none; 235 | background-color: #ececec; 236 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f4f4f4), to(#ececec)); 237 | background-image: -moz-linear-gradient(#f4f4f4, #ececec); 238 | background-image: -o-linear-gradient(#f4f4f4, #ececec); 239 | background-image: linear-gradient(#f4f4f4, #ececec); 240 | -webkit-background-clip: padding; 241 | -moz-background-clip: padding; 242 | -o-background-clip: padding-box; 243 | /*background-clip: padding-box;*/ /* commented out due to Opera 11.10 bug */ 244 | -webkit-border-radius: 0.2em; 245 | -moz-border-radius: 0.2em; 246 | border-radius: 0.2em; 247 | /* IE hacks */ 248 | zoom: 1; 249 | *display: inline; 250 | margin-top: 10px; 251 | } 252 | 253 | .introjs-button:hover { 254 | border-color: #bcbcbc; 255 | text-decoration: none; 256 | box-shadow: 0px 1px 1px #e3e3e3; 257 | } 258 | 259 | .introjs-button:focus, 260 | .introjs-button:active { 261 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ececec), to(#f4f4f4)); 262 | background-image: -moz-linear-gradient(#ececec, #f4f4f4); 263 | background-image: -o-linear-gradient(#ececec, #f4f4f4); 264 | background-image: linear-gradient(#ececec, #f4f4f4); 265 | } 266 | 267 | /* overrides extra padding on button elements in Firefox */ 268 | .introjs-button::-moz-focus-inner { 269 | padding: 0; 270 | border: 0; 271 | } 272 | 273 | .introjs-skipbutton { 274 | box-sizing: content-box; 275 | margin-right: 5px; 276 | color: #7a7a7a; 277 | } 278 | 279 | .introjs-prevbutton { 280 | -webkit-border-radius: 0.2em 0 0 0.2em; 281 | -moz-border-radius: 0.2em 0 0 0.2em; 282 | border-radius: 0.2em 0 0 0.2em; 283 | border-right: none; 284 | } 285 | 286 | .introjs-prevbutton.introjs-fullbutton { 287 | border: 1px solid #d4d4d4; 288 | -webkit-border-radius: 0.2em; 289 | -moz-border-radius: 0.2em; 290 | border-radius: 0.2em; 291 | } 292 | 293 | .introjs-nextbutton { 294 | -webkit-border-radius: 0 0.2em 0.2em 0; 295 | -moz-border-radius: 0 0.2em 0.2em 0; 296 | border-radius: 0 0.2em 0.2em 0; 297 | } 298 | 299 | .introjs-nextbutton.introjs-fullbutton { 300 | -webkit-border-radius: 0.2em; 301 | -moz-border-radius: 0.2em; 302 | border-radius: 0.2em; 303 | } 304 | 305 | .introjs-disabled, .introjs-disabled:hover, .introjs-disabled:focus { 306 | color: #9a9a9a; 307 | border-color: #d4d4d4; 308 | box-shadow: none; 309 | cursor: default; 310 | background-color: #f4f4f4; 311 | background-image: none; 312 | text-decoration: none; 313 | } 314 | 315 | .introjs-hidden { 316 | display: none; 317 | } 318 | 319 | .introjs-bullets { 320 | text-align: center; 321 | } 322 | .introjs-bullets ul { 323 | box-sizing: content-box; 324 | clear: both; 325 | margin: 15px auto 0; 326 | padding: 0; 327 | display: inline-block; 328 | } 329 | .introjs-bullets ul li { 330 | box-sizing: content-box; 331 | list-style: none; 332 | float: left; 333 | margin: 0 2px; 334 | } 335 | .introjs-bullets ul li a { 336 | box-sizing: content-box; 337 | display: block; 338 | width: 6px; 339 | height: 6px; 340 | background: #ccc; 341 | border-radius: 10px; 342 | -moz-border-radius: 10px; 343 | -webkit-border-radius: 10px; 344 | text-decoration: none; 345 | cursor: pointer; 346 | } 347 | .introjs-bullets ul li a:hover { 348 | background: #999; 349 | } 350 | .introjs-bullets ul li a.active { 351 | background: #999; 352 | } 353 | 354 | .introjs-progress { 355 | box-sizing: content-box; 356 | overflow: hidden; 357 | height: 10px; 358 | margin: 10px 0 5px 0; 359 | border-radius: 4px; 360 | background-color: #ecf0f1 361 | } 362 | .introjs-progressbar { 363 | box-sizing: content-box; 364 | float: left; 365 | width: 0%; 366 | height: 100%; 367 | font-size: 10px; 368 | line-height: 10px; 369 | text-align: center; 370 | background-color: #08c; 371 | } 372 | 373 | .introjsFloatingElement { 374 | position: absolute; 375 | height: 0; 376 | width: 0; 377 | left: 50%; 378 | top: 50%; 379 | } 380 | 381 | .introjs-fixedTooltip { 382 | position: fixed; 383 | } 384 | 385 | .introjs-hint { 386 | box-sizing: content-box; 387 | position: absolute; 388 | background: transparent; 389 | width: 20px; 390 | height: 15px; 391 | cursor: pointer; 392 | } 393 | .introjs-hint:focus { 394 | border: 0; 395 | outline: 0; 396 | } 397 | .introjs-hidehint { 398 | display: none; 399 | } 400 | 401 | .introjs-fixedhint { 402 | position: fixed; 403 | } 404 | 405 | .introjs-hint:hover > .introjs-hint-pulse { 406 | border: 5px solid rgba(60, 60, 60, 0.57); 407 | } 408 | 409 | .introjs-hint-pulse { 410 | box-sizing: content-box; 411 | width: 10px; 412 | height: 10px; 413 | border: 5px solid rgba(60, 60, 60, 0.27); 414 | -webkit-border-radius: 30px; 415 | -moz-border-radius: 30px; 416 | border-radius: 30px; 417 | background-color: rgba(136, 136, 136, 0.24); 418 | z-index: 10; 419 | position: absolute; 420 | -webkit-transition: all 0.2s ease-out; 421 | -moz-transition: all 0.2s ease-out; 422 | -ms-transition: all 0.2s ease-out; 423 | -o-transition: all 0.2s ease-out; 424 | transition: all 0.2s ease-out; 425 | } 426 | .introjs-hint-no-anim .introjs-hint-dot { 427 | -webkit-animation: none; 428 | -moz-animation: none; 429 | animation: none; 430 | } 431 | .introjs-hint-dot { 432 | box-sizing: content-box; 433 | border: 10px solid rgba(146, 146, 146, 0.36); 434 | background: transparent; 435 | -webkit-border-radius: 60px; 436 | -moz-border-radius: 60px; 437 | border-radius: 60px; 438 | height: 50px; 439 | width: 50px; 440 | -webkit-animation: introjspulse 3s ease-out; 441 | -moz-animation: introjspulse 3s ease-out; 442 | animation: introjspulse 3s ease-out; 443 | -webkit-animation-iteration-count: infinite; 444 | -moz-animation-iteration-count: infinite; 445 | animation-iteration-count: infinite; 446 | position: absolute; 447 | top: -25px; 448 | left: -25px; 449 | z-index: 1; 450 | opacity: 0; 451 | } 452 | 453 | @-moz-keyframes introjspulse { 454 | 0% { 455 | -moz-transform: scale(0); 456 | opacity: 0.0; 457 | } 458 | 25% { 459 | -moz-transform: scale(0); 460 | opacity: 0.1; 461 | } 462 | 50% { 463 | -moz-transform: scale(0.1); 464 | opacity: 0.3; 465 | } 466 | 75% { 467 | -moz-transform: scale(0.5); 468 | opacity: 0.5; 469 | } 470 | 100% { 471 | -moz-transform: scale(1); 472 | opacity: 0.0; 473 | } 474 | } 475 | 476 | @-webkit-keyframes introjspulse { 477 | 0% { 478 | -webkit-transform: scale(0); 479 | opacity: 0.0; 480 | } 481 | 25% { 482 | -webkit-transform: scale(0); 483 | opacity: 0.1; 484 | } 485 | 50% { 486 | -webkit-transform: scale(0.1); 487 | opacity: 0.3; 488 | } 489 | 75% { 490 | -webkit-transform: scale(0.5); 491 | opacity: 0.5; 492 | } 493 | 100% { 494 | -webkit-transform: scale(1); 495 | opacity: 0.0; 496 | } 497 | } 498 | -------------------------------------------------------------------------------- /assets/img/edri_logo_WEB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sidtechnical/hakuna-metadata-1/9d0d4e48b57d6422468389e1e089818cdacf9eb7/assets/img/edri_logo_WEB.png -------------------------------------------------------------------------------- /assets/img/lobbyletter_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sidtechnical/hakuna-metadata-1/9d0d4e48b57d6422468389e1e089818cdacf9eb7/assets/img/lobbyletter_banner.png -------------------------------------------------------------------------------- /assets/pages/README.md: -------------------------------------------------------------------------------- 1 | ########################## 2 | 3 | #the following code snippet is used in the tool with minimal changes and due credits to the original author. - Sid 4 | ########################## 5 | 6 | 7 | # Browsing History Analyzer 8 | 9 | Browsing History Analyzer is a simple analytics and visualization Python app, dashboard powered by Twitter-bootstrap and D3.js. 10 | 11 | ##### All you need to do: 12 | - Run the python script 13 | - View your analysed browsing history 14 | 15 | ### Tech 16 | 17 | Browsing History Analyzer uses a number of open source projects to work properly: 18 | 19 | * [Pandas] - pandas is an open source, library providing high-performance, easy-to-use data structures and data analysis tools for the Python 20 | * [Twitter Bootstrap] - great UI boilerplate for modern web apps 21 | * [D3.js] - JavaScript library for manipulating documents based on data, helps you bring data to life using HTML, SVG, and CSS. 22 | 23 | And of course Browsing History Analyzer itself is open source with a [public repository][Browsing-History-Analyzer] on GitHub. 24 | 25 | ### Installation 26 | 27 | You need Python, its dependency packages and pandas installed globally: 28 | 29 | ```sh 30 | $ git clone https://github.com/Dineshkarthik/browsing_history_viz 31 | $ cd browsing_history_viz 32 | $ pip install -r requirements.txt 33 | $ python browsing_history_viz.py 34 | ``` 35 | 36 | 37 | License 38 | ---- 39 | 40 | MIT 41 | 42 | 43 | **Free Software, Hell Yeah!** 44 | 45 | 46 | 47 | [D3.js]:14 | * Usage: {@code java -mx400m -cp "*" NERDemo [serializedClassifier [fileName]] } 15 | *
16 | * If arguments aren't specified, they default to 17 | * classifiers/english.all.3class.distsim.crf.ser.gz and some hardcoded sample text. 18 | * If run with arguments, it shows some of the ways to get k-best labelings and 19 | * probabilities out with CRFClassifier. If run without arguments, it shows some of 20 | * the alternative output formats that you can get. 21 | *
22 | * To use CRFClassifier from the command line: 23 | *
24 | * {@code java -mx400m edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier [classifier] -textFile [file] } 25 | *
26 | * Or if the file is already tokenized and one word per line, perhaps in 27 | * a tab-separated value format with extra columns for part-of-speech tag, 28 | * etc., use the version below (note the 's' instead of the 'x'): 29 | *
30 | * {@code java -mx400m edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier [classifier] -testFile [file] } 31 | *32 | * 33 | * @author Jenny Finkel 34 | * @author Christopher Manning 35 | */ 36 | 37 | public class NERDemo { 38 | 39 | public static void main(String[] args) throws Exception { 40 | 41 | String serializedClassifier = "classifiers/english.all.3class.distsim.crf.ser.gz"; 42 | 43 | if (args.length > 0) { 44 | serializedClassifier = args[0]; 45 | } 46 | 47 | AbstractSequenceClassifier
P.S: This tool works only if you store your browsing history and only if you have browsed Facebook, Google or Twitter.
25 | 26 |While you are browsing, if the content of the websites that you visit is the "data", then your browsing history is your "metadata". This simple tool build some visualizations based on that metadata to explain the hidden power in it.
27 | 28 |Note that, most of the following visualizations are interactive. You can zoom-in, zoom-out or click different parts of it to understand the graphs better.
29 | 30 | 31 |Since every profile you visit in Facebook or Twitter is identified by unique URLs, the following graphs try to present them as a psuedo-social graph. Your browsing history (URLs) pertaining to Facebook or Twitter are first grouped by the number of times you have visited them (visit count), and then by Frecency, an indicator of frequency + recency.
55 | 56 |In the links below to the graphs, start by clicking on the cicrles which are tagged with largest numbers and does not contain any other circles inside. These are probably your partners, family members or close friends. Now, try exploring those circles which contains several inner circles. You will probably notice people from different social circles (such as work place, school friends, role models, etc..) grouped together. This means even though they may not be connected directly with each other, you have similar amount of interest in them.
57 | 58 |This tool is built to be used by complete tech novices. We just parsed the URLs in the browsing history to fetch the names of the people whose profile you have visited. You might notice some numbers instead than names for the same reason in the psuedo-social spheres.
66 | 67 |If you have any issues or suggestion, please send an email to sidtechnical@gmail.com.
68 | 69 | 70 |