Index: src/main/java/finki/it/terapijamkbackend/spring/controllers/AppointmentController.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/controllers/AppointmentController.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/controllers/AppointmentController.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -94,5 +94,4 @@
         try {
             Long userId = appointmentService.updateAppointment(term);
-            System.out.println(userId);
             return ResponseEntity.ok(userId.toString());
         } catch (Exception e) {
@@ -120,7 +119,7 @@
         try {
             appointmentService.deleteAppointmentByTerm(term);
-            return ResponseEntity.noContent().build(); // Returns 204 No Content on success
+            return ResponseEntity.noContent().build();
         } catch (IllegalArgumentException e) {
-            return ResponseEntity.notFound().build(); // Returns 404 Not Found if appointment doesn't exist
+            return ResponseEntity.notFound().build();
         }
     }
@@ -149,4 +148,3 @@
     }
 
-
 }
Index: src/main/java/finki/it/terapijamkbackend/spring/controllers/AuthController.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/controllers/AuthController.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/controllers/AuthController.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -3,5 +3,4 @@
 import finki.it.terapijamkbackend.spring.dto.LoginResponse;
 import finki.it.terapijamkbackend.spring.entities.User;
-import finki.it.terapijamkbackend.spring.entities.UserRole;
 import finki.it.terapijamkbackend.spring.services.UserService;
 import jakarta.servlet.http.Cookie;
@@ -49,6 +48,11 @@
             Cookie usernameCookie = new Cookie("username", temp.getUsername());
             usernameCookie.setPath("/");
-            usernameCookie.setMaxAge(60*5);
+            usernameCookie.setMaxAge(600);
             response.addCookie(usernameCookie);
+
+            Cookie roleCookie = new Cookie("role", temp.getUserRole().toString());
+            roleCookie.setPath("/");
+            roleCookie.setMaxAge(600);
+            response.addCookie(roleCookie);
 
             return ResponseEntity.ok(loginResponse);
Index: src/main/java/finki/it/terapijamkbackend/spring/controllers/CouponController.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/controllers/CouponController.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/controllers/CouponController.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -3,5 +3,4 @@
 import finki.it.terapijamkbackend.spring.services.CouponsService;
 import jakarta.persistence.EntityNotFoundException;
-import jakarta.transaction.Transactional;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -20,5 +19,4 @@
     @PutMapping("/createCoupon")
     public ResponseEntity<Coupon> updateCoupon(@RequestBody Coupon couponItem) {
-        System.out.println(couponItem);
         if (couponItem.getTitle() == null || couponItem.getCode() == null) {
             return ResponseEntity.badRequest().build();
@@ -53,7 +51,14 @@
         coupon.setCode(newCouponData.getCode());
         coupon.setDescription(newCouponData.getDescription());
-        couponService.save(coupon); // Save the updated coupon
+        couponService.save(coupon);
 
         return ResponseEntity.ok().build();
     }
+
+
+    @GetMapping("/getCouponNames")
+    public ResponseEntity<List<String>> getCouponNames() {
+        List<String> couponNames = couponService.getCouponNames();
+        return ResponseEntity.ok(couponNames);
+    }
 }
Index: src/main/java/finki/it/terapijamkbackend/spring/controllers/EventController.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/controllers/EventController.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/controllers/EventController.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,7 +1,5 @@
 package finki.it.terapijamkbackend.spring.controllers;
 
-import finki.it.terapijamkbackend.spring.entities.Coupon;
 import finki.it.terapijamkbackend.spring.entities.Event;
-import finki.it.terapijamkbackend.spring.services.AppointmentService;
 import finki.it.terapijamkbackend.spring.services.EventService;
 import jakarta.persistence.EntityNotFoundException;
@@ -23,5 +21,4 @@
     @PutMapping("/createEvent")
     public ResponseEntity<Event> updateEvent(@RequestBody Event eventItem) {
-        System.out.println(eventItem);
         if (eventItem.getTitle() == null || eventItem.getText() == null) {
             return ResponseEntity.badRequest().build();
@@ -57,5 +54,5 @@
         event.setText(newEventData.getText());
         event.setImgSrc(newEventData.getImgSrc());
-        eventService.saveEvent(event); // Save the updated coupon
+        eventService.saveEvent(event);
 
         return ResponseEntity.ok().build();
Index: src/main/java/finki/it/terapijamkbackend/spring/controllers/RequestController.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/controllers/RequestController.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/controllers/RequestController.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -37,5 +37,4 @@
     @GetMapping("/listAll")
     public List<TermsResponse> getRequestsByUser(@RequestParam("username") String username) {
-        System.out.println(username);
         List<Request>terms=requestService.findRequestsByUsername(username);
         return terms.stream()
Index: src/main/java/finki/it/terapijamkbackend/spring/controllers/UserController.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/controllers/UserController.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/controllers/UserController.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -45,5 +45,4 @@
             response = new HashMap<>();
             response.put("message", "User created successfully!");
-            System.out.println(response);
             return ResponseEntity.ok(response);
         } catch (Exception e) {
@@ -54,9 +53,9 @@
     @GetMapping("/editUser")
     public ResponseEntity<User> getUser(@RequestParam String username) {
-        User user = userService.getUserByUsername(username); // Fetch user data from service
+        User user = userService.getUserByUsername(username);
         if (user != null) {
-            return ResponseEntity.ok(user); // Return user data as JSON
+            return ResponseEntity.ok(user);
         } else {
-            return ResponseEntity.notFound().build(); // Handle user not found
+            return ResponseEntity.notFound().build();
         }
     }
@@ -76,9 +75,9 @@
             String oldUsername=getCookieValue(request, "username");
             User user = userService.updateUser(oldUsername, updatedUser);
-            return ResponseEntity.ok(user); // Return the updated user in the response
+            return ResponseEntity.ok(user);
         } catch (UserNotFoundException e) {
-            return ResponseEntity.status(HttpStatus.NOT_FOUND).build(); // Return a 404 if user is not found
+            return ResponseEntity.status(HttpStatus.NOT_FOUND).build();
         } catch (Exception e) {
-            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); // Return a 500 for other errors
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
         }
     }
Index: src/main/java/finki/it/terapijamkbackend/spring/controllers/WebController.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/controllers/WebController.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/controllers/WebController.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,10 +1,12 @@
 package finki.it.terapijamkbackend.spring.controllers;
 
+import finki.it.terapijamkbackend.spring.services.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 
+
 @Controller
 public class WebController {
-
     @GetMapping(path="/")
     public String index() {
@@ -51,3 +53,8 @@
         return "html/adminCoupons";
     }
+
+    @GetMapping(path="/userInfo.html")
+    public String userInfo() {
+        return "html/userInfo";
+    }
 }
Index: src/main/java/finki/it/terapijamkbackend/spring/entities/Appointment.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/entities/Appointment.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/entities/Appointment.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -26,5 +26,5 @@
     private Long id;
 
-    @ManyToOne(fetch = FetchType.LAZY)  // Fetch the related entity lazily to avoid loading all properties
+    @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumn(name="request_id", referencedColumnName = "id")
     @JsonIgnore
Index: src/main/java/finki/it/terapijamkbackend/spring/entities/Event.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/entities/Event.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/entities/Event.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -25,7 +25,9 @@
 
     private String title;
+    @Lob
+    @Column(name = "text", columnDefinition = "TEXT")
     private String text;
-    @Lob // Indicates that this field can hold large data
-    @Column(name = "img_src", columnDefinition = "TEXT") // Ensure column type is TEXT in database
+    @Lob
+    @Column(name = "img_src", columnDefinition = "TEXT")
     private String imgSrc;
 
Index: src/main/java/finki/it/terapijamkbackend/spring/services/CouponsService.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/services/CouponsService.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/services/CouponsService.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -9,4 +9,5 @@
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 @Service
@@ -33,4 +34,9 @@
         return couponRepository.findByTitle(identifier);
     }
+    public List<String> getCouponNames() {
+        return couponRepository.findAll().stream()
+                .map(Coupon::getCode)
+                .collect(Collectors.toList());
+    }
 
     public void save(Coupon coupon) {
Index: src/main/java/finki/it/terapijamkbackend/spring/services/EventService.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/services/EventService.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/services/EventService.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,8 +1,6 @@
 package finki.it.terapijamkbackend.spring.services;
 
-import finki.it.terapijamkbackend.spring.entities.Coupon;
 import finki.it.terapijamkbackend.spring.entities.Event;
 import finki.it.terapijamkbackend.spring.repositories.EventRepository;
-import finki.it.terapijamkbackend.spring.repositories.UserRepository;
 import jakarta.persistence.EntityNotFoundException;
 import org.springframework.beans.factory.annotation.Autowired;
Index: src/main/java/finki/it/terapijamkbackend/spring/services/RequestService.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/services/RequestService.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/services/RequestService.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -41,5 +41,4 @@
     public List<Request> findRequestsByUsername(String username) {
        User user=userRepository.findByUsername(username).orElse(null);
-        System.out.println(user.getId());
         return requestRepository.findRequestsForFreeAppointments(user.getId());
     }
Index: src/main/java/finki/it/terapijamkbackend/spring/services/UserService.java
===================================================================
--- src/main/java/finki/it/terapijamkbackend/spring/services/UserService.java	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/java/finki/it/terapijamkbackend/spring/services/UserService.java	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -58,5 +58,5 @@
             }
 
-            return userRepository.save(existingUser); // Save the updated user back to the database
+            return userRepository.save(existingUser);
         } else {
             throw new UserNotFoundException("User not found with username: " + username);
Index: src/main/resources/static/css/admin-terms.css
===================================================================
--- src/main/resources/static/css/admin-terms.css	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/css/admin-terms.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -44,8 +44,11 @@
 }
 #active{
-    margin: 15px 0;
+    padding: 15px;
     display: flex;
     flex-direction: column;
     gap: 10px;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+    background-color: #f9f9f9;
 }
 #frame{
@@ -79,5 +82,4 @@
     position: relative;
     overflow: hidden;
-    /* transform: scale(1.25); */
 }
 
