Index: src/main/resources/static/js/business_admin.js
===================================================================
--- src/main/resources/static/js/business_admin.js	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/resources/static/js/business_admin.js	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -7,5 +7,4 @@
     }).then(function (data) {
         business = data;
-        console.log(business);
         var $header = $("#header");
 
@@ -74,3 +73,76 @@
         event.preventDefault();
     });
+
+    $("#update_services_button").click(function () {
+        businesses = [];
+        console.log("Gjoko");
+        servicesObj = [];
+        $.each($('#predefined_services_admin_panel input:checked').siblings(), function (index, label) {
+
+            let service = {};
+            var id = $(label).prop('for');
+            var text = $(label).text();
+            var time = $($($(label).parent()).siblings()[0]).children()[0].value;
+            var price = $($($(label).parent()).siblings()[1]).children()[0].value;
+
+            var serviceType = {}
+            if (parseInt(id) != -1) {
+                service['id'] = parseInt(id);
+                serviceType['id'] = business['services'].find(obj => obj.id === parseInt(id))['serviceType']['id'];
+            } else {
+
+            }
+            serviceType['name'] = text.trim();
+            service['serviceType'] = serviceType;
+            service['duration'] = parseInt(time);
+            service['price'] = parseInt(price);
+            servicesObj.push(service);
+        });
+        business['services'] = servicesObj;
+
+        businesses.push(business);
+        console.log(JSON.stringify(businesses));
+
+        $.ajax({
+            url: "http://localhost:8080/api/business",
+            type:"PATCH",
+            data: JSON.stringify(businesses),
+            contentType:"application/json; charset=utf-8",
+            dataType: 'text',
+            success: function(succ){
+                alert( "Updates applied successfully" );
+            },
+            error: function(err) {
+                alert(err);
+            }
+        });
+        event.preventDefault();
+    });
+
+    $("#update_owner_button").click(function() {
+        businesses = [];
+        console.log("Gjoko");
+        business['owner']['firstName'] = $('#firstName').val();
+        business['owner']['lastName'] = $('#lastName').val();
+        business['owner']['email'] = $('#email').val();
+        business['owner']['username'] = $('#username').val();
+
+        businesses.push(business);
+        console.log(JSON.stringify(businesses));
+
+        $.ajax({
+            url: "http://localhost:8080/api/business",
+            type:"PATCH",
+            data: JSON.stringify(businesses),
+            contentType:"application/json; charset=utf-8",
+            dataType: 'text',
+            success: function(succ){
+                alert( "Updates applied successfully" );
+            },
+            error: function(err) {
+                alert(err);
+            }
+        });
+    });
+    event.preventDefault();
 });
Index: src/main/resources/static/js/fullcalendar.js
===================================================================
--- src/main/resources/static/js/fullcalendar.js	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/resources/static/js/fullcalendar.js	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -2755,5 +2755,6 @@
 	allDaySlot: true,
 	allDayText: 'all-day',
-	firstHour: 6,
+	firstHour: 8,
+	lastHour: 10,
 	slotMinutes: 30,
 	defaultEventMinutes: 120,
@@ -2767,5 +2768,5 @@
 	minTime: 0,
 	maxTime: 24,
-	slotEventOverlap: true
+	slotEventOverlap: false
 });
 
Index: src/main/resources/static/js/homepage.js
===================================================================
--- src/main/resources/static/js/homepage.js	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/resources/static/js/homepage.js	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -1,3 +1,5 @@
 $(document).ready(function() {
+    var businessTypes = {};
+    var businesses = {};
     var date = new Date();
     var d = date.getDate();
@@ -11,5 +13,24 @@
     */
 
-
+    $.ajax({
+        type: 'GET',
+        url: "http://localhost:8080/api/user/me",
+        success: function(data, textStatus, request) {
+            if (data) {
+                $('#create').parent().removeClass('hidden-button');
+                $('#profile').parent().removeClass('hidden-button');
+                $('#logout').parent().removeClass('hidden-button');
+                $('#login').parent().addClass('hidden-button');
+            } else {
+                $('#create').parent().addClass('hidden-button');
+                $('#profile').parent().addClass('hidden-button');
+                $('#logout').parent().addClass('hidden-button');
+                $('#login').parent().removeClass('hidden-button');
+            }
+        },
+        error: function (request, textStatus, errorThrown) {
+            console.log(errorThrown);
+        }
+    });
     /* initialize the external events
     -----------------------------------------------------------------*/
@@ -35,4 +56,53 @@
     });
 
