diff --git a/www/js/controllers.js b/www/js/controllers.js
index 775ed855c8e69456fcfe74543a1d5a8dc087269b..2f0b53ec8e28bdb83f4121928972ea4c77c45b5b 100644
--- a/www/js/controllers.js
+++ b/www/js/controllers.js
@@ -1,14 +1,19 @@
 angular.module('app.controllers', [])
 
 .controller('ceitificatorCtrl', function($scope, $ionicPlatform, EventsService) {
-    $ionicPlatform.ready(function () {
+    $ionicPlatform.ready(function() {
         $scope.events = EventsService.getEvents();
     });
+    $scope.doRefresh = function() {
+        $scope.events = EventsService.getEvents();
+        $scope.$broadcast('scroll.refreshComplete');
+        $scope.$apply();
+  };
 })
 
 .controller('novoEventoCtrl', function($scope, EventsService) {
     $scope.formData = {};
-    $scope.addNewEvent = function () {
+    $scope.addNewEvent = function() {
         // insere um novo evento no banco
         if ((!$scope.formData.eventName || $scope.formData.eventName.length === 0 || !$scope.formData.eventName.trim()) ||
             (!$scope.formData.eventDesc || $scope.formData.eventDesc.length === 0 || !$scope.formData.eventDesc.trim()) ||
@@ -19,7 +24,7 @@ angular.module('app.controllers', [])
         else // se tá tudo certo, manda inserir o novo evento no banco
         	EventsService.addNewEvent({eventName: $scope.formData.eventName, eventDesc: $scope.formData.eventDesc, eventDate: $scope.formData.eventDate, eventPlace: $scope.formData.eventPlace, eventHours: $scope.formData.eventHours});
     };
-    $scope.showCertText = function () {
+    $scope.showCertText = function() {
         // mostra o texto final (ou quase) que ficará no certificado
         alert("Certificamos que !NOME! participou " + $scope.formData.eventDesc + " " + $scope.formData.eventName + ", realizada " + $scope.formData.eventDate + " na Universidade Federal do Paraná, " + $scope.formData.eventPlace + ", em Curitiba – PR, com a carga horária total de " + $scope.formData.eventHours + ".");
     };
@@ -34,13 +39,19 @@ angular.module('app.controllers', [])
             function (result) {
                 if (result && result.text.split(',').length == 3) {
                     // pega o que veio do scanner, separa nos devidos campos e insere no banco
-                    PeopleService.addPersonInEvent({name: result.text.split(',')[0].trim(), grr: result.text.split(',')[1].trim(), email: result.text.split(',')[2].trim()}, eventX.id);
+                    PeopleService.addPersonInEvent({name: result.text.split(',')[0].trim(), grr: result.text.split(',')[1].trim(), email: result.text.split(',')[2].trim()}, eventX.id)
+                    .then(function(result) {
+                        // atualiza a view
+                        $scope.people = PeopleService.getPeople(eventX.id);
+                    }, function(err){
+                        // se deu erro, não precisa atualizar a view
+                        console.log(err);
+                    });
                 }
             },
             function (error) {
                 alert("Scanning failed: " + error);
             }
         );
-		$scope.people = PeopleService.getPeople(eventX.id);
     };
 });
diff --git a/www/js/services.js b/www/js/services.js
index dd76b8a36075aef3af7e8dcd622aefafcc8453fd..002bd8f45f48dce5c3db91e2debe58ba98d26fd5 100644
--- a/www/js/services.js
+++ b/www/js/services.js
@@ -31,7 +31,7 @@ angular.module('app.services', [])
             $cordovaSQLite.execute(db, query, [event.eventName, event.eventDesc, event.eventDate, event.eventPlace, event.eventHours])
             .then(function(res) {
                 console.log("res: " + res);
-            }, function (err) {
+            }, function(err) {
                 console.error(err);
             });
         },
@@ -47,12 +47,12 @@ angular.module('app.services', [])
             }, function(err) {
                 console.log(err);
             });
-            return dfd.promise
+            return dfd.promise;
         }
     }
 })
 