@@ -131,9 +133,7 @@
     cursor: pointer;
     animation: to-top 1s forwards;
-    /* border-radius: 50%; */
 }
 #frame > *:hover{
     background-color:white;
-    transition: background-color 0.3s, transform 0.3s;
 }
 
@@ -276,7 +276,7 @@
     font-size: 14px;
     height: 30px;
-    width: 55px;
+    width: 70px;
     padding: 5px;
-    overflow: hidden; /* Hide overflow if needed */
+    overflow: hidden;
 }
 
@@ -291,5 +291,5 @@
     width: 100%;
     height: 100%;
-    background-color: rgba(0, 0, 0, 0.5); /* Dark background */
+    background-color: rgba(0, 0, 0, 0.5);
     justify-content: center;
     align-items: center;
@@ -320,11 +320,12 @@
 }
 
-#cancelBtn {
-    background-color: #f44336; /* Red */
+#cancelBtn, #temporal-deletion, #delete-approval{
+    background-color: #ff6666;
     color: white;
-}
-
-#approveBtn {
-    background-color: #4CAF50; /* Green */
+    max-width: fit-content;
+}
+
+#approveBtn, #confirm-approval, #approve-carried-out{
+    background-color: #4CAF50;
     color: white;
 }
@@ -390,4 +391,5 @@
     background-color: #f9f9f9;
 }
+
 #creation > * {
     padding-bottom: 10px;
@@ -405,11 +407,14 @@
 }
 
-#delete-all-free button {
-    padding: 10px;
-    background-color: #ff6666;
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
     color: white;
+    background-color: red;
+    padding: 10px;
     border: none;
     border-radius: 5px;
-    cursor: pointer;
 }
 
@@ -423,25 +428,16 @@
 }
 
-
-
-/* Table styles */
 table {
-    width: 320px;
+    padding-top: 10px;
+    width: fit-content;
     border-collapse: collapse;
     margin-bottom: 20px;
 }
 
-/* Table header styles */
-thead {
-    background-color: #007BFF;
-    color: white;
-}
-
-th {
+
+thead > tr {
     padding: 10px;
     text-align: left;
 }
-
-
 
 tbody tr {
@@ -451,5 +447,5 @@
 
 tbody tr:hover {
-    background-color: #f1f1f1; /* Highlight row on hover */
+    background-color: #f1f1f1;
 }
 
@@ -457,2 +453,28 @@
     padding: 10px;
 }
+
+#request-assets, #appointment-assets
+{
+    display: flex;
+    flex-direction: row;
+    gap: 10px;
+}
+
+h3{
+    padding-top: 20px;
+}
+#summary{
+    margin-top: 20px;
+    padding: 15px;
+    display: flex;
+    flex-direction: column;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+    background-color: #f9f9f9;
+}
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+}
Index: src/main/resources/static/css/admin.css
===================================================================
--- src/main/resources/static/css/admin.css	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/css/admin.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -41,20 +41,21 @@
     padding: 30px;
     display: grid;
-    grid-template-columns: repeat(2, 1fr); /* Create two equal columns */
-    gap: 20px;                          /* Space between grid items */
+
+    grid-template-columns: repeat(2, 1fr);
+    gap: 20px;
 }
 #menu a {
-    display: flex;                      /* Enable Flexbox for a */
-    flex-direction: column;            /* Align icon and text vertically */
-    align-items: center;               /* Center items horizontally */
+    display: flex;
+    flex-direction: column;
+    align-items: center;
     justify-content: center;
-    text-decoration: none;             /* Remove underline from links */
-    padding: 15px;                    /* Add padding inside each link */
-    border: 1px solid #ccc;           /* Optional: border around each link */
+    text-decoration: none;
+    padding: 15px;
+    border: 1px solid #ccc;
     border-radius: 5px;
     font-size: 30px; ;
 }
 #menu a:hover {
-    background-color: white; /* Light blue background on hover */
+    background-color: white;
     transition: background-color 0.3s ease;
     border: 1px solid black;
@@ -62,5 +63,16 @@
 
 #menu img {
-    max-width: 50px;                  /* Limit the width of images */
-    margin-bottom: 5px;               /* Space between image and text */
+    max-width: 50px;
+    margin-bottom: 5px;
 }
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
Index: src/main/resources/static/css/adminNews.css
===================================================================
--- src/main/resources/static/css/adminNews.css	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/css/adminNews.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -27,19 +27,22 @@
 }
 .news-item{
-    display: flex; /* Aligns image and text in a row */
-    flex-direction: column; /* Change to 'row' for horizontal layout */
-    width: 260px;
+    display: flex;
+    flex-direction: column;
+    width: 420px;
     align-items: center;
     justify-content: center;
     margin: 0 15px 10px 0;
     padding: 20px;
-    border: 1px solid #ddd; /* Optional: Adds a border */
+    border: 1px solid #ddd;
     box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
 }
+.news-item > *{
+    text-align: left;
+}
 img{
-    width: 100%; /* Make image responsive */
-    max-width: 400px; /* Set a maximum width for the image */
-    height: auto; /* Maintain aspect ratio */
-    border-radius: 10px; /* Optional: Adds rounded corners */
+    width: 100%;
+    max-width: 400px;
+    height: auto;
+    border-radius: 10px;
     margin-bottom: 15px;
 }
@@ -47,5 +50,5 @@
     font-size: 1.2rem;
     line-height: 1.5;
-    text-align: center; /* Center the text */
+    text-align: center;
     color: #333;
     margin: 0;
@@ -53,5 +56,5 @@
 @media (max-width: 768px) {
     .news-item {
-        flex-direction: column; /* Stack elements on smaller screens */
+        flex-direction: column;
     }
 }
@@ -98,5 +101,4 @@
 }
 
-/* Style for the upload button */
 #open-popup {
     padding: 10px 20px;
@@ -110,5 +112,5 @@
 
 #image-popup {
-    width: 400px; /* Set a width for the modal */
+    width: 400px;
     background-color: white;
     border-radius: 8px;
@@ -126,5 +128,4 @@
 }
 
-/* Image preview area */
 #image-preview {
     margin-top: 10px;
@@ -133,5 +134,4 @@
 }
 
-/* Style for buttons inside the popup */
 #image-popup button {
     padding: 8px 15px;
@@ -147,25 +147,30 @@
 
 #edit-button, #save-button {
-    background-color: #17a2b8; /* Blueish color */
+    background-color: #17a2b8;
 }
 
 
-/* Overlay */
 #overlay {
-    background: rgba(0, 0, 0, 0.5); /* Semi-transparent background */
-    z-index: 999; /* Ensure it is behind the modal but above everything else */
+    background: rgba(0, 0, 0, 0.5);
+    z-index: 999;
 }
 
-/* Button hover effects */
 #image-popup button:hover, #open-popup:hover {
     opacity: 0.9;
 }
 
-
-
-/* Cancel button */
 #cancel-button {
-    background-color: #dc3545; /* Red color */
+    background-color: #dc3545;
 }
 
-
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
Index: src/main/resources/static/css/calendar.css
===================================================================
--- src/main/resources/static/css/calendar.css	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/css/calendar.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,15 +1,14 @@
-/* Modal background */
 #confirmation-modal {
-    display: none; /* Hidden by default */
-    position: absolute; /* Fixed positioning to center it on the page */
-    z-index: 1000; /* Sit on top */
+    display: none;
+    position: absolute;
+    z-index: 1000;
     left: 38%;
     top: 40%;
-    width: 400px; /* Full width */
-    overflow: auto; /* Enable scroll if needed */
-    background-color: #fff; /* White background for the content */
-    border-radius: 8px; /* Rounded corners */
-    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Subtle shadow for depth */
-    text-align: center; /* Center align text */
+    width: 400px;
+    overflow: auto;
+    background-color: #fff;
+    border-radius: 8px;
+    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
+    text-align: center;
 }
 .model-content{
@@ -24,7 +23,6 @@
 }
 
-/* Buttons */
 button {
-    background-color: #3498db; /* Primary button color */
+    background-color: #3498db;
     border: none;
     color: #fff;
@@ -38,19 +36,18 @@
 
 button:hover {
-    background-color: #2980b9; /* Darker shade for hover effect */
-    transform: scale(1.05); /* Slight scale effect on hover */
+    background-color: #2980b9;
+    transform: scale(1.05);
 }
 
 button:active {
-    background-color: #1f77e4; /* Even darker shade when active */
-}
-
-/* Cancel button with different color */
+    background-color: #1f77e4;
+}
+
 #cancel-booking {
-    background-color: #e74c3c; /* Different color for cancel button */
+    background-color: #e74c3c;
 }
 
 #cancel-booking:hover {
-    background-color: #c0392b; /* Darker shade for hover effect */
+    background-color: #c0392b;
 }
 
@@ -118,4 +115,17 @@
 #right-side > *{
     margin:10px;
+}
+#right-side{
+    position: relative;
+    top: 50px;
+    padding: 16px;
+}
+#hourly-terms{
+    display: flex;
+    flex-wrap: wrap;
+    gap: 10px;
+}
+#right-side > *{
+    margin-bottom: 5px;
 }
 
@@ -176,5 +186,4 @@
     position: relative;
     overflow: hidden;
-    /* transform: scale(1.25); */
 }
 
@@ -232,5 +241,4 @@
     cursor: pointer;
     animation: to-top 1s forwards;
-    /* border-radius: 50%; */
 }
 
@@ -239,7 +247,4 @@
 }
 
-.calendar-days div:hover span {
-    transition: width 0.2s ease-in-out, height 0.2s ease-in-out;
-}
 
 .calendar-days div span:nth-child(1),
@@ -250,9 +255,4 @@
 }
 
-.calendar-days div:hover span:nth-child(1),
-.calendar-days div:hover span:nth-child(3) {
-    height: 100%;
-}
-
 .calendar-days div span:nth-child(1) {
     bottom: 0;
@@ -272,8 +272,4 @@
 }
 
