diff --git a/app/configuration/controllers/date-time-controller.html b/app/configuration/controllers/date-time-controller.html
new file mode 100644
index 0000000..cd760b4
--- /dev/null
+++ b/app/configuration/controllers/date-time-controller.html
@@ -0,0 +1,5 @@
+<div id="configuration-date-time">
+    <div class="row column">
+        <h1>Date time</h1>
+    </div>
+</div>
\ No newline at end of file
diff --git a/app/configuration/controllers/date-time-controller.js b/app/configuration/controllers/date-time-controller.js
new file mode 100644
index 0000000..75662cc
--- /dev/null
+++ b/app/configuration/controllers/date-time-controller.js
@@ -0,0 +1,26 @@
+/**
+ * Controller for date-time
+ *
+ * @module app/configuration
+ * @exports dateTimeController
+ * @name dateTimeController
+ * @version 0.1.0
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.configuration')
+        .controller('dateTimeController', [
+            '$scope', 
+            '$window', 
+            'APIUtils', 
+            'dataService',
+            function($scope, $window, APIUtils, dataService){
+                $scope.dataService = dataService;
+            }
+        ]
+    );
+
+})(angular);
diff --git a/app/configuration/controllers/file-controller.html b/app/configuration/controllers/file-controller.html
new file mode 100644
index 0000000..0840b81
--- /dev/null
+++ b/app/configuration/controllers/file-controller.html
@@ -0,0 +1,5 @@
+<div id="configuration-file">
+    <div class="row column">
+        <h1>File</h1>
+    </div>
+</div>
\ No newline at end of file
diff --git a/app/configuration/controllers/file-controller.js b/app/configuration/controllers/file-controller.js
new file mode 100644
index 0000000..3870f11
--- /dev/null
+++ b/app/configuration/controllers/file-controller.js
@@ -0,0 +1,26 @@
+/**
+ * Controller for file
+ *
+ * @module app/configuration
+ * @exports fileController
+ * @name fileController
+ * @version 0.1.0
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.configuration')
+        .controller('fileController', [
+            '$scope', 
+            '$window', 
+            'APIUtils', 
+            'dataService',
+            function($scope, $window, APIUtils, dataService){
+                $scope.dataService = dataService;
+            }
+        ]
+    );
+
+})(angular);
diff --git a/app/configuration/controllers/network-controller.html b/app/configuration/controllers/network-controller.html
new file mode 100644
index 0000000..cea74d9
--- /dev/null
+++ b/app/configuration/controllers/network-controller.html
@@ -0,0 +1,5 @@
+<div id="configuration-network">
+    <div class="row column">
+        <h1>Network</h1>
+    </div>
+</div>
\ No newline at end of file
diff --git a/app/configuration/controllers/network-controller.js b/app/configuration/controllers/network-controller.js
new file mode 100644
index 0000000..31b5030
--- /dev/null
+++ b/app/configuration/controllers/network-controller.js
@@ -0,0 +1,26 @@
+/**
+ * Controller for network
+ *
+ * @module app/configuration
+ * @exports networkController
+ * @name networkController
+ * @version 0.1.0
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.configuration')
+        .controller('networkController', [
+            '$scope', 
+            '$window', 
+            'APIUtils', 
+            'dataService',
+            function($scope, $window, APIUtils, dataService){
+                $scope.dataService = dataService;
+            }
+        ]
+    );
+
+})(angular);
diff --git a/app/configuration/controllers/security-controller.html b/app/configuration/controllers/security-controller.html
new file mode 100644
index 0000000..bcbfa28
--- /dev/null
+++ b/app/configuration/controllers/security-controller.html
@@ -0,0 +1,5 @@
+<div id="configuration-security">
+    <div class="row column">
+        <h1>Security</h1>
+    </div>
+</div>
\ No newline at end of file
diff --git a/app/configuration/controllers/security-controller.js b/app/configuration/controllers/security-controller.js
new file mode 100644
index 0000000..e3a7778
--- /dev/null
+++ b/app/configuration/controllers/security-controller.js
@@ -0,0 +1,26 @@
+/**
+ * Controller for security
+ *
+ * @module app/configuration
+ * @exports securityController
+ * @name securityController
+ * @version 0.1.0
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.configuration')
+        .controller('securityController', [
+            '$scope', 
+            '$window', 
+            'APIUtils', 
+            'dataService',
+            function($scope, $window, APIUtils, dataService){
+                $scope.dataService = dataService;
+            }
+        ]
+    );
+
+})(angular);
diff --git a/app/configuration/index.js b/app/configuration/index.js
new file mode 100644
index 0000000..a68d5a0
--- /dev/null
+++ b/app/configuration/index.js
@@ -0,0 +1,46 @@
+/**
+ * A module for the configuration
+ *
+ * @module app/configuration/index
+ * @exports app/configuration/index
+ * @version 0.0.1
+ */
+
+window.angular && (function (angular) {
+    'use strict';
+
+    angular
+        .module('app.configuration', [
+            'ngRoute',
+            'app.constants',
+            'app.common.services'
+        ])
+        // Route configuration
+        .config(['$routeProvider', function ($routeProvider) {
+            $routeProvider
+                .when('/configuration/network', {
+                    'templateUrl': 'configuration/controllers/network-controller.html',
+                    'controller': 'networkController',
+                    authenticated: true
+                })
+                .when('/configuration/security', {
+                    'templateUrl': 'configuration/controllers/security-controller.html',
+                    'controller': 'securityController',
+                    authenticated: true
+                }).when('/configuration/date-time', {
+                    'templateUrl': 'configuration/controllers/date-time-controller.html',
+                    'controller': 'dateTimeController',
+                    authenticated: true
+                })
+                .when('/configuration/file', {
+                    'templateUrl': 'configuration/controllers/file-controller.html',
+                    'controller': 'fileController',
+                    authenticated: true
+                }).when('/configuration', {
+                    'templateUrl': 'configuration/controllers/network-controller.html',
+                    'controller': 'networkController',
+                    authenticated: true
+                });
+        }]);
+
+})(window.angular);
diff --git a/app/configuration/styles/date-time.scss b/app/configuration/styles/date-time.scss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/configuration/styles/date-time.scss
diff --git a/app/configuration/styles/file.scss b/app/configuration/styles/file.scss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/configuration/styles/file.scss
diff --git a/app/configuration/styles/index.scss b/app/configuration/styles/index.scss
new file mode 100644
index 0000000..7c8006a
--- /dev/null
+++ b/app/configuration/styles/index.scss
@@ -0,0 +1,4 @@
+@import "./network.scss";
+@import "./security.scss";
+@import "./date-time.scss";
+@import "./file.scss";
\ No newline at end of file
diff --git a/app/configuration/styles/network.scss b/app/configuration/styles/network.scss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/configuration/styles/network.scss
diff --git a/app/configuration/styles/security.scss b/app/configuration/styles/security.scss
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/configuration/styles/security.scss
