diff --git a/web/README b/web/README
index 2a7c6461ea5c27a15c3071f2303277d061101d79..b7f446b361cdb5d335e1298707ca5a781e1de816 100644
--- a/web/README
+++ b/web/README
@@ -7,11 +7,14 @@ Development
 To setup the development environment, run the following commands:
 
 npm install
+
 export PATH="$(pwd)/node_modules/.bin:$PATH"  # you probabily should put this
                                               # in your .bashrc or equivalent
 bower install
-cp config.example.js config.js
+# If the last level of net usage graph doesn't work install this extra repo
+bower install http://github.com:highslide-software/highcharts.com.git
 
+cp config.example.js config.js
 
 Edit config.js set the options as needed. Then continue by executing:
 
diff --git a/web/app/partials/attendance.availability.nodata.html b/web/app/partials/attendance.availability.nodata.html
new file mode 100644
index 0000000000000000000000000000000000000000..b0eae8e0ff75db1833c28dc92012a4d3959249c8
--- /dev/null
+++ b/web/app/partials/attendance.availability.nodata.html
@@ -0,0 +1,5 @@
+<h1>Disponibilidade</h1>
+<p>Análise das máquinas com o agente de coleta instalado.</p>
+<p>Clique no gráfico de barras para visualizar a situação das máquinas no próximo nível.</p>
+
+<h3>Não há dados</h3>
\ No newline at end of file
diff --git a/web/app/partials/attendance.cidades-digitais.html b/web/app/partials/attendance.cidades-digitais.html
new file mode 100644
index 0000000000000000000000000000000000000000..531ac5573acacb50b97ab7c2f3ba3e5ecb30ce70
--- /dev/null
+++ b/web/app/partials/attendance.cidades-digitais.html
@@ -0,0 +1,16 @@
+<div class="container">
+    <div class="attendance">
+
+        <div class="attendance-menu-left lightblue">
+            <span class="icon icon-cidades-digitais"></span>
+
+            <div class="menu-header">Gráficos</div>
+            <ul class="menu-body">
+                <li><a href="#/attendance/cidades-digitais/availability">Disponibilidade</a></li>
+                <li><a href="#/attendance/cidades-digitais/network_usage">Uso da Rede</a></li>
+            </ul>
+        </div>
+
+        <div class="attendance-content" ui-view></div>
+    </div>
+</div>
diff --git a/web/app/partials/attendance.gesac.html b/web/app/partials/attendance.gesac.html
index 8157ada2df34d2fb944249d4e599c123f070e52c..3061be60e8969b4612b20221d59df04c312fbe6c 100644
--- a/web/app/partials/attendance.gesac.html
+++ b/web/app/partials/attendance.gesac.html
@@ -7,8 +7,6 @@
             <div class="menu-header">Gráficos</div>
             <ul class="menu-body">
                 <li><a href="#/attendance/gesac/availability">Disponibilidade</a></li>
-                <li><a href="">Inventário</a></li>
-                <li><a href="">Alteração de Inventário</a></li>
                 <li><a href="#/attendance/gesac/network_usage">Uso da Rede</a></li>
             </ul>
         </div>
diff --git a/web/app/partials/attendance.network_usage.nodata.html b/web/app/partials/attendance.network_usage.nodata.html
new file mode 100644
index 0000000000000000000000000000000000000000..6160c1260b4fadd242e0909105e4141bc05d74db
--- /dev/null
+++ b/web/app/partials/attendance.network_usage.nodata.html
@@ -0,0 +1,5 @@
+<h1>Uso da Rede</h1>
+<p>Análise das máquinas com o agente de coleta instalado.</p>
+<p>Clique no gráfico de barras para visualizar a situação das máquinas no próximo nível.</p>
+
+<h3>Não há dados</h3>
\ No newline at end of file
diff --git a/web/app/partials/install.html b/web/app/partials/install.html
index 45c32774a4350ecbc6e870d5e2a9781a0b6fc10d..c3bb03d860ccd3b9e6ee8f2a90f93044c345004b 100644
--- a/web/app/partials/install.html
+++ b/web/app/partials/install.html
@@ -1,9 +1,12 @@
 <div class="container">
     <div class="col-lg-6 col-lg-offset-3">
         <p>Selecione o tipo de projeto que deseja instalar, então seu estado.
-        As cidades serão filtradas de acordo com seu estado.</p>
+        Os municípios serão filtradas de acordo com seu estado.</p>
 
