I’ve been following a few tutorials that describe declaring a MainController. However the tutorials a pre AngularJS 1.3x and are no longer valid. Previous AngularJS allowed you to define a controller globally . As of 1.3x this is no longer the case and you must declare your Controllers inside angular modules. Here’s an example:
var githubViewerApp = angular.module('githubViewer', []);
Declare a new module and give it a unique name. Then assign module to a variable.
var MainController = function MainController($scope, $http) { }
Create your MainController. This is where all your functions and service calls will sit.
githubViewerApp.controller("MainController", ['$scope', '$http', MainController]);
Now bind the MainController variable to the module variable. The variables with $ signs are included in the function parameters to help support minification. Without this minifiers would rename the variable and angular would be unable to bind the parameters to the view.