-.calendar-days div:hover span:nth-child(2),
-.calendar-days div:hover span:nth-child(4) {
-    width: 100%;
-}
 
 .calendar-days div span:nth-child(2) {
@@ -287,18 +283,5 @@
 }
 
-.calendar-days div:hover span:nth-child(2) {
-    transition-delay: 0.2s;
-}
-
-.calendar-days div:hover span:nth-child(3) {
-    transition-delay: 0.4s;
-}
-
-.calendar-days div:hover span:nth-child(4) {
-    transition-delay: 0.6s;
-}
-
-.calendar-days div.curr-date,
-.calendar-days div.curr-date:hover {
+.curr-date{
     background-color: var(--blue);
     color: var(--white);
@@ -391,6 +374,16 @@
     }
 }
-
-
-
-
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
+
+
+
Index: src/main/resources/static/css/editUser.css
===================================================================
--- src/main/resources/static/css/editUser.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
+++ src/main/resources/static/css/editUser.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -0,0 +1,189 @@
+body{
+    font-family: "Caveat", cursive;
+    margin: 30px;
+}
+#content{
+    display: flex;
+    gap: 50px;
+}
+#main-part{
+    display: flex;
+    flex-direction: column;
+    width:420px;
+    gap: 30px;
+}
+#container{
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 300px;
+    gap: 50px;
+    border: 1px solid #ccc;
+    border-radius: 5px;
+    background-color: #f9f9f9;
+    padding: 10px;
+}
+
+#container p{
+    font-weight:bold;
+    margin: 0;
+    padding-bottom: 10px;
+}
+button {
+    margin-right: 13px;
+    margin-bottom: 5px;
+    border:0;
+    border-radius: 5px;
+    padding: 10px;
+}
+
+#block-account{
+    background-color: #ff6666;
+    color: white;
+}
+#edit-profile{
+    background-color: royalblue;
+    color: white;
+}
+#saveChanges{
+    background-color: #4CAF50;
+    color: white;
+}
+#left-side, #right-side {
+    display: flex;
+    flex-direction: column;
+    gap: 15px;
+}
+
+#stat-table {
+    height: 320px;
+    width: 420px;
+    border-collapse: collapse;
+    table-layout: fixed;
+}
+#additional-table{
+    border-collapse: collapse;
+    table-layout: fixed;
+}
+#active-tableHead > tr > th, #active-table > tr > td{
+   width: fit-content;
+}
+
+#stat-table th, #stat-table td, #active-tableHead > tr > th, #active-table > tr > td {
+    text-align: center;
+    border: 1px solid #ddd;
+    padding: 12px;
+}
+
+#stat-table th, #active-tableHead > tr > th {
+    background-color: lightslategray;
+    color: #fff;
+    font-weight: bold;
+
+}
+
+
+#table-part > p{
+    font-size: 20px;
+}
+#statusDropdown{
+    margin-bottom: 25px;
+}
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
+
+.modal {
+    display: none; /* Hidden by default */
+    position: fixed; /* Stay in place */
+    z-index: 9999; /* Sit on top */
+    left: 0;
+    top: 0;
+    width: 100%; /* Full width */
+    height: 100%; /* Full height */
+    background-color: rgba(0, 0, 0, 0.5); /* Black background with opacity */
+    align-items: center;
+    justify-content: center;
+}
+
+/* Modal Content Box */
+.modal-content {
+    background-color: #fefefe;
+    margin: auto;
+    padding: 20px;
+    border-radius: 8px;
+    width: 300px;
+    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2);
+    text-align: center;
+    position: relative;
+}
+
+.close {
+    position: absolute;
+    top: 10px;
+    right: 15px;
+    color: #aaa;
+    font-size: 24px;
+    font-weight: bold;
+    cursor: pointer;
+}
+
+.close:hover,
+.close:focus {
+    color: #000;
+    text-decoration: none;
+    cursor: pointer;
+}
+
+/* Modal Heading */
+h2 {
+    margin-bottom: 15px;
+    font-size: 20px;
+}
+
+/* Input Field */
+#userInput {
+    width: 100%;
+    padding: 8px;
+    margin-bottom: 15px;
+    border: 1px solid #ccc;
+    border-radius: 4px;
+    box-sizing: border-box;
+}
+
+/* Buttons */
+.buttons {
+    display: flex;
+    justify-content: space-between;
+}
+
+.buttons button {
+    width: 48%;
+    padding: 10px;
+    border: none;
+    border-radius: 4px;
+    cursor: pointer;
+    font-size: 16px;
+}
+
+#cancelBtn {
+    background-color: #f44336;
+    color: white;
+}
+
+#approveBtn {
+    background-color: #4CAF50;
+    color: white;
+}
+
+.buttons button:hover {
+    opacity: 0.8;
+}
Index: src/main/resources/static/css/index.css
===================================================================
--- src/main/resources/static/css/index.css	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/css/index.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -66,13 +66,13 @@
 
 .dropdown-content {
-    display: none; /* Hide dropdown by default */
-    position: absolute; /* Position relative to the list item */
+    display: none;
+    position: absolute;
     left: 0;
-    top: 100%; /* Position below the list item */
-    background-color: white; /* Background color of the dropdown */
-    border: 1px solid #ddd; /* Border of the dropdown */
-    padding: 10px; /* Padding inside the dropdown */
-    box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* Optional shadow for dropdown */
-    width: 100%; /* Full width of the list item */
+    top: 100%;
+    background-color: white;
+    border: 1px solid #ddd;
+    padding: 10px;
+    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
+    width: 100%;
 }
 .icon-search{
@@ -98,5 +98,4 @@
     justify-content: center;
     height: 350px;
-    /*background-color: #F3F0E7;*/
     background-color: #F7F7F5;
 }
@@ -108,4 +107,6 @@
 .items-register{
     font-family: "Kumbh Sans", sans-serif;
+    position: absolute;
+    left: 900px;
 }
 .items-register p{
@@ -117,22 +118,15 @@
 }
 
-.items-register{
-    display:flex;
+.form-imp{
+    display: flex;
     flex-direction: column;
     align-items: center;
-    /*background-color: #F3F0E7;*/
-}
-
-.form-imp{
-    display: flex;
-    flex-direction: column;
-    align-items: center;
     width: auto;
     padding: 10px;
 }
 input , button {
-    border-radius: 5px; /* Adjust the value to make the corners more or less rounded */
-    padding: 7px; /* Optional: adds padding inside the input */
-    border: 1px solid #9D9D9D; /* Optional: adds a border around the input */
+    border-radius: 5px;
+    padding: 7px;
+    border: 1px solid #9D9D9D;
 }
 button{
@@ -140,9 +134,22 @@
     color:white;
 }
+#personalised{
+    font-size: xx-large;
+    font-family: "Caveat", cursive;
+}
 .white-part{
+    display: flex;
+    flex-direction: column;
     background-color: white;
     width: 415px;
     border-radius: 5px;
-    padding: 7px;
+    padding: 20px;
+}
+a {
+    text-decoration: none;
+}
+.logged-in{
+    padding: 20px;
+    font-family: "Kumbh Sans", sans-serif;
 }
 .split-title{
@@ -179,5 +186,4 @@
     align-items: center;
     background-color: #F7F7F5;
-    /*background-color: #F3F0E7;*/
 }
 .part2 > div{
@@ -187,5 +193,5 @@
 }
 .part2 > div:first-child {
-    justify-content: flex-end; /* Align the content to the right */
+    justify-content: flex-end;
 }
 
@@ -217,11 +223,11 @@
     background-color: transparent;
     color: darkgreen;
-    border: 2px solid darkgreen; /* Set the border color and make it bold */
-    border-radius: 12px; /* Make the borders rounded */
-    font-weight: bold; /* Make the text bold */
-    padding: 10px 20px; /* Add some padding for better appearance */
-    cursor: pointer; /* Change the cursor to a pointer when hovered */
-    font-family: "Kumbh Sans", sans-serif; /* Match the font family */
-    font-size: 16px; /* Adjust font size as needed */
+    border: 2px solid darkgreen;
+    border-radius: 12px;
+    font-weight: bold;
+    padding: 10px 20px;
+    cursor: pointer;
+    font-family: "Kumbh Sans", sans-serif;
+    font-size: 16px;
 }
 
@@ -248,6 +254,6 @@
 }
 .icons li img:hover {
-    background-color: white; /* Change background color on hover */
-    border-color: darkslategrey; /* Change border color on hover */
+    background-color: white;
+    border-color: darkslategrey;
 }
 .footer-left p img{
@@ -272,22 +278,20 @@
 }
 
-
-/*login*/
-
 .popup {
-    display: none; /* Hide the form */
-    position: fixed; /* Position it relative to the viewport */
-    z-index: 2; /* Ensure it appears above other content */
+    display: none;
+    position: fixed;
+    z-index: 2;
     left: 50%;
     top: 50%;
-    transform: translate(-50%, -50%); /* Center it horizontally and vertically */
-    width: 500px; /* Set a fixed width for the form */
-    padding: 25px; /* Add some padding */
-    background-color: white; /* Background color of the form */
-    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); /* Add a shadow for better visibility */
-    border-radius: 10px; /* Slightly round the corners */
-}
-
-/* Style the close button */
+    transform: translate(-50%, -50%);
+    width: 500px;
+    height: auto;
+    padding: 25px;
+    background-color: white;
+    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
+    border-radius: 10px;
+    font-family: "Kumbh Sans", sans-serif;
+}
+
 .popup .close-btn {
     position: absolute;
@@ -297,42 +301,49 @@
     cursor: pointer;
 }