-        <p>Após selecionar sua cidade, selecione o nome do estabelecimento.</p>
+        <p>Após selecionar seu município, selecione o nome do estabelecimento.</p>
+
+        <p><b><i>*Atenção: caso você possua o Linux Educacional 5.0 mc instalado no
+            seu telecentro não é necessária a instalação do agente de acompanhamento.</i></b></p>
 
         <form class="form-horizontal well" role="form">
             <div class="form-group">
@@ -12,7 +15,6 @@
                     <select id="project" class="form-control">
                         <option value="telecentro">Telecentro BR</option>
                         <option value="gesac">GESAC</option>
-                        <option value="cidadesdigitais">Cidades Digitais</option>
                     </select>
                 </div>
             </div>
@@ -32,6 +34,14 @@
                     </select>
                 </div>
             </div>
+
+            <div class="form-group">
+                <label for="name" class="col-lg-2 control-label">Nome:</label>
+                <div class="col-lg-10">
+                    <select id="name" class="form-control">
+                    </select>
+                </div>
+            </div>
         </form>
 
         <form class="form-horizontal well" role="form">
diff --git a/web/app/partials/search.html b/web/app/partials/search.html
index 0a2ce97f541b027fd55d3102eca87dc0a9365b1d..504e32621c2b23edf847fb37443d6021694b8fa9 100644
--- a/web/app/partials/search.html
+++ b/web/app/partials/search.html
@@ -3,7 +3,7 @@
         <ul ng-repeat="filter in filters">
             <li class="header">{{ filter.title }}:</li>
             <li class="checkbox" ng-repeat="opt in filter.options">
-                <label><input type="checkbox" ng-model="opt.value" ng-click="updateFilters()"> {{ opt.title }}</label>
+                <label><input type="checkbox" ng-model="opt.value" ng-click="updateFilters(filter, opt)"> {{ opt.title }}</label>
             </li>
             <li class="checkbox" ng-show="filter.more"><a href="">outros...</a></li>
         </ul>
diff --git a/web/assets/js/attendance.js b/web/assets/js/attendance.js
index 808c042a637a042be2561e31b009a1c7a2d2b048..e37843fb91fc6b3663429183eaa01c96d14c2a78 100644
--- a/web/assets/js/attendance.js
+++ b/web/assets/js/attendance.js
@@ -32,6 +32,23 @@ angular.module('datasid.attendance', []).
                 project: 'gesac'
             }).
 
+            state('attendance.cidades-digitais', {
+                abstract: true,
+                url: '/cidades-digitais',
+                templateUrl: 'partials/attendance.cidades-digitais.html',
+                section: 'attendance',
+                project: 'cidades-digitais'
+            }).
+
+            /* AVAILABILITY CIDADES DIGITAIS */
+            state('attendance.cidades-digitais.availability', {
+                url: '/availability',
+                controller: 'AvailCtrl',
+                templateUrl: 'partials/attendance.availability.nodata.html',
+                section: 'attendance',
+                project: 'cidades-digitais'
+            }).            
+
             /* AVAILABILITY TELECENTROS BR*/
             state('attendance.telecentrosbr.availability', {
                 url: '/availability',
@@ -98,6 +115,15 @@ angular.module('datasid.attendance', []).
                 project: 'gesac'
             }).
 