+    $.ajax({
+        url: "http://localhost:8080/api/nomenclatures/businessTypes"
+    }).then(function (data) {
+        businessTypes = data;
+        var $el = $("#companyType");
+        emptyDropdown($el);
+
+        $.each(data, function (index, obj) {
+            $el.append("<option value=" + obj.value + ">" + obj.text + "</option>");
+        });
+    });
+
+    $("#companyType").change(function () {
+        var selectedVal = $(this).find(':selected').val();
+        var selectedObj = businessTypes[selectedVal - 1];
+        $.ajax({
+            url: "http://localhost:8080/api/business/" + selectedObj.value
+        }).then(function (data) {
+            businesses = data;
+            console.log(data);
+            var $el = $("#company");
+            var $servicesEl = $("#service");
+            emptyDropdown($el);
+            emptyDropdown($servicesEl);
+
+            $.each(data, function (index, obj) {
+                $el.append("<option value=" + obj.id + ">" + obj.companyName + "</option>");
+            });
+        });
+    });
+
+    $("#company").change(function () {
+        var selectedVal = $(this).find(':selected').val();
+        $.ajax({
+            url: "http://localhost:8080/api/appointment/business/" + selectedVal
+        }).then(function (data) {
+            console.log(data);
+            var $el = $("#service");
+            emptyDropdown($el);
+
+            var services = businesses.find(item => item.id == selectedVal)['services'];
+            console.log(services);
+
+            $.each(services, function (index, obj) {
+                $el.append("<option value=" + obj.id + ">" + obj.serviceType.name + "</option>");
+            });
+        });
+    });
+
 
     /* initialize the calendar
@@ -47,5 +117,6 @@
         editable: false,
         edit: function (start, end, allDay) {
-
+            console.log(start);
+            console.log(end);
         },
         firstDay: 1, //  1(Monday) this can be changed to 0(Sunday) for the USA system
@@ -131,5 +202,5 @@
                 start: new Date(y, m, d, 10, 30),
                 allDay: false,
-                className: 'important'
+                className: 'info'
             },
             {
@@ -138,5 +209,5 @@
                 end: new Date(y, m, d, 14, 0),
                 allDay: false,
-                className: 'important'
+                className: 'info'
             },
             {
@@ -155,17 +226,34 @@
         ],
     });
-    $("#search").click(function () {
-        alert("qweqew");
+
+    $("#createAppointment").click(function() {
+        var appointment = {};
+        appointment['business'] = {'id': parseInt($("#company").val())};
+        appointment['service'] = {'id': parseInt($("#service").val())};
+        appointment['startTime'] = $("#startdatetime").val();
 
         $.ajax({
-            url: "http://localhost:8080/events"
-        }).then(function(data) {
-            console.log(data);
-        });
-    });
+            url: "http://localhost:8080/api/appointment",
+            type:"POST",
+            data: JSON.stringify(appointment),
+            contentType:"application/json; charset=utf-8",
+            dataType: 'text',
+            success: function(succ){
+                console.log('success');
+            },
+            error: function(err) {
+                console.log(JSON.stringify(err));
+            }
+        });
+    })
 
 });
 
-function search() {
-
+document.getElementById("login").addEventListener("click", function(event){
+   window.location = "/login";
+});
+
+function emptyDropdown(element) {
+    var defaultOption = element.children().get(0);
+    element.children().remove().end().append(defaultOption);
 }
Index: src/main/resources/static/js/login.js
===================================================================
--- src/main/resources/static/js/login.js	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/resources/static/js/login.js	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -1,3 +1,3 @@
 document.getElementById("login").addEventListener("click", function(event){
-    event.preventDefault()
+    event.preventDefault();
 });
Index: src/main/resources/static/js/logout.js
===================================================================
--- src/main/resources/static/js/logout.js	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/resources/static/js/logout.js	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,16 @@
+document.getElementById("logout").addEventListener("click", function(event){
+    $.ajax({
+        url: "http://localhost:8080/logout",
+        type:"POST",
+        data: "{}",
+        contentType:"application/json; charset=utf-8",
+        dataType: 'text',
+        success: function(succ){
+            alert( "Logout successful.");
+            window.location = "/login?logoutSuccessful";
+        },
+        error: function(err) {
+            alert(err);
+        }
+    });
+});
Index: src/main/resources/static/js/register_business.js
===================================================================
--- src/main/resources/static/js/register_business.js	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/resources/static/js/register_business.js	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -49,5 +49,5 @@
             '<div class="form-outline mb-4">' +
             '    <div class="row">' +
-            '        <div class="col-md-8">\n' +
+            '        <div class="col-md-6">\n' +
             '            <input class="form-check-input" type="checkbox" checked value="' + -1 + '" id="' + -1 + '">\n' +
             '            <label class="form-check-label" for="' + -1 + '">\n' +
@@ -102,5 +102,4 @@
         });
         businessObj['services'] = servicesObj;
-        console.log(JSON.stringify(businessObj));
         $.ajax({
             url: "http://localhost:8080/api/business",