-
-/* Add some basic styling for the form content */
+#submit-btn{
+    width: 120px;
+    background-color: #10B981;
+}
+#loginForm > div > h2{
+    text-align: center;
+}
+
 .popup-content {
-    display: flex; /* Use flexbox for layout */
-    flex-direction: column; /* Stack children vertically */
-    align-items: stretch; /* Ensure all elements take the full width */
-    text-align: center; /* Center the content */
+    padding: 20px;
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    align-items: stretch;
 }
 
 .popup-content h2 {
-    margin-bottom: 20px; /* Add some space below the title */
+    margin-bottom: 20px;
 }
 
 .popup-content label {
-    display: block; /* Make the labels block elements */
-    margin-bottom: 10px; /* Add some space below the labels */
-    text-align: left; /* Align the text to the left */
+    display: block;
+    margin-bottom: 10px;
+    text-align: left;
 }
 
 .popup-content input {
-    width: 100%; /* Make the inputs take up the full width */
-    padding: 8px; /* Add some padding inside the inputs */
-    margin-bottom: 20px; /* Add space below the inputs */
-    border: 1px solid #ccc; /* Light border around inputs */
-    border-radius: 5px; /* Slightly round the input corners */
+    width: 100%;
+    padding: 8px;
+    margin-bottom: 20px;
+    border: 1px solid #ccc;
+    border-radius: 5px;
 }
 
 .popup-content button {
-    padding: 10px 20px; /* Add padding to the button */
-    background-color: #007BFF; /* Button background color */
-    color: white; /* Button text color */
-    border: none; /* Remove the default border */
-    border-radius: 5px; /* Round the button corners */
-    cursor: pointer; /* Add a pointer cursor on hover */
+    padding: 10px 20px;
+    background-color: #007BFF;
+    color: white;
+    border: none;
+    border-radius: 5px;
+    cursor: pointer;
 }
 
 .popup-content button:hover {
-    background-color: #0056b3; /* Darken the button on hover */
+    background-color: #0056b3;
 }
 body.no-scroll {
@@ -340,7 +351,57 @@
 }
 .dataForms{
-    display: flex; /* Use flexbox for layout */
-    flex-direction: column; /* Stack children vertically */
-    align-items: stretch; /* Ensure all elements take the full width */
-    text-align: center; /* Center the content */
-}
+    display: flex;
+    flex-direction: column;
+    align-items: stretch;
+    text-align: center;
+
+}
+#links{
+    padding: 10px;
+    display: flex;
+    flex-direction: column;
+    gap: 5px;
+    color: darkgreen;
+}
+.logged-in{
+    position: absolute;
+    left: 900px;
+    padding: 30px;
+}
+a img{
+    transform: rotate(-90deg);
+    height: 20px;
+    margin-right: 10px;
+}
+#signInForm{
+    height: 500px;
+    width: 700px;
+}
+#signInForm > div > form{
+    display: grid;
+    grid-template-columns: repeat(2, 1fr);
+    grid-template-rows: repeat(3, 1fr);
+    gap: 10px;
+}
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
+
+#create{
+    width: 200px;
+    padding: 15px;
+    background-color: #10B981;
+    position: absolute;
+    top: 80%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    margin-top: 20px;
+}
Index: src/main/resources/static/css/terms.css
===================================================================
--- src/main/resources/static/css/terms.css	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/css/terms.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -4,10 +4,7 @@
 body{
     font-family: var(--font-family);
+    background-color: #f3f8fe;
 }
-#outer-frame{
-    background-color: #f3f8fe;
-    width: 100%;
-    height: 100vh;
-}
+
 #header{
     display: flex;
@@ -16,7 +13,12 @@
 #menu{
     display: flex;
+    gap: 10px;
 }
 #menu *{
-    padding: 8px;
+    padding: 10px;
+    background-color: #17a2b8;
+    border: 0;
+    border-radius: 5px;
+    color: white;
 }
 table td,
@@ -24,8 +26,5 @@
     padding: 10px;
 }
-table{
-    /*margin: 0 auto;*/
-    width: 920px;
-}
+
 
 #popup {
@@ -67,2 +66,40 @@
     color: #fff;
 }
+
+table{
+    border-collapse: collapse;
+    table-layout: fixed;
+    width: max-content;
+}
+
+th, td {
+    width: fit-content;
+    text-align: center;
+    border: 1px solid #ddd;
+    padding: 12px;
+}
+
+th {
+    background-color: lightslategray;
+    color: #fff;
+
+}
+#frame{
+    display: flex;
+    flex-direction: column;
+    gap: 10px;
+}
+#requestsTableBody{
+    background-color: #eeeded;
+}
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
Index: src/main/resources/static/css/userInfo.css
===================================================================
--- src/main/resources/static/css/userInfo.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
+++ src/main/resources/static/css/userInfo.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -0,0 +1,41 @@
+body{
+    font-family: "Caveat", cursive;
+    background-color: aliceblue;
+}
+#box{
+    display: flex;
+    margin: 20px;
+    gap: 20px;
+}
+#coupons-frame, #news-frame{
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: start;
+}
+.new-item{
+display: flex;
+flex-direction: column;
+width: 260px;
+align-items: center;
+justify-content: center;
+margin: 0 15px 10px 0;
+padding: 20px;
+border: 1px solid #ddd;
+box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
+background-color: white;
+}
+h2{
+   display: flex;
+    justify-content: center;
+}
+#authButton{
+    position: absolute;
+    left: 1145px;
+    top: 21px;
+    width: 150px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
Index: src/main/resources/static/css/users-view.css
===================================================================
--- src/main/resources/static/css/users-view.css	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/css/users-view.css	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,3 +1,3 @@
-/* General reset */
+
 * {
     margin: 0;
@@ -6,5 +6,4 @@
 }
 
-/* Styling for the entire page */
 body {
     font-family: Arial, sans-serif;
@@ -20,5 +19,4 @@
 }
 
-/* Frame that contains the whole content */
 #frame {
     width: 80%;
@@ -30,5 +28,4 @@
 }
 
-/* Header section */
 #header-part {
     display: flex;
@@ -39,5 +36,4 @@
 }
 
-/* Dropdown and labels styling */
 label {
     font-weight: bold;
@@ -60,5 +56,4 @@
 }
 
-/* Main part: the table */
 #main-part {
     margin-top: 20px;
@@ -96,5 +91,4 @@
 }
 
-/* For responsiveness */
 @media (max-width: 768px) {
     #header-part {
@@ -111,33 +105,16 @@
     display: none;
 }
-/*.news-item{*/
-/*    display: flex; !* Aligns image and text in a row *!*/
-/*    !*flex-direction: column; !* Change to 'row' for horizontal layout *!*!*/
-/*    width: 300px;*/
-/*    align-items: center;*/
-/*    justify-content: center;*/
-/*    max-width: 800px; !* Limit max width to prevent stretching *!*/
-/*    margin: 0 auto; !* Centers the container *!*/
-/*    padding: 20px;*/
-/*    border: 1px solid #ddd; !* Optional: Adds a border *!*/
-/*    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);*/
-/*}*/
-/*img{*/
-/*    width: 100%; !* Make image responsive *!*/
-/*    max-width: 400px; !* Set a maximum width for the image *!*/
-/*    height: auto; !* Maintain aspect ratio *!*/
-/*    border-radius: 10px; !* Optional: Adds rounded corners *!*/
-/*    margin-bottom: 15px;*/
-/*}*/
-/*p{*/
-/*    font-size: 1.2rem;*/
-/*    line-height: 1.5;*/
-/*    text-align: center; !* Center the text *!*/
-/*    color: #333;*/
-/*    margin: 0;*/
-/*}*/
-/*@media (max-width: 768px) {*/
-/*    .news-item {*/
-/*        flex-direction: column; !* Stack elements on smaller screens *!*/
-/*    }*/
-/*}*/
+button{
+    padding: 5px;
+}
+#authButton{
+    position: absolute;
+    left: 1280px;
+    top: 21px;
+    width: 127px;
+    color: white;
+    background-color: red;
+    padding: 10px;
+    border: none;
+    border-radius: 5px;
+}
Index: src/main/resources/static/js/admin-terms.js
===================================================================
--- src/main/resources/static/js/admin-terms.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/admin-terms.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,4 +1,5 @@
 import { deleteAppointment, confirmCarriedOut, getUsersByTermExcept, removeRequestAndUpdateUser, removeAppointment, makeReservation ,displayDiv} from './shared.js';
 
+let lastClickedItem=null;
 let calendar = document.querySelector('.calendar')
 let importantDate;
@@ -109,11 +110,15 @@
     }));
 