+            /* NETWORK USAGE CIDADES DIGITAIS */
+            state('attendance.cidades-digitais.network_usage', {
+                url: '/cidades-digitais',
+                controller: 'NetworkUsageCtrl',
+                templateUrl: 'partials/attendance.network_usage.nodata.html',
+                section: 'attendance',
+                project: 'cidades-digitais'
+            }).
+
             /* NETWORK USAGE TELECENTROS BR */
             state('attendance.telecentrosbr.network_usage', {
                 url: '/network_usage',
diff --git a/web/assets/js/attendance.search.js b/web/assets/js/attendance.search.js
index 295b62fa5e29a95f7d68560ca0837ce98f79415e..d88470fbb35d67bd65fc8cf7bab433df0d4b6c63 100644
--- a/web/assets/js/attendance.search.js
+++ b/web/assets/js/attendance.search.js
@@ -76,10 +76,11 @@ angular.module('datasid.attendance.search', []).
                 key: 'project',
                 title: 'Projeto',
                 options: [
-                    { key: 'TLBR', title: 'TLBR', value: true },
-                    { key: 'TLBR/GESAC', title: 'TLBR/GESAC', value: true },
-                    { key: 'GESAC', title: 'GESAC', value: true },
-                    { key: 'Cidades Digitais', title: 'Cidades Digitais', value: true }
+                    { key: 'ALL', title: 'TODOS', value: true },
+                    { key: 'TLBR', title: 'TLBR', value: false },
+                    { key: 'TLBR/GESAC', title: 'TLBR e GESAC', value: false },
+                    { key: 'GESAC', title: 'GESAC', value: false },
+                    { key: 'Cidades Digitais', title: 'Cidades Digitais', value: false }
                 ],
                 more: false
             },
@@ -87,6 +88,7 @@ angular.module('datasid.attendance.search', []).
                 key: 'location',
                 title: 'Localização',
                 options: [
+                    { key: 'ALL', title: 'TODOS', value: true },
                     { key: 3106200, title: 'Belo Horizonte, MG', value: false },
                     { key: 2927408, title: 'Salvador, BA', value: false },
                     { key: 1501402, title: 'Belém, PA', value: false },
@@ -158,16 +160,47 @@ angular.module('datasid.attendance.search', []).
             });
         };
 
-        $scope.updateFilters = function () {
+        $scope.updateFilters = function (filterIn, optionIn) {
             $scope.compiledFilters = {};
 
+            if (filterIn) {
+                // We get the state in which the optionIn was BEFORE the user
+                // have checked it, so here we switch it's value.
+                // FIXME: Not sure if this should be like this..
+                optionIn.value = !optionIn.value;
+                // user just checked ALL
+                // uncheck everything else
+                if (optionIn.key == 'ALL') {
+                    if (optionIn.value) {
+                        for (var i=0; i<filterIn.options.length; i++) {
+                            if (filterIn.options[i] != 'ALL') {
+                                filterIn.options[i].value = false;    
+                            }
+                        }
+                    } else {
+                        // FIXME: This was supposed to disallow the user to
+                        // unselect the ALL checkbox when no other checkbox is
+                        // checked, but it doesn't work.
+                        optionIn.value = true;                        
+                    }
+                // user checked something else, let's uncheck ALL
+                } else {
+                    for (var i=0; i<filterIn.options.length; i++) {
+                        if (filterIn.options[i].key == 'ALL') {
+                            filterIn.options[i].value = false;    
+                        }
+                    }
+                }
+            }
+
             for (var i=0; i < $scope.filters.length; i++) {
                 var filter = $scope.filters[i];
 
                 $scope.compiledFilters[filter.key] = [];
                 for (var j=0; j < filter.options.length; j++) {
-                    if (filter.options[j].value)
+                    if (filter.options[j].value && filter.options[j].key != 'ALL') {
                         $scope.compiledFilters[filter.key].push(filter.options[j].key);
+                    }
                 }
             }
 
@@ -189,4 +222,4 @@ angular.module('datasid.attendance.search', []).
         };
 
         $scope.updateFilters();
-    });
\ No newline at end of file
+    });
diff --git a/web/assets/less/attendance.less b/web/assets/less/attendance.less
index c70d1cbd90ba176927d424df3df967685251a8e4..3b2cf7ad64b8faafdd5b5656deba8015eb4a4489 100644
--- a/web/assets/less/attendance.less
+++ b/web/assets/less/attendance.less
@@ -115,6 +115,18 @@
     }
 }
 
+.attendance-menu-left.lightblue {
+    .menu-header {
+        background-color: #009ac8;
+    }
+
+    .menu-body {
+        a {
+            color: #009ac8;
+        }
+    }
+}
+
 .attendance-content {
     width: 700px;
     float: left;
diff --git a/web/assets/less/main.less b/web/assets/less/main.less
index 8c945c0166da418e128698276cb8c2521a8379af..b5eaf18f5f1014318ee1e28f6fb89d9610fb10b6 100644
--- a/web/assets/less/main.less
+++ b/web/assets/less/main.less
@@ -134,3 +134,14 @@ a {
         padding-top: 20px;
     }
 }
+
+p.note {
+     color: #000000;
+     border: solid 1px #6CC1FF;
+     background-color: #BBD9FF;
+     -moz-border-radius: 6px;
+     -webkit-border-radius: 6px;
+     border-radius: 6px;
+     padding: 14px 20px;
+     mc-auto-number-format: '{b}Note: {/b}';
+}
\ No newline at end of file