-.service('PeopleService', function($cordovaSQLite) {
+.service('PeopleService', function($cordovaSQLite, $q) {
     return {
         getPeople: function(eventId) {
             // pega no banco todas as pessoas
@@ -70,6 +70,7 @@ angular.module('app.services', [])
         },
         addPersonInEvent: function(person, eventId) {
             // procura a pessoa, se existir, insere direto na tabela people_events, se não existir, cria a pessoa primeiro
+            var dfd = $q.defer();
             var db = $cordovaSQLite.openDB({name: 'ceitificator.db', iosDatabaseLocation: 'default'});
             var query = "SELECT * FROM people WHERE name=\"" + person.name + "\"AND grr=\"" + person.grr + "\"AND email=\"" + person.email + "\"";
             $cordovaSQLite.execute(db, query)
@@ -84,11 +85,14 @@ angular.module('app.services', [])
                         $cordovaSQLite.execute(db, query, [eventId, res.insertId])
                         .then(function(res) {
                             console.log("inseriu em people_events");
-                        }, function (err) {
+                            dfd.resolve(res);
+                        }, function(err) {
                             console.error(err);
+                            dfd.resolve(err);
                         });
-                    }, function (err) {
+                    }, function(err) {
                         console.error(err);
+                        dfd.resolve(err);
                     });
                 }
                 else{
@@ -98,13 +102,17 @@ angular.module('app.services', [])
                     $cordovaSQLite.execute(db, query, [eventId, res.rows.item(0).id])
                     .then(function(res) {
                         console.log("inseriu em people_events");
-                    }, function (err) {
+                        dfd.resolve(res);
+                    }, function(err) {
                         console.error(err);
+                        dfd.resolve(err);
                     });
                 }
-            }, function (err) {
+            }, function(err) {
                 console.error(err);
+                dfd.resolve(err);
             });
+            return dfd.promise;
         }
     }
 });
diff --git a/www/templates/ceitificator.html b/www/templates/ceitificator.html
index b692e2d227b4acceebdae8c99d20e20e536a8cdf..b0ca49b0cd56d0a3b0859dea996da673e3eed331 100644
--- a/www/templates/ceitificator.html
+++ b/www/templates/ceitificator.html
@@ -1,12 +1,13 @@
 <ion-view title="Ceitificator">
-    <ion-content overflow-scroll="true" padding="true" scroll="false" class="has-header">
+    <ion-content overflow-scroll="true" padding="true" class="has-header">
         <h1 id="ceitificator-heading1" style="color:#000000;text-align:center;">Ceitificator</h1>
         <div class="list card">
             <div class="item item-body">
-                <a ui-sref="novoEvento" id="ceitificator-button2" class="button button-positive  button-block icon-right ion-android-add-circle">Criar Novo</a>
+                <a ui-sref="novoEvento" id="ceitificator-button1" class="button button-positive button-block icon-right ion-android-add-circle">Criar Novo</a>
                 <ion-list>
                     <ion-item ng-repeat="event in events" ui-sref='listaDePresenAEventoX({eventId: event.id})'>{{event.id}}: {{event.name}} - {{event.date}} - {{event.hours}}</ion-item>
                 </ion-list>
+                <button id="ceitificator-button2" class="button button-positive button-block icon-right ion-ios-refresh" on-touch="doRefresh()">Atualizar</button>
             </div>
         </div>
     </ion-content>
diff --git a/www/templates/listaDePresenAEventoX.html b/www/templates/listaDePresenAEventoX.html
index 17be38a2b521fa7ac1ac798bda420b9b1bd3942b..cf7c5e1355e7461b3c2c886d4b6fd0c3f9adb7b2 100644
--- a/www/templates/listaDePresenAEventoX.html
+++ b/www/templates/listaDePresenAEventoX.html
@@ -9,7 +9,7 @@
                 <p><strong>Horas:</strong> {{eventX.hours}}</p>
             </div>
             <div class="item item-body">
-                <button id="listaDePresenAEventoX-button9" class="button button-positive  button-block icon-right ion-qr-scanner" ng-click="scan()">Adicionar</button>
+                <button id="listaDePresenAEventoX-button1" class="button button-positive button-block icon-right ion-qr-scanner" on-touch="scan()">Adicionar</button>
                 <ion-list>
                     <ion-item ng-repeat="person in people">{{person.name}} - {{person.grr}} - {{person.email}}</ion-item>
                 </ion-list>