-    await fetch(`/api/appointments/create`, {
+    const response=await fetch(`/api/appointments/create`, {
         method: 'POST',
         headers: {
             'Content-Type': 'application/json',
         },
-        body: JSON.stringify(requestBody) // Send all appointments in one request
+        body: JSON.stringify(requestBody)
     });
+    if(response.ok){
+        location.reload();
+    }
+
 }
 document.getElementById('create-appointments').addEventListener('click', async function () {
@@ -124,5 +129,5 @@
     const interval = parseInt(document.getElementById('time-interval').value);
 
-    if (!startDate || !endDate || !startTime || !endTime || !interval) {
+    if (!startDate || !endDate || !startTime || !endTime || isNaN(interval)) {
         alert("Please fill out all the fields.");
         return;
@@ -142,5 +147,5 @@
             const existingTimes = existingMapped.get(date);
             if (checkOverlap(existingTimes, time)) {
-                conflictingAppointments.push(newAppointment);  // Add to conflict list if overlaps
+                conflictingAppointments.push(newAppointment);
             } else {
                 successfulAppointments.push(newAppointment);
@@ -240,6 +245,6 @@
         requestedRow.appendChild(couponCodeTd);
         requestedElement.appendChild(requestedRow);
-        displayDiv(dateTime);
     })
+    displayDiv(dateTime);
 }
 function getAllRequests(dateTime,containerId){
@@ -277,6 +282,11 @@
 
         itemDiv.addEventListener('click', async () => {
+            document.getElementById("summary").style.display='none';
             try{
-
+                if(lastClickedItem){
+                    lastClickedItem.style.backgroundColor="#f9f9f9";
+                }
+                lastClickedItem=itemDiv;
+                itemDiv.style.backgroundColor="grey";
                 const isReserved=await isAppointmentReserved(item.localDateTime);
                 const isEmpty=await isAppointmentEmpty(item.localDateTime);
@@ -285,4 +295,5 @@
                 cleanData("requested")
                 if (isReserved) {
+                    document.getElementById("summary").style.display='block';
                     document.getElementById("approved-table").style.display = 'block';
                     document.getElementById("requested-table").style.display = 'none';
@@ -292,5 +303,4 @@
                     deleteBtn.setAttribute("term",item.localDateTime);
                     deleteBtn.setAttribute("type","cancelledAppointmentByAdmin");
-                    //da go isprogramirash delete-approval
                     document.getElementById("delete-approval").addEventListener('click', function() {
                         removeAppointment(item.localDateTime,"cancelledAppointmentByAdmin");
@@ -307,4 +317,5 @@
                 }
                 else if(!isEmpty){
+                    document.getElementById("summary").style.display='block';
                     document.getElementById("approved-table").style.display = 'none';
                     document.getElementById("requested-table").style.display = 'block';
@@ -316,4 +327,5 @@
                 }
                 else{
+                    document.getElementById("summary").style.display='none';
                     document.getElementById("approved-table").style.display = 'none';
                     document.getElementById("requested-table").style.display = 'none';
@@ -365,5 +377,4 @@
     let currDate = new Date()
 
-    // if (!month) month = currDate.getMonth()
     console.log(month);
     if (typeof month !== 'number') month = currDate.getMonth();
@@ -374,5 +385,4 @@
     calendar_header_year.innerHTML = year
 
-    // get first day of month
 
     let first_day = new Date(year, month, 1)
@@ -395,4 +405,5 @@
             }
             day.addEventListener('click', () => {
+                document.getElementById("summary").style.display='none';
                 let temp=document.getElementsByClassName('curr-date');
                 Array.from(temp).forEach(element => {
@@ -458,5 +469,5 @@
     const otherPickersInterval = 30;
 
-    for (let hour = 7; hour < 22; hour++) { // 0 to 23 for 24-hour format
+    for (let hour = 7; hour < 22; hour++) {
         for (let minutes = 0; minutes < 60; minutes++) {
             const formattedHour = hour.toString().padStart(2, '0');
@@ -504,4 +515,5 @@
         .then(data => {
             console.log(data.message);
+            location.reload();
         })
         .catch(error => {
@@ -525,4 +537,5 @@
         if (response.ok) {
             alert("Free appointments for the selected date range were deleted.");
+            location.reload();
         } else {
             alert("An error occurred while trying to delete the appointments.");
Index: src/main/resources/static/js/adminNewsCoupons.js
===================================================================
--- src/main/resources/static/js/adminNewsCoupons.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/adminNewsCoupons.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -6,4 +6,5 @@
 let selectedImage;
 let questionable;
+let helper;
 
 let pageType;
@@ -38,5 +39,5 @@
                     imagePreview.style.display='inline';
                     imagePreview.innerHTML = `<img src="${e.target.result}" style="width: 100%; height: auto;">`;
-                    selectedImage =e.target.result ; // Store the selected file
+                    selectedImage =e.target.result ;
 
                     console.log(selectedImage);
@@ -300,4 +301,5 @@
         document.getElementById('text').value = param2;
         let importantValue=newsItem.querySelector('img').getAttribute("data-attribute");
+        selectedImage=importantValue;
         document.getElementById('main-image').innerHTML=`<img src="${importantValue}" style="width: 20%; height: 20%;">`;
     }
Index: src/main/resources/static/js/authentication-shared.js
===================================================================
--- src/main/resources/static/js/authentication-shared.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/authentication-shared.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -9,5 +9,5 @@
 
 function phoneCheck(phone){
-    const phonePattern = /^07\d-\d{3}-\d{3}$/;
+    const phonePattern = /^07\d\d{3}\d{3}$/;
     if (!phonePattern.test(phone)) {
         return false;
@@ -32,5 +32,5 @@
     return regex.test(password);
 }
-export async function verificationCheck(userData) {
+export async function verificationCheck(userData,condition) {
     if (!usernameCheck(userData.username)) {
         alert("Invalid username");
@@ -56,16 +56,18 @@
         }
     }
-    const response = await fetch(`/api/users/checkDifferentUser`, {
-        method: "POST",
-        headers: {
-            'Content-Type': 'application/json'
-        },
-        body: JSON.stringify(userData)
-    });
-    if (response.ok) {
-        return true;
-    } else {
-        return false;
+    if(condition!==false){
+        const response = await fetch(`/api/users/checkDifferentUser`, {
+            method: "POST",
+            headers: {
+                'Content-Type': 'application/json'
+            },
+            body: JSON.stringify(userData)
+        });
+        if (response.ok) {
+            return true;
+        } else {
+            return false;
+        }
     }
-
+    return true;
 }
Index: src/main/resources/static/js/calendar.js
===================================================================
--- src/main/resources/static/js/calendar.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/calendar.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,2 +1,3 @@
+let lastClickedItem=null;
 let calendar = document.querySelector('.calendar')
 
@@ -19,4 +20,7 @@
         document.getElementById("last-check").innerHTML=window.selectedTime;
         showModal();
+        document.getElementById("coupon-type").selectedIndex=0;
+        document.getElementById("medical-condition").innerHTML='';
+
     }
 
@@ -71,5 +75,5 @@
 function displayFreeAppointments(appointments) {
     const container = document.getElementById('hourly-terms');
-    container.innerHTML = ''; // Clear previous appointments
+    container.innerHTML = '';
 
     appointments.forEach(appointment => {
@@ -88,7 +92,12 @@
 
         appointmentDiv.textContent = formattedTime;
-        appointmentDiv.dataset.time = formattedDate+" "+formattedTime; // Store full date-time
+        appointmentDiv.dataset.time = formattedDate+" "+formattedTime;
 
         appointmentDiv.addEventListener('click', () => {
+            if(lastClickedItem){
+                lastClickedItem.style.backgroundColor="white";
+            }
+            lastClickedItem=appointmentDiv;
+            lastClickedItem.style.backgroundColor="grey";
             window.selectedTime = appointmentDiv.dataset.time;
             document.getElementById('book-button').disabled = false;
@@ -109,5 +118,6 @@
 
     let currDate = new Date()
-    if (!month) month = currDate.getMonth()
+
+    if (typeof month !== 'number') month = currDate.getMonth();
     if (!year) year = currDate.getFullYear()
 
@@ -129,5 +139,14 @@
                             <span></span>`;
             let selectedDate = `${year}-${(month + 1).toString().padStart(2, '0')}-${(i - first_day.getDay() + 1).toString().padStart(2, '0')}`;
-            day.addEventListener('click', () => fetchFreeOrPendingAppointments(selectedDate));
+            day.addEventListener('click', () => {
+                let temp=document.getElementsByClassName('curr-date');
+                Array.from(temp).forEach(element => {
+                    element.classList.remove('curr-date');
+                });
+                day.classList.add('curr-date');
+                document.getElementById("coupon-type").selectedIndex=0;
+                document.getElementById("medical-condition").value='';
+                fetchFreeOrPendingAppointments(selectedDate);
+            })
 
             if (i - first_day.getDay() + 1 === currDate.getDate() && year === currDate.getFullYear() && month === currDate.getMonth()) {
@@ -176,3 +195,25 @@
 
 
-
+window.onload = async function () {
+temp=document.getElementById("coupon-type");
+    try{
+        const response = await fetch(`/api/coupons/getCouponNames`);
+        if (response.ok) {
+            const couponNames = await response.json();
+            console.log("Coupons:", couponNames);
+
+            couponNames.forEach(coupon => {
+                const option = document.createElement("option");
+                option.value = coupon;
+                option.textContent = coupon;
+                temp.appendChild(option);
+            });
+        } else {
+            console.log(response.statusText);
+        }
+    }
+    catch(error){
+        console.error("Error fetching coupons:", error);
+    }
+
+};
Index: src/main/resources/static/js/cookie.js
===================================================================
--- src/main/resources/static/js/cookie.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
+++ src/main/resources/static/js/cookie.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -0,0 +1,118 @@
+let loggedInUser = false;
+const checkIntervalDuration = 1000;
+function getRoleFromCookie() {
+    const name = "role=";
+    const decodedCookie = decodeURIComponent(document.cookie);
+    const cookieArray = decodedCookie.split(';');
+    for(let i = 0; i <cookieArray.length; i++) {
+        let cookie = cookieArray[i];
+        while (cookie.charAt(0) === ' ') {
+            cookie = cookie.substring(1);
+        }
+        if (cookie.indexOf(name) === 0) {
+            return cookie.substring(name.length, cookie.length);
+        }
+    }
+    return "";
+}
+function getCookie(name) {
+    const value = `; ${document.cookie}`;
+    const parts = value.split(`; ${name}=`);
+    if (parts.length === 2) return parts.pop().split(';').shift();
+    return undefined;
+}
+function checkCookieAndUpdateUI() {
+    const username = getCookie('username');
+    const userRole=getRoleFromCookie();
+    console.log(userRole);
+    const authButton = document.getElementById('authButton');
+
+    if (username) {
+        if (!loggedInUser) {
+            loggedInUser = true;
+            authButton.innerText = 'Logout';
+            authButton.style.display = 'block';
+            localStorage.setItem('lastCheck', Date.now());
+        }
+        else{
+            if(window.location.pathname === '/'){
+                if(userRole==="ADMIN"){
+                    window.location.href = '/admin.html';
+                }
+                else{
+                    const personalisedSection=document.getElementById("personalised");
+                    personalisedSection.innerHTML=`Добредојде, ${username}!`;
+                    document.getElementsByClassName("logged-in")[0].style.display='block';
+                    document.getElementById("adminSection").style.display='none';
+                }
+
+            }
+        }
+
+    }
+        else {
+        if (loggedInUser) {
+            loggedInUser = false;
+            authButton.style.display = 'none';
+           // deleteCookie('username')
+            window.location.href = '/';
+        }
+    }
+}
+
+
+
+function startCookieCheckInterval() {
+    if (!window.cookieCheckInterval) {
+        window.cookieCheckInterval = setInterval(() => {
+            const lastCheck = localStorage.getItem('lastCheck');
+            const timeSinceLastCheck = Date.now() - (lastCheck ? parseInt(lastCheck) : 0);
+            if (timeSinceLastCheck >= checkIntervalDuration) {
+                checkCookieAndUpdateUI();
+            }
+        }, 10);
+    }
+}
+function deleteCookie(name) {
+    document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
+}
+function resetAuthState() {
+    loggedInUser = false;
+    const authButton = document.getElementById('authButton');
+    authButton.style.display = 'none';
+    localStorage.removeItem('lastCheck');
+    clearInterval(window.cookieCheckInterval);
+    window.cookieCheckInterval = null;
+}
+
+window.addEventListener('load',function() {
+
+    const wasRefreshed=sessionStorage.getItem("refreshed");
+    if(wasRefreshed){
+        //deleteCookie("username");
+        sessionStorage.removeItem("refreshed")
+        if(getRoleFromCookie()==="ADMIN"){
+            window.location.href="/admin.html";
+        }
+        else{
+            window.location.href="/";
+        }
+    }
+    else{
+        sessionStorage.setItem("refreshed","true")
+    }
+    checkCookieAndUpdateUI();
+    startCookieCheckInterval();
+    let authButton=document.getElementById("authButton");
+    authButton.addEventListener('click', () => {
+        if (authButton.innerText === 'Logout') {
+            deleteCookie('username');
+            deleteCookie('role');
+            resetAuthState();
+                window.location.href="/";
+        }
+    });
+});
+window.addEventListener("beforeunload", function() {
+    sessionStorage.removeItem("refreshed");
+});
Index: src/main/resources/static/js/editUser.js
===================================================================
--- src/main/resources/static/js/editUser.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/editUser.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -3,5 +3,5 @@
 import { verificationCheck } from './authentication-shared.js';
 
-let loggedPerson;
+let loggedPerson,checkDifferent;
 const modal = document.getElementById('popupModal');
 const cancelBtn = document.getElementById('cancelBtn');
@@ -71,5 +71,4 @@
         counter= user.carriedOut.length;
     }
-    console.log(counter);
     return counter;
 }
@@ -122,14 +121,15 @@
             buttonCell.appendChild(button1);
             button2.textContent = "Потврди одржан";
-            button2.addEventListener('click',()=>
-                function(){
+            buttonCell.appendChild(button2);
+            button2.addEventListener('click',()=> {
                 modal.style.display='flex';
-                approveBtn.addEventListener('click', () => {
-                    const userInput = document.getElementById('userInput').value;
-                    confirmCarriedOut(request.term,userInput);
-                    modal.style.display = 'none'; // Close the modal after approval
-                });
+                document.getElementById("userInput").disabled=false;
             });
-            buttonCell.appendChild(button2);
+            approveBtn.addEventListener('click', () => {
+                const userInput = document.getElementById('userInput').value;
+                confirmCarriedOut(request.term,userInput);
+                modal.style.display = 'none';
+            });
+
         }
 
@@ -146,5 +146,5 @@
     if(selectedValue==="requests"){
         url=`/api/requests/listAll?username=${loggedPerson.username}`;
-        tHeadArray=["Термин", "Опции"];
+        tHeadArray=["Термин","Медицинска состојба","Опции"];
         createHeader(tHeadArray);
         getAll(url);
@@ -153,5 +153,5 @@
         let testTemp="RESERVED";
         url=`/api/appointments/listAll?username=${loggedPerson.username}&status=${testTemp}`;
-        tHeadArray=["Термин", "Опции"];
+        tHeadArray=["Термин","Медицинска состојба", "Опции"];
         createHeader(tHeadArray);
         getAll(url);
@@ -230,5 +230,5 @@
         .catch(error => {
             console.error('Error fetching user data:', error);
-            return { name: '', surname: '' };  // return empty values on error
+            return { name: '', surname: '' };
         });
 }
@@ -267,9 +267,6 @@
         if (cookieUsername) {
             fetchUserData(cookieUsername,"USER").then(userData => {
-                const fullName = `${userData.name} ${userData.surname}`;
-                document.getElementById('cookie-name').innerHTML = fullName;
+            console.log("success")
             });
-        } else {
-            document.getElementById('cookie-name').textContent = 'Default Name';
         }
     }
@@ -277,13 +274,14 @@
 function saveProfileChanges() {
     const userName = document.querySelector('input[name="username"]').value;
-    console.log(userName);
+    const phoneNum=document.querySelector('input[name="phone"]').value.replace(/-/g,"")
+    console.log(phoneNum);
     const updatedData = {
         username: userName,
         name: document.querySelector('input[name="firstName"]').value,
         surname: document.querySelector('input[name="lastName"]').value,
-        phone: document.querySelector('input[name="phone"]').value,
+        phone: phoneNum,
         age: document.querySelector('input[name="age"]').value
     };
-    if(!verificationCheck(updatedData)){
+    if(!verificationCheck(updatedData,checkDifferent)){
         return;
     }
@@ -299,5 +297,5 @@
         .then(data => {
             alert('Profile updated successfully!');
-            toggleEditing(false); // Disable fields after saving changes
+            toggleEditing(false);
             updateCookieUsername(userName);
         })
@@ -313,4 +311,11 @@
     };
 }
+function removeOptions(){
+    if(getRoleFromCookie()!=="ADMIN"){
+        let temp=this;
+        temp.removeChild(document.getElementById("requests"));
+        temp.removeChild(document.getElementById("appointments"))
+    }
+}
 
 function toggleEditing(isEnabled) {
@@ -322,13 +327,17 @@
 
 window.onload = function(){
+    checkDifferent=true;
     updateProfile();
     toggleEditing(false);
     document.getElementById('edit-profile').addEventListener('click', function() {
        const role=getQueryParams();
-       if(role.param1 ==='ADMIN')
-        toggleEditing(true);
+       if(role.param1 ==='ADMIN'){
+           toggleEditing(true);
+           checkDifferent=false;
+       }
+
     });
     document.getElementById('saveChanges').addEventListener('click', saveProfileChanges);
     document.getElementById("statusDropdown").addEventListener('change',createRowsBasedOnType);
-
-}
+    document.getElementById("statusDropdown").addEventListener('click',removeOptions);
+}
Index: src/main/resources/static/js/index.js
===================================================================
--- src/main/resources/static/js/index.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/index.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -1,4 +1,3 @@
 import { verificationCheck } from "./authentication-shared.js";
-
 function toggleForm(formId, show) {
         const form = document.getElementById(formId);
@@ -60,8 +59,11 @@
                 });
             }
+            else{
+                alert("Sign in successfull! Now log in!")
+            }
             return response.json();
         })
         .then(data => {
-            console.log(data.message); // Handle success message
+            console.log(data.message);
         })
         .catch(error => {
@@ -97,8 +99,4 @@
             console.log('Parsed data:', data);
             if (data.success) {
-                const name=data.name;
-                const surname=data.surname;
-                const personalisedSection=document.getElementById("personalised");
-                personalisedSection.innerHTML=`Добредојде, ${name} ${surname}!`;
                 updateUIBasedOnRole(data.userRole);
             }
@@ -108,5 +106,4 @@
         })
         .finally(() => {
-            // Close the form after handling the response
             toggleForm('loginForm', false);
         });
Index: src/main/resources/static/js/shared.js
===================================================================
--- src/main/resources/static/js/shared.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/shared.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -21,4 +21,7 @@
             if (!response.ok) {
                 throw new Error('Failed to delete the appointment');
+            }
+            else{
+                location.reload();
             }
         })
@@ -47,4 +50,5 @@
 
             if (updateResponse.ok) {
+                location.reload();
                 console.log(`User updated successfully in carried_out`);
             } else {
@@ -136,4 +140,5 @@
 
             }
+            location.reload();
 
         } else {
@@ -149,4 +154,5 @@
         if (response.ok) {
             console.log('Appointment added successfully.');
+            location.reload();
         } else {
             const text = await response.text();
@@ -160,10 +166,12 @@
 export function displayDiv(dateTime,username){
     if (typeof username !== 'undefined'){
-        makeReservation(dateTime,username);
+        makeReservation(dateTime, username);
     }
     else{
-        const inputValue = document.getElementById("username-approval");
-        const approvedUser = inputValue.value;
-        document.getElementById("confirm-approval").addEventListener('click',makeReservation(dateTime,approvedUser));
+        let temp=document.getElementById("confirm-approval");
+        temp.addEventListener('click',()=>{
+            const approvedUser = document.getElementById("username-approval").value;
+            makeReservation(dateTime,approvedUser)
+        });
     }
 }
Index: src/main/resources/static/js/terms.js
===================================================================
--- src/main/resources/static/js/terms.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/terms.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -50,5 +50,5 @@
     dialog.setAttribute("id","dialogPopUp");
     const message = document.createElement('p');
-    message.textContent = 'Are you sure you want to cancel the reservation?';
+    message.textContent = 'Дали сте сигурни дека сакате да откажете?';
     dialog.appendChild(message);
     const yesButton = document.createElement('button');
@@ -107,8 +107,8 @@
         row.appendChild(termCell);
         const nameCell = document.createElement('td');
-        nameCell.textContent = request.name; // Format date
+        nameCell.textContent = request.name;
         row.appendChild(nameCell);
         const surnameCell = document.createElement('td');
-        surnameCell.textContent = request.surname; // Format date
+        surnameCell.textContent = request.surname;
         row.appendChild(surnameCell);
         const couponCodeCell = document.createElement('td');
@@ -119,5 +119,5 @@
         row.appendChild(additionalInfoCell);
         const usernameCell = document.createElement('td');
-        usernameCell.textContent = request.username; // Format date
+        usernameCell.textContent = request.username;
         row.appendChild(usernameCell);
         const buttonCell = document.createElement('td');
@@ -139,5 +139,4 @@
     const oldHead = document.getElementById('initial-head');
     if (thead) {
-        console.log("cleaned")
         thead.innerHTML = '';
     }
@@ -165,5 +164,5 @@
         const row = document.createElement('tr');
         const termCell = document.createElement('td');
-        termCell.textContent = replaceWithSpace(request.dateTime); // Format date
+        termCell.textContent = replaceWithSpace(request.dateTime);
         row.appendChild(termCell);
         const userCell = document.createElement('td');
@@ -171,5 +170,5 @@
         row.appendChild(userCell);
         const adminCell = document.createElement('td');
-        adminCell.textContent = request.adminNote; // Format date
+        adminCell.textContent = request.adminNote;
         row.appendChild(adminCell);
         const statusCell = document.createElement('td');
Index: src/main/resources/static/js/userInfo.js
===================================================================
--- src/main/resources/static/js/userInfo.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
+++ src/main/resources/static/js/userInfo.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -0,0 +1,37 @@
+const couponsFrame=document.getElementById("coupons-frame");
+const newsFrame=document.getElementById("news-frame");
+window.addEventListener('load',async function(){
+    try{
+        const response1=await fetch(`/api/coupons/getAllCoupons`);
+        const response2=await fetch(`/api/news/getAllEvents`);
+        if(response1.ok){
+            const coupons=await response1.json();
+            coupons.forEach(coupon=>{
+                const couponDiv=document.createElement("div");
+                couponDiv.classList.add("new-item");
+                couponDiv.innerHTML=`<h3>${coupon.title}</h3><p>${coupon.code}</p><p>${coupon.description}</p>`;
+
+                couponsFrame.appendChild(couponDiv);
+            })
+        }
+        else{
+            console.log("error with coupons")
+        }
+        if(response2.ok){
+            const news=await response2.json();
+            news.forEach(event=>{
+                const eventDiv=document.createElement("div");
+                eventDiv.classList.add("new-item");
+                eventDiv.innerHTML=`<h3>${event.title}</h3><p>${event.text}</p>${event.imgSrc ? `<img src="${event.imgSrc}" style="width: 80%; height: auto;" data-attribute="${event.imgSrc}">` : ''}`;
+
+                newsFrame.appendChild(eventDiv);
+            })
+        }
+        else{
+            console.log("error with news")
+        }
+    }
+    catch(error){
+        console.error("Error fetching data:", error);
+    }
+});
Index: src/main/resources/static/js/users-view.js
===================================================================
--- src/main/resources/static/js/users-view.js	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/static/js/users-view.js	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -12,5 +12,4 @@
 }
 function calculateAge(dateBirth){
-    console.log(dateBirth);
     const [year, month, day] = dateBirth.split('-').map(Number);
     const birthDate = new Date(year, month - 1, day);
@@ -55,5 +54,4 @@
         button.addEventListener('click',()=>{
             let temp=user.username;
-            console.log(temp);
                 const params = new URLSearchParams({ param1: 'ADMIN', param2: temp }).toString();
                 window.location.href = `editUser.html?${params}`;
@@ -90,5 +88,4 @@
    document.getElementById("search-input-container").style.display = 'none';
     const selectedValue = event.currentTarget.value;
-    console.log(selectedValue);
     if(selectedValue!=='defaultValue')
     filterUsers("status",selectedValue).then(r => console.log(r));
@@ -98,10 +95,8 @@
     setInitialSelectValue(userStatusElement);
     const dataCheck = event.currentTarget.value;
-    console.log(dataCheck);
     updateSearchInputVisibility(dataCheck);
 
     document.getElementById("search-button").addEventListener('click',function (){
         let filterTemp=document.getElementById("search-input");
-        console.log(filterTemp.value);
         filterUsers(dataCheck,filterTemp.value).then(r => console.log(r));
         filterTemp.value='';
Index: src/main/resources/templates/html/admin-terms.html
===================================================================
--- src/main/resources/templates/html/admin-terms.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/admin-terms.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -8,9 +8,12 @@
     Calendar
   </title>
+  <script src="/js/cookie.js" defer></script>
   <link rel="stylesheet" href="/css/admin-terms.css">
 </head>
 <body class="light">
+<button id="authButton" style="display: none;"></button>
 <div id="content">
   <h1>Преглед и менаџирање со термини</h1>
+  <h3>Со клик врз датумот од календарот добивате преглед за термините</h3>
   <div id="left-side">
     <div id="calendar-main">
@@ -83,13 +86,14 @@
   <div id="right-side">
     <div id="active">
-      <p>Тековни термини за ден <span id="insert-date"></span></p>
+      <h3>Тековни термини за ден <span id="insert-date"></span></h3> <p>(доколку постои термин, со клик врз време, се добиваат информации и овозоможува менаџирање со термин)</p>
       <div id="frame"></div>
+      <button id="temporal-deletion" style="display: none;">Целосно бришење термин</button>
     </div>
-    <div id="summary">
+    <div id="summary" style="display: none;">
       <table id="requested-table" style="display: none;">
-        <thead><th>Предложени</th></thead><tbody id="requested"></tbody>
+        <thead><tr><th>Предложени</th></tr></thead><tbody id="requested"></tbody>
       </table>
       <table id="approved-table" style="display: none;">
-        <thead><th>Одобрени</th></thead><tbody id="approved"></tbody>
+        <thead><tr><th>Одобрени</th></tr></thead><tbody id="approved"></tbody>
       </table>
       <div id="request-assets" style="display: none;">
@@ -113,5 +117,4 @@
         </div>
       </div>
-      <button id="temporal-deletion" style="display: none;">Целосно бришење термин</button>
     </div>
   </div>
Index: src/main/resources/templates/html/admin.html
===================================================================
--- src/main/resources/templates/html/admin.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/admin.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -8,6 +8,8 @@
     <link href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&display=swap" rel="stylesheet">
     <link rel="stylesheet" href="/css/admin.css">
+    <script src="/js/cookie.js" defer></script>
 </head>
 <body>
+<button id="authButton" style="display: none;"></button>
 <img id="second-image" src="/images/physiotherapy.jpg">
 <div id="frame">
Index: src/main/resources/templates/html/adminCoupons.html
===================================================================
--- src/main/resources/templates/html/adminCoupons.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/adminCoupons.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -4,7 +4,9 @@
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <script src="/js/cookie.js" defer></script>
   <link rel="stylesheet" href="/css/adminNews.css">
 </head>
 <body data-page="coupons">
+<button id="authButton" style="display: none;"></button>
 <h2>Купони...</h2>
 <div class="coupons-container">
Index: src/main/resources/templates/html/adminNews.html
===================================================================
--- src/main/resources/templates/html/adminNews.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/adminNews.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -4,7 +4,9 @@
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <script src="/js/cookie.js" defer></script>
   <link rel="stylesheet" href="/css/adminNews.css">
 </head>
 <body data-page="events">
+<button id="authButton" style="display: none;"></button>
 <h2>Настани, новости...</h2>
 <div class="news-container">
Index: src/main/resources/templates/html/calendar.html
===================================================================
--- src/main/resources/templates/html/calendar.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/calendar.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -8,13 +8,15 @@
         Calendar
     </title>
+    <script src="/js/cookie.js" defer></script>
     <link rel="stylesheet" href="/css/calendar.css">
 </head>
 <body class="light">
+<button id="authButton" style="display: none;"></button>
 <div id="content">
     <div id="personal-info">
         <img id="admin-photo" src="/images/chicho-round.png">
         <div id="first-box" class="white-space">
-            <a><img src="/images/down.png">Кориснички профил</a>
-            <a><img src="/images/down.png">Мои термини</a>
+            <a href="editUser.html"><img src="/images/down.png">Кориснички профил</a>
+            <a href="terms.html"><img src="/images/down.png">Мои термини</a>
         </div>
     </div>
@@ -55,13 +57,14 @@
         </div>
         <div id="right-side">
-            <div id="hourly-terms">
-
-            </div>
             <div>
-                <label>Код на купон:</label><input id="coupon-type" type="text">
+                <label>Код на купон:</label>
+                <select id="coupon-type">
+                    <option></option>
+                </select>
             </div>
             <div>
                 <label>Медицинска состојба:</label> <input id="medical-condition" type="text">
             </div>
+            <div id="hourly-terms"></div>
             <button id="book-button" disabled>Закажи</button>
         </div>
Index: src/main/resources/templates/html/coupons.html
===================================================================
--- src/main/resources/templates/html/coupons.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/coupons.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -13,7 +13,8 @@
         }
     </style>
+    <script src="/js/cookie.js" defer></script>
 </head>
 <body>
-
+<button id="authButton" style="display: none;"></button>
 <table>
 
Index: src/main/resources/templates/html/editUser.html
===================================================================
--- src/main/resources/templates/html/editUser.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/editUser.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -4,60 +4,95 @@
     <meta charset="UTF-8">
     <title>Title</title>
+    <link rel="stylesheet" href="/css/editUser.css">
+    <script src="/js/cookie.js" defer></script>
 </head>
 <body>
-<div id="user-info" style="display: none;">
-    <img/>
-    <h1>Здраво <span id="cookie-name">име</span></h1>
-    <h2>Ова е твојата профилна страница. Тука имаш преглед кон твоите лични податоци, а воедно можеш и да ги модифицираш</h2>
-</div>
-<button id="edit-profile">Измени профил</button>
-<div>
-    <p>Информации за корисникот</p>
-    <div>
-        <p>Корисничко име</p>
-        <input type="text" name="username" id="usernameSignIn"/>
+<button id="authButton" style="display: none;"></button>
+<h2>Информации за корисникот</h2>
+<div id="content">
+    <div id="main-part">
+            <div id="container">
+                <div id="left-side">
+                    <div>
+                        <p>Корисничко име</p>
+                        <input type="text" name="username" id="usernameSignIn"/>
+                    </div>
+                    <div>
+                        <p>Име</p>
+                        <input type="text" id="name" name="firstName"/>
+                    </div>
+                    <div>
+                        <p>Презиме</p>
+                        <input type="text" id="surname" name="lastName"/>
+                    </div>
+                    <div>
+                        <p>Година на раѓање</p>
+                        <input type="date" id="age" name="age"/>
+                    </div>
+                </div>
+                <div id="right-side">
+                    <div>
+                        <p>Телефон</p>
+                        <input type="tel" id="phone" placeholder="07_-___-___" name="phone"/>
+                    </div>
+                    <button id="block-account" style="display: none;">Блокирај к.сметка</button>
+                    <button id="edit-profile">Измени профил</button>
+                    <button id="saveChanges">Зачувај</button>
+                </div>
+            </div>
+        <div id="adminInfo-block" style="display: none;">
+            <table id="stat-table">
+                <thead>
+                <tr>
+                    <th>Состојба на термин</th>
+                    <th>Број</th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr>
+                    <td>Одржани термини</td>
+                    <td><span id="carried-out"></span></td>
+                </tr>
+                <tr>
+                    <td>Одбиени предлози</td>
+                    <td><span id="rejected"></span></td>
+                </tr>
+                <tr>
+                    <td>Откажани предлози</td>
+                    <td><span id="cancelledReqByUser"></span></td>
+                </tr>
+                <tr>
+                    <td>Откажани термини(корисник)</td>
+                    <td><span id="cancelledAppByUser"></span></td>
+                </tr>
+                <tr>
+                    <td>Откажани термини(админ)</td>
+                    <td><span id="cancelledAppByAdmin"></span></td>
+                </tr>
+                </tbody>
+            </table>
+        </div>
     </div>
-    <div>
-        <p>Име</p>
-        <input type="text" id="name" name="firstName"/>
-    </div>
-    <div>
-        <p>Презиме</p>
-        <input type="text" id="surname" name="lastName"/>
-    </div>
-    <div>
-        <p>Телефон</p>
-        <input type="tel" id="phone" placeholder="07_-___-___" name="phone"/>
-    </div>
-    <div>
-        <p>Година на раѓање</p>
-        <input type="date" id="age" name="age"/>
+    <div id="table-part">
+        <p>Информации за термини на корисникот</p>
+        <select id="statusDropdown">
+            <option value=""></option>
+            <option value="requests" id="requests">Предложени термини</option>
+            <option value="appointments" id="appointments">Прифатени термини</option>
+            <option value="not-completed" id="not-completed">Неодржани термини</option>
+            <option value="completed" id="completed">Одржени термини</option>
+        </select>
+        <table id="additional-table">
+            <thead id="active-tableHead"></thead>
+            <tbody id="active-table"></tbody>
+        </table>
     </div>
 </div>
-<button id="saveChanges">Зачувај</button>
-<p id="paramsDisplay"></p>
-<select id="statusDropdown">
-    <option value=""></option>
-    <option value="requests" id="requests">Предложени термини</option>
-    <option value="appointments" id="appointments">Прифатени термини</option>
-    <option value="not-completed" id="not-completed">Неодржани термини</option>
-    <option value="completed" id="completed">Одржени термини</option>
-</select>
-<table>
-    <thead id="active-tableHead"></thead>
-    <tbody id="active-table"></tbody>
-</table>
-<div id="adminInfo-block" style="display: none;">
-    <p>Број на одржани термини <span id="carried-out"></span></p>
-    <p>Број на одбиени предлози за термин <span id="rejected"></span></p>
-    <p>Број на откажани предлози за термин <span id="cancelledReqByUser"></span></p>
-    <p>Број на откажани термини(корисник) <span id="cancelledAppByUser"></span></p>
-    <p>Број на откажани термини(админ) <span id="cancelledAppByAdmin"></span></p>
-</div>
+
 <div id="popupModal" class="modal" style="display: none;">
     <div class="modal-content">
         <span class="close">&times;</span>
         <h2>Enter Your Details</h2>
-        <input type="text" id="userInput" placeholder="Enter something...">
+        <input type="text" id="userInput" required>
         <div class="buttons">
             <button id="cancelBtn">Cancel</button>
@@ -66,5 +101,5 @@
     </div>
 </div>
-<button id="block-account" style="display: none;">Блокирај к.сметка</button>
+
 <script type="module" src="/js/editUser.js"></script>
 </body>
Index: src/main/resources/templates/html/index.html
===================================================================
--- src/main/resources/templates/html/index.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/index.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -14,4 +14,5 @@
   <link href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Dancing+Script:wght@400..700&family=Kumbh+Sans:wght@100..900&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Libre+Bodoni:ital,wght@0,400..700;1,400..700&display=swap" rel="stylesheet">
   <link rel="stylesheet" href="/css/index.css">
+  <script src="/js/cookie.js" defer></script>
 </head>
 <body>
@@ -57,7 +58,6 @@
     </nav>
   </div>
+  <button id="authButton" style="display: none;"></button>
 </header>
-
-
 <div class="main-content">
   <div class="title">Енергијата зборува <span class="split-title">погласно од зборовите...</span></div>
@@ -80,7 +80,10 @@
     <div class="white-part">
       <p id="personalised"></p>
-      <a href="calendar.html">Закажи термин</a>
-      <a href="terms.html">Мои термини</a>
-      <a href="editUser.html">Кориснички профил</a>
+      <div id="links">
+      <a href="calendar.html"><img src="/images/down.png">Закажи термин</a>
+      <a href="terms.html"><img src="/images/down.png"> Мои термини</a>
+      <a href="editUser.html"><img src="/images/down.png"> Кориснички профил</a>
+      <a href="userInfo.html"><img src="/images/down.png"> Новости и купони</a>
+      </div>
     </div>
   </div>
@@ -153,5 +156,5 @@
         <label for="password">Лозинка:</label>
         <input type="password" id="password" name="password" required>
-        <button type="submit">Логирање</button>
+        <button id="submit-btn" type="submit">Логирање</button>
       </form>
     </div>
@@ -163,18 +166,30 @@
       <h2>Креирајте корисничка сметка</h2>
       <form class="dataForms" method="post">
-        <label for="name">Име:</label>
-        <input type="name" id="name" name="name" required>
-        <label for="surname">Презиме:</label>
-        <input type="surname" id="surname" name="surname" required>
-        <label for="phone">Телефон:</label>
-        <input type="tel" id="phone" name="phone" placeholder="07_-___-___" required>
-        <label for="age">Датум на раѓање:</label>
-        <input type="date" id="age" name="age" required>
-        <label for="usernameSignIn">Корисничко име:</label>
-        <input type="username" id="usernameSignIn" name="username" required>
-        <label for="passwordSignIn">Лозинка:</label>
-        <input type="password" id="passwordSignIn" name="password" required>
-        <button type="submit">Креирај</button>
+        <div>
+          <label for="name">Име:</label>
+          <input type="name" id="name" name="name" required>
+        </div>
+        <div>
+          <label for="surname">Презиме:</label>
+          <input type="surname" id="surname" name="surname" required>
+        </div>
+        <div>
+          <label for="phone">Телефон:</label>
+          <input type="tel" id="phone" name="phone" placeholder="07_-___-___" required>
+        </div>
+        <div>
+          <label for="age">Датум на раѓање:</label>
+          <input type="date" id="age" name="age" required>
+        </div>
+        <div>
+          <label for="usernameSignIn">Корисничко име:</label>
+          <input type="username" id="usernameSignIn" name="username" required>
+        </div>
+        <div>
+          <label for="passwordSignIn">Лозинка:</label>
+          <input type="password" id="passwordSignIn" name="password" required>
+        </div>
       </form>
+      <button id="create" type="submit">Креирај</button>
     </div>
   </div>
Index: src/main/resources/templates/html/terms.html
===================================================================
--- src/main/resources/templates/html/terms.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/terms.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -5,14 +5,11 @@
     <title>Title</title>
     <link rel="stylesheet" href="/css/terms.css">
+    <script src="/js/cookie.js" defer></script>
 </head>
 <body>
-<div id="outer-frame">
+<button id="authButton" style="display: none;"></button>
     <div id="frame">
         <div id="header">
-            <div>Резервации</div>
-            <div>
-                <button>Кориснички профил</button>
-                <button>Закажи термин</button>
-            </div>
+            <h2>Резервации</h2>
         </div>
 
@@ -25,23 +22,8 @@
 
         <table>
-            <thead id="table-head">
-            <tr id="initial-head">
-<!--                <th>Термин</th>-->
-<!--                <th>Име</th>-->
-<!--                <th>Презиме</th>-->
-<!--                <th>Купон</th>-->
-<!--                <th>Дополнителни информации</th>-->
-<!--                <th>Корисник</th>-->
-<!--                <th>Откажи</th>-->
-            </tr>
-            </thead>
-            <tbody id="requestsTableBody">
-
-            </tbody>
+            <thead id="table-head"><tr id="initial-head"></tr></thead>
+            <tbody id="requestsTableBody"></tbody>
         </table>
-
-
     </div>
-</div>
 <script src="/js/terms.js"></script>
 </body>
Index: src/main/resources/templates/html/userInfo.html
===================================================================
--- src/main/resources/templates/html/userInfo.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
+++ src/main/resources/templates/html/userInfo.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+  <link rel="stylesheet"  href="/css/userInfo.css">
+  <script src="/js/cookie.js" defer></script>
+</head>
+<body>
+<button id="authButton" style="display: none;"></button>
+<h2> Преглед на најнови вести и купони  </h2>
+<div id="box">
+  <div id="news">
+    <h3> Вести</h3>
+    <div id="news-frame">
+    </div>
+  </div>
+  <div id="coupons">
+    <h3>Купони </h3>
+    <div id="coupons-frame">
+    </div>
+  </div>
+</div>
+<script src="/js/userInfo.js"></script>
+</body>
+</html>
Index: src/main/resources/templates/html/users-view.html
===================================================================
--- src/main/resources/templates/html/users-view.html	(revision 743de552547f72aa36d0ace8c6df4c212d5bb86d)
+++ src/main/resources/templates/html/users-view.html	(revision 43c909087ac1cb1edc0060980e76744ba06a74bf)
@@ -5,6 +5,8 @@
   <title>Title</title>
   <link rel="stylesheet" href="/css/users-view.css">
+  <script src="/js/cookie.js" defer></script>
 </head>
 <body>
+<button id="authButton" style="display: none;"></button>
 <div id="frame">
   <div id="header-part">
