Index: frontend/package-lock.json
===================================================================
--- frontend/package-lock.json	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/package-lock.json	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -13,4 +13,5 @@
         "@testing-library/user-event": "^13.5.0",
         "axios": "^1.5.0",
+        "axios-extensions": "^3.1.6",
         "bootstrap": "^5.3.0",
         "file-loader": "^6.2.0",
@@ -5349,4 +5350,25 @@
       }
     },
+    "node_modules/axios-extensions": {
+      "version": "3.1.6",
+      "resolved": "https://registry.npmjs.org/axios-extensions/-/axios-extensions-3.1.6.tgz",
+      "integrity": "sha512-CmwMYxxAw4DcQDJ7/2Iv4GJj1Ao48lJEPieycgZQH6m1KcYZqf9zm2HM/CsULqheCpYxZbiGrCfZf5tVjXqoLg==",
+      "dependencies": {
+        "lru-cache": "^7.14.0",
+        "tslib": "^2.1.0",
+        "util": "^0.12.3"
+      },
+      "peerDependencies": {
+        "axios": "*"
+      }
+    },
+    "node_modules/axios-extensions/node_modules/lru-cache": {
+      "version": "7.18.3",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
+      "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/axios/node_modules/form-data": {
       "version": "4.0.0",
@@ -9425,5 +9447,4 @@
       "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
       "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
-      "peer": true,
       "dependencies": {
         "call-bind": "^1.0.2",
@@ -9564,4 +9585,18 @@
       "engines": {
         "node": ">=6"
+      }
+    },
+    "node_modules/is-generator-function": {
+      "version": "1.0.10",
+      "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+      "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+      "dependencies": {
+        "has-tostringtag": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
       }
     },
@@ -16800,4 +16835,16 @@
       }
     },
+    "node_modules/util": {
+      "version": "0.12.5",
+      "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+      "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
+      "dependencies": {
+        "inherits": "^2.0.3",
+        "is-arguments": "^1.0.4",
+        "is-generator-function": "^1.0.7",
+        "is-typed-array": "^1.1.3",
+        "which-typed-array": "^1.1.2"
+      }
+    },
     "node_modules/util-deprecate": {
       "version": "1.0.2",
Index: frontend/package.json
===================================================================
--- frontend/package.json	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/package.json	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -8,4 +8,5 @@
     "@testing-library/user-event": "^13.5.0",
     "axios": "^1.5.0",
+    "axios-extensions": "^3.1.6",
     "bootstrap": "^5.3.0",
     "file-loader": "^6.2.0",
Index: frontend/src/App.js
===================================================================
--- frontend/src/App.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/App.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -5,5 +5,5 @@
 import 'bootstrap/dist/js/bootstrap.js';
 import HomeCarousel from './Components/Layout/CarouselHome/Carousel';
-import { Card, Container } from 'react-bootstrap';
+import {Card, Container} from 'react-bootstrap';
 import TabComponent from './Components/Tab/Tab';
 import Offers from './Components/Layout/Offers/Offers';
@@ -27,35 +27,51 @@
 import TransportEditPage from './Pages/TransportEditPage';
 import RestaurantDetailsPage from './Pages/RestaurantDetailsPage';
-import { BrowserRouter, Route, Routes } from 'react-router-dom';
+import {BrowserRouter, Route, Routes} from 'react-router-dom';
 import LoginErrorPage from "./Pages/LoginErrorPage";
+import {AuthProvider} from "./Components/Context/AuthContext";
+import PrivateRoute from "./Components/Misc/PrivateRoute";
+import ProfilesManagementPage from "./Pages/ProfilesManagementPage";
+import UserReservationsManagement from "./Pages/UserReservationsManagement";
 
 
 function App() {
 
-  return (
-    <div className="App" style={{overflow: 'hidden'}}>
-      <BrowserRouter>
-        <Routes>
-          <Route path='/login' element={<LoginPage/>}/>
-          <Route path='/register' element={<RegistrationPage/>}/>
-          <Route path='/profile' element={<ProfilePage/>}/>
-          <Route path="/resources" exact element={<NoBusinessRegisteredError hasRegistration="false"/>} />
-          <Route path="/resources/hotel" element={<ResourcesPage tab="/hotel"/>}/>
-          <Route path="/resources/hotel/:hotelId" element={<HotelEditPage />}/>
-          <Route path="/resources/restaurant" element={<ResourcesPage tab="/restaurant"/>}/>
-          <Route path='/resources/restaurant/:restaurantId' element={<RestaurantEditPage />}/>
-          <Route path="/resources/transport" element={<ResourcesPage tab="/transport"/>}/>
-          <Route path="/resources/transport/:transportId" element={<TransportEditPage/>}/>
-          <Route path="/home" element={<HomePage/> }/>
-          <Route path="/error" element={<LoginErrorPage/> }/>
-          <Route path='/details/transport' element={<TransportDetailsPage></TransportDetailsPage>}/>
-          <Route path='/details/hotel' element={<HotelDetailsPage></HotelDetailsPage>}/>
-          <Route path='/details/restaurant' element={<RestaurantDetailsPage></RestaurantDetailsPage>}/>
-          <Route path="/search/hotel/:hotelLocation/:dateFrom/:dateTo/:numBeds" element={<SearchPage type="hotel"/> }/>
-          <Route path="/search/transport/:from/:to/:date" element={<SearchPage type="transport"/> }/>
-        </Routes>
-      </BrowserRouter>
-    </div>
-  );
+    return (
+        <div className="App" style={{overflow: 'hidden'}}>
+            <AuthProvider>
+                <BrowserRouter>
+                    <Routes>
+                        <Route path='/login' element={<LoginPage/>}/>
+                        <Route path='/register' element={<RegistrationPage/>}/>
+                        <Route path='/profile' element={<PrivateRoute><ProfilePage/></PrivateRoute>}/>
+                        <Route path='/profiles' element={<PrivateRoute><ProfilesManagementPage/></PrivateRoute>}/>
+                        <Route path='/reservations' element={<PrivateRoute><UserReservationsManagement/></PrivateRoute>}/>
+                        <Route path="/resources" exact element={<PrivateRoute><NoBusinessRegisteredError
+                            hasRegistration="false"/></PrivateRoute>}/>
+                        <Route path="/resources/hotel"
+                               element={<PrivateRoute><ResourcesPage tab="/hotel"/></PrivateRoute>}/>
+                        <Route path="/resources/hotel/:hotelId" element={<PrivateRoute><HotelEditPage/></PrivateRoute>}/>
+                        <Route path="/resources/restaurant"
+                               element={<PrivateRoute><ResourcesPage tab="/restaurant"/></PrivateRoute>}/>
+                        <Route path='/resources/restaurant/:restaurantId'
+                               element={<PrivateRoute><RestaurantEditPage/></PrivateRoute>}/>
+                        <Route path="/resources/transport"
+                               element={<PrivateRoute><ResourcesPage tab="/transport"/></PrivateRoute>}/>
+                        <Route path="/resources/transport/:transportId"
+                               element={<PrivateRoute><TransportEditPage/></PrivateRoute>}/>
+                        <Route path="/home" element={<HomePage/>}/>
+                        <Route path="/error" element={<LoginErrorPage/>}/>
+                        <Route path='/details/transport' element={<TransportDetailsPage></TransportDetailsPage>}/>
+                        <Route path='/details/hotel' element={<HotelDetailsPage></HotelDetailsPage>}/>
+                        <Route path='/details/restaurant' element={<RestaurantDetailsPage></RestaurantDetailsPage>}/>
+                        <Route path="/search/hotel/:hotelLocation/:dateFrom/:dateTo/:numBeds"
+                               element={<SearchPage type="hotel"/>}/>
+                        <Route path="/search/transport/:from/:to/:date/:numPassengers"
+                               element={<SearchPage type="transport"/>}/>
+                    </Routes>
+                </BrowserRouter>
+            </AuthProvider>
+        </div>
+    );
 }
 
Index: frontend/src/Components/Forms/AddHotelForm.js
===================================================================
--- frontend/src/Components/Forms/AddHotelForm.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Forms/AddHotelForm.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -119,4 +119,6 @@
                   return prevState + 1;
                 })
+                if(!edit)
+                  props.closeModal()
               }}
             >
Index: frontend/src/Components/Forms/AddRestaurantForm.js
===================================================================
--- frontend/src/Components/Forms/AddRestaurantForm.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Forms/AddRestaurantForm.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -85,4 +85,5 @@
                   return prevState + 1;
                 })
+                props.closeModal()
               }}
             >
Index: frontend/src/Components/Forms/AddRoomForm.js
===================================================================
--- frontend/src/Components/Forms/AddRoomForm.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Forms/AddRoomForm.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -13,5 +13,5 @@
     hotelRoomDescription: "",
     hotelRoomName: "",
-    numBeds: "",
+    numOfBeds: "",
     price: "",
     kitchenAvailable: false,
@@ -58,6 +58,6 @@
             type="number" 
             placeholder="Внесете го бројот на кревети" 
-            value={formData.numBeds}
-            name="numBeds"
+            value={formData.numOfBeds}
+            name="numOfBeds"
             onChange={onFormChange}
             />
@@ -117,7 +117,11 @@
               style={{ backgroundColor: "#159895" }}
               size="md"
-              onClick={() => {
-                console.log(formData);
+              onClick={(e) => {
+                e.preventDefault();
+                props.refresh((prev) => {
+                  return ++prev;
+                })
                 createHotelRoom(formData);
+                props.closeModal();
               }}
             >
Index: frontend/src/Components/Forms/AddTransportForm.js
===================================================================
--- frontend/src/Components/Forms/AddTransportForm.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Forms/AddTransportForm.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -11,5 +11,5 @@
       transportName: "",
       carBrand: "",
-      carType: false,
+      carType: "",
       carManufacturedYear: 1900,
       noPassengers: 0,
@@ -107,6 +107,8 @@
                 createTransport(formData, edit);
                 props.refresh((prev) => {
-                  return prev + 1;
+                  return ++prev;
                 })
+                if(!edit)
+                    props.closeModal()
               }}
             >
Index: frontend/src/Components/Forms/EditRoomForm.js
===================================================================
--- frontend/src/Components/Forms/EditRoomForm.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Forms/EditRoomForm.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -28,4 +28,6 @@
     } = useGet(`/hotel/rooms/${props.room.hotelRoomId}/available`)
 
+    console.log(`/hotel/rooms/${props.room.hotelRoomId}/available`)
+
     !isLoading && console.log(data)
 
@@ -42,7 +44,9 @@
                             <tr>
                                 <th>#</th>
-                                <th>Достапно од</th>
-                                <th>Достапно до</th>
-                                <th>Број на соби</th>
+                                <th>Oд</th>
+                                <th>До</th>
+                                <th>Време на тргнување</th>
+                                <th>Време на пристигнување</th>
+                                <th>Цена</th>
                             </tr>
                             </thead>
Index: frontend/src/Components/Hooks/Hotel/useCreateHotel.js
===================================================================
--- frontend/src/Components/Hooks/Hotel/useCreateHotel.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Hooks/Hotel/useCreateHotel.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -6,8 +6,8 @@
 const useCreateHotel = () => {
 
-    //const history = useNavigate();
     const createHotel = async (hotel, edit) => {
 		console.log({hotel})
 		console.log(hotel)
+		console.log("vo createhotel")
 
 		if(!edit)
@@ -16,5 +16,5 @@
 			.post(`/hotel/add`, hotel, {
 				params: {
-					userId: localStorage.getItem("userId")
+					userId: JSON.parse(localStorage.getItem("user")).userId
 				}
 			}) 
Index: frontend/src/Components/Hooks/Restaurant/useCreateRestaurant.js
===================================================================
--- frontend/src/Components/Hooks/Restaurant/useCreateRestaurant.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Hooks/Restaurant/useCreateRestaurant.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -15,5 +15,5 @@
 			.post(`/restaurant/add`, restaurant, {
 				params: {
-					userId: localStorage.getItem('userId')
+					userId: JSON.parse(localStorage.getItem('user')).userId,
 				}
 			}) 
Index: frontend/src/Components/Hooks/Transport/useCreateTransport.js
===================================================================
--- frontend/src/Components/Hooks/Transport/useCreateTransport.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Hooks/Transport/useCreateTransport.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -4,10 +4,10 @@
 
 const useCreateTransport = () => {
-
+	const userId = JSON.parse(localStorage.getItem('user')).userId
     const createTransport = async (transport, edit) => {
 			if(!edit)
 			{
 				await axios
-	            .post(`/transport/add`, transport) 
+	            .post(`/transport/add/` + userId, transport)
 	            .then((res) => {
 	                //history.push('/transport');
Index: frontend/src/Components/Hooks/User/useLogin.js
===================================================================
--- frontend/src/Components/Hooks/User/useLogin.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Hooks/User/useLogin.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -4,8 +4,10 @@
 import { Navigate, useAsyncValue, useNavigate } from "react-router-dom";
 import LoginForm from "../../Login/LoginForm.js";
+import {useAuth} from "../../Context/AuthContext";
 
 const useLogin = () => {
 
     const navigator = useNavigate()
+	const Auth = useAuth();
     //const history = useNavigate();
     const login = async (loginData) => {
@@ -22,7 +24,22 @@
                 }) 
 	            .then((res) => {
+					console.log("RES LOGIN")
+					console.log(res)
+					if(res.status === 200)
+					{
+						const user = {
+							sessionId: res.data.auth.details.sessionId,
+							userId: res.data.auth.principal.userID,
+							username: res.data.auth.principal.username,
+							role: res.data.auth.principal.role,
+							name: res.data.auth.principal.name,
+							surname: res.data.auth.principal.surname,
+						}
+						Auth.userLogin(user);
+						console.log(user)
+					}
 					const sessionId = res.data.auth.details.sessionId;
 					const userId = res.data.auth.principal.userID;
-					
+
 					localStorage.setItem("sessionId", sessionId);
 					localStorage.setItem("userId", userId);
Index: frontend/src/Components/Hooks/useGet.js
===================================================================
--- frontend/src/Components/Hooks/useGet.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Hooks/useGet.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -12,8 +12,8 @@
         console.log("url od get " + uurl)
         await axios.
-            get(uurl).then((res) => {
+            get(uurl, {maxRedirects: 0}).then((res) => {
                 setData(res.data);
-            }).catch((err) => {
-                console.log(err)
+            }).catch((error) => {
+                console.log(error)
             })
             .finally(() => {
@@ -26,5 +26,5 @@
         getData(url);
     }, [dep, url, changed]);
-    
+
     return {
         data,
Index: frontend/src/Components/HotelEdit/HotelEditTab.js
===================================================================
--- frontend/src/Components/HotelEdit/HotelEditTab.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/HotelEdit/HotelEditTab.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -1,99 +1,119 @@
 import React from "react";
-import { Container, Col, Row, Image, Nav, Tab } from "react-bootstrap";
-import { useState } from "react";
-import { FaTaxi, FaHotel } from "react-icons/fa";
-import { MdOutlineStickyNote2 } from "react-icons/md";
+import {Container, Col, Row, Image, Nav, Tab} from "react-bootstrap";
+import {useState} from "react";
+import {FaTaxi, FaHotel} from "react-icons/fa";
+import {MdOutlineStickyNote2} from "react-icons/md";
 import AddNew from "../Resources/AddNew";
-import { BiData } from "react-icons/bi"
+import {BiData} from "react-icons/bi"
 import RoomListing from "./RoomListing";
 import HotelEditForm from "./HotelEditForm";
 import AddHotelForm from "../Forms/AddHotelForm";
 import EditModal from "../Resources/EditModal";
+import AddAvailability from "../Resources/AddAvailability";
+import useGet from "../Hooks/useGet";
+import ReservationListing from "./ReservationListing";
 
 function HotelEditTab(props) {
-  const [activeTab, setActiveTab] = useState("/hotel");
-  const [modalData, setModalData] = useState("");
-  const [show, setShow] = useState(false);
+    const [activeTab, setActiveTab] = useState("/hotel");
+    const [modalData, setModalData] = useState("");
+    const [show, setShow] = useState(false);
 
-  const handleClose = () => setShow(false);
-  const handleShow = () => {
-    //e.preventDefault();
-    setShow(true);
+    console.log(props)
 
-  };
+    const {
+        data,
+        isLoading,
+        setData,
+        getData,
+        setChanged
+    } = useGet(`/hotel/${props.displayRoom.hotelId}/reservations/active`)
 
-  const showModal = (modalData) => {
-    setModalData(modalData);
-    handleShow();
-  }
-  console.log(props.displayRoom)
+    !isLoading && console.log(data)
 
-  const handleSelect = (eventKey) => {
-    setActiveTab(eventKey);
-  };
+    const handleClose = () => setShow(false);
+    const handleShow = () => {
+        //e.preventDefault();
+        setShow(true);
 
-  return (
-    <Container className="rounded-5">
-      <Tab.Container
-        activeKey={activeTab}
-        onSelect={handleSelect}
-        className="bg-dark rounded-5"
-      >
-        <Nav
-          fill
-          variant="tabs"
-          className="bg-body rounded-top-5"
-          activeKey="/hotel"
-          id="tab_item"
-        >
-          <Nav.Item className="tab_item rounded-5">
-            <Nav.Link eventKey="/hotel" className="text-left rounded-5">
+    };
+
+    const showModal = (modalData) => {
+        setModalData(modalData);
+        handleShow();
+    }
+    console.log(props.displayRoom)
+
+    const handleSelect = (eventKey) => {
+        setActiveTab(eventKey);
+    };
+
+    return (
+        <Container className="rounded-5">
+            <Tab.Container
+                activeKey={activeTab}
+                onSelect={handleSelect}
+                className="bg-dark rounded-5"
+            >
+                <Nav
+                    fill
+                    variant="tabs"
+                    className="bg-body rounded-top-5"
+                    activeKey="/hotel"
+                    id="tab_item"
+                >
+                    <Nav.Item className="tab_item rounded-5">
+                        <Nav.Link eventKey="/hotel" className="text-left rounded-5">
               <span className="ikona">
                 <FaHotel
-                  color="#159895"
-                  style={{ lineHeight: "100em" }}
-                  size={"1.5em"}
-                  className="mx-3"
+                    color="#159895"
+                    style={{lineHeight: "100em"}}
+                    size={"1.5em"}
+                    className="mx-3"
                 />
               </span>
-              <span className="ikona">Соби</span>
-            </Nav.Link>
-          </Nav.Item>
-          <Nav.Item className="tab_item">
-            <Nav.Link eventKey="/restaurant">
+                            <span className="ikona">Соби</span>
+                        </Nav.Link>
+                    </Nav.Item>
+                    <Nav.Item className="tab_item">
+                        <Nav.Link eventKey="/restaurant">
               <span className="ikona">
-                <MdOutlineStickyNote2 color="#159895" size={"1.5em"} className="mx-3" />
+                <MdOutlineStickyNote2 color="#159895" size={"1.5em"} className="mx-3"/>
               </span>
-              <span className="ikona">Резервации</span>
-            </Nav.Link>
-          </Nav.Item>
-          <Nav.Item className="tab_item rounded-5">
-            <Nav.Link eventKey="/transport" className="text-left rounded-5">
+                            <span className="ikona">Резервации</span>
+                        </Nav.Link>
+                    </Nav.Item>
+                    <Nav.Item className="tab_item rounded-5">
+                        <Nav.Link eventKey="/transport" className="text-left rounded-5">
               <span className="ikona">
-                <BiData color="#159895" size={"1.5em"} className="mx-3" />
+                <BiData color="#159895" size={"1.5em"} className="mx-3"/>
               </span>
-              <span className="ikona">Општи податоци</span>
-            </Nav.Link>
-          </Nav.Item>
-        </Nav>
+                            <span className="ikona">Општи податоци</span>
+                        </Nav.Link>
+                    </Nav.Item>
+                </Nav>
 
-        <Tab.Content className="py-5 px-3 border rounded-bottom-5 bg-light">
-          <Tab.Pane eventKey="/hotel">
-          {props.displayRoom.hotelRooms.map((room) => {
-              return <RoomListing key={room.hotelRoomId} data={room} showModal={showModal}/>
-            })}
-            <EditModal show={show} handleClose={handleClose} type="room" room={modalData}></EditModal>
-            <AddNew Id={props.displayRoom.hotelId} refresh={props.refresh} type="room"/>
-          </Tab.Pane>
-          <Tab.Pane eventKey="/restaurant">
-            <AddNew type="restaurant"/>
-          </Tab.Pane>
-          <Tab.Pane eventKey="/transport">
-            <AddHotelForm refresh={props.refresh} hotel={props.displayRoom}/>
-          </Tab.Pane>
-        </Tab.Content>
-      </Tab.Container>
-    </Container>
-  );
+                <Tab.Content className="py-5 px-3 border rounded-bottom-5 bg-light">
+                    <Tab.Pane eventKey="/hotel">
+                        {props.displayRoom.hotelRooms.map((room) => {
+                            return <RoomListing key={room.hotelRoomId} data={room} showModal={showModal}/>
+                        })}
+                        <EditModal show={show} handleClose={handleClose} type="room" room={modalData}></EditModal>
+                        <AddNew Id={props.displayRoom.hotelId} refresh={props.refresh} type="room"/>
+                    </Tab.Pane>
+                    <Tab.Pane eventKey="/restaurant">
+                        {!isLoading && data.map((res) => {
+                            return (
+                                <ReservationListing data={res}/>
+                            )
+                        })}
+                        {/*<AddNew type="restaurant"/>*/}
+                    </Tab.Pane>
+                    <Tab.Pane eventKey="/transport">
+                        <AddHotelForm refresh={props.refresh} hotel={props.displayRoom}/>
+                    </Tab.Pane>
+                </Tab.Content>
+            </Tab.Container>
+        </Container>
+    );
 }
 
Index: frontend/src/Components/Layout/Navbar/Navigation.js
===================================================================
--- frontend/src/Components/Layout/Navbar/Navigation.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Layout/Navbar/Navigation.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -7,4 +7,5 @@
 import useGet from "../../Hooks/useGet";
 import axios from "../../../axios.js";
+import {useAuth} from "../../Context/AuthContext";
 //import logo from 'assets/images/logo.png';
 //src="https://upload.wikimedia.org/wikipedia/commons/0/08/Vergina_Sun_-_Golden_Larnax.png"
@@ -12,7 +13,6 @@
 function Navigation(props) {
   const navigator = useNavigate();
-
-  const { data, setData, isLoading, getData } = useGet("/username");
-  
+  const Auth = useAuth();
+  const isLoggedIn = Auth.userIsAuthenticated();
   return (
     <>
@@ -24,5 +24,5 @@
       >
         <Container>
-          <Navbar.Brand href="#home">
+          <Navbar.Brand href="/home">
             <span className="ikona">
               <Image
@@ -50,5 +50,5 @@
                 Pricing
               </Nav.Link>
-              {!isLoading && !data && (
+              {!isLoggedIn && (
                 <Button
                   className="m-2"
@@ -62,8 +62,8 @@
                 </Button>
               )}
-              {!isLoading && data && (
+              {isLoggedIn && (
                 <>
                   <Nav.Link className="m-2" href="/profile">
-                    {data}
+                    {Auth.getUser().username}
                   </Nav.Link>
                   <Button
@@ -74,5 +74,6 @@
                       await axios.get("/logout")
                       .then((res) => {
-                        console.log(res)
+                        console.log(res);
+                        Auth.userLogout();
                       })
                       .catch((err) => {
Index: frontend/src/Components/Resources/AddNew.js
===================================================================
--- frontend/src/Components/Resources/AddNew.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Resources/AddNew.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -56,8 +56,8 @@
         </Modal.Header>
         <Modal.Body>
-            {props.type === "hotel" && <AddHotelForm refresh={props.refresh}/>}
-            {props.type === "room" && <AddRoomForm refresh={props.refresh} hotelId={props.Id}/>}
-            {props.type === "restaurant" && <AddRestaurantForm edit="false" refresh={props.refresh}/>}
-            {props.type === "transport" && <AddTransportForm refresh={props.refresh}/>}
+            {props.type === "hotel" && <AddHotelForm closeModal={handleClose} refresh={props.refresh}/>}
+            {props.type === "room" && <AddRoomForm closeModal={handleClose} refresh={props.refresh} hotelId={props.Id}/>}
+            {props.type === "restaurant" && <AddRestaurantForm edit="false" closeModal={handleClose} refresh={props.refresh}/>}
+            {props.type === "transport" && <AddTransportForm closeModal={handleClose} refresh={props.refresh}/>}
             {props.type === "menu" && <AddItemMenuForm Id={props.Id} refresh={props.refresh}/>}
             {props.type === "route" && <AddTripForm transportId={props.transport.transportID} setSize={setSizeXl} refresh={props.refresh}/>}
Index: frontend/src/Components/Resources/EditModal.js
===================================================================
--- frontend/src/Components/Resources/EditModal.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Resources/EditModal.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -31,5 +31,5 @@
         </Modal.Header>
         <Modal.Body>
-            {props.type === "hotel" && <AddHotelForm/>}
+            {props.type === "hotel" && <AddHotelForm refresh={props.refresh}/>}
             {props.type === "room" && <EditRoomForm refresh={props.refresh} room={props.room}/>}
             {props.type === "restaurant" && <AddRestaurantForm edit="false" refresh={props.refresh}/>}
Index: frontend/src/Components/Resources/ResourceListing.js
===================================================================
--- frontend/src/Components/Resources/ResourceListing.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Resources/ResourceListing.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -6,12 +6,10 @@
 
 const ResourceListing = (props) => {
-  
-    console.log("props " + props.id)
-  
 
     const type = props.type == "hotel" ? "сместувањето" : props.type == "restaurant" ? "ресторанот" : "превозот";
     const name = props.type == "hotel" ? props.data.hotelName : props.type == "restaurant" ? props.data.restaurantName : props.data.transportName
-    const id = props.type == "hotel" ? props.data.hotelId : props.type == "restaurant" ? props.data.resturantId : props.data.transportID
-    return(<> 
+    const id = props.type == "hotel" ? props.data.hotelId : props.type == "restaurant" ? props.data.restaurantID : props.data.transportID
+    console.log(props.data)
+    return(<>
     <a href={`${props.type}/${id}`} style={{textDecoration: "none", color:"black"}}>
         <Container className="py-3 px-1 my-4"
Index: frontend/src/Components/Resources/ResourcesTab.js
===================================================================
--- frontend/src/Components/Resources/ResourcesTab.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Resources/ResourcesTab.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -11,17 +11,11 @@
 function ResourcesTab(props) {
   const [activeTab, setActiveTab] = useState(props.tab);
-  // const [changed, setChanged] = useState(0);
-  const userId = localStorage.getItem("userId");
+  const userId = JSON.parse(localStorage.getItem("user")).userId;
   const { data, setData, isLoading, getData, setChanged } = useGet(`${props.tab}/user/${userId}`);
 
   const handleSelect = (eventKey) => {
     setActiveTab(eventKey);
-    console.log(props.refresh);
     props.refresh(eventKey);
-    console.log("refresh" + eventKey);
   };
-
-  !isLoading && console.log(data);
-  console.log(props.tab);
 
   return (
@@ -78,5 +72,5 @@
               data.map((hotel) => {
                 return (
-                  <Link key={hotel.hotelId} to={"/resources/hotel/" + hotel.hotelId}>
+                  <Link style={{textDecoration: "none"}} key={hotel.hotelId} to={"/resources/hotel/" + hotel.hotelId}>
                     <ResourceListing
                       key={hotel.hotelId}
@@ -93,14 +87,10 @@
             {props.tab == "/restaurant" && !isLoading && data != null &&
               data.map((restaurant) => {
-                console.log("mapiranje " + restaurant)
                 return (
-                  <Link key={restaurant.restaurantId} to={"/resources/restaurant/" + restaurant.restaurantID}>
                     <ResourceListing
-                      key={restaurant.restaurantId}
+                      key={restaurant.restaurantID}
                       type="restaurant"
                       data={restaurant}
-                    />
-                  </Link>
-                );
+                    />);
               })}
             <AddNew type="restaurant" refresh={setChanged}/>
Index: frontend/src/Components/RestaurantEdit/RestaurantEditTab.js
===================================================================
--- frontend/src/Components/RestaurantEdit/RestaurantEditTab.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/RestaurantEdit/RestaurantEditTab.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -100,5 +100,5 @@
               return <MenuListing key={menu.menuId} data={menu} showModal={showModal}/>
             })}
-            {activeTab === '/hotel' && <EditModal show={show} handleClose={handleClose} type="menu" menu={modalData}></EditModal>}
+            {activeTab === '/hotel' && <EditModal show={show} refresh={props.refresh} handleClose={handleClose} type="menu" menu={modalData}></EditModal>}
             <AddNew Id={props.displayMenu.restaurantID} refresh={props.refresh} type="menu"/>
           </Tab.Pane>
Index: frontend/src/Components/SearchCriterias/SearchCriteriasBar.js
===================================================================
--- frontend/src/Components/SearchCriterias/SearchCriteriasBar.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/SearchCriterias/SearchCriteriasBar.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -2,97 +2,18 @@
 import { Container, Form, Button, Row, Col } from "react-bootstrap";
 import useFormData from "../Hooks/useFormData";
+import SearchCriteriasHotel from "./SearchCriteriasHotel";
+import SearchCriteriasTransport from "./SearchCriteriasTransport";
 
-const SearchCriterias = (props) => {
+const SearchCriteriasBar = (props) => {
 
-  const { formData, onFormChange, onCheckBoxChange, setFormData} = useFormData(props.criterias)
-  console.log("KRITERIUMI")
-  console.log(formData)
+    const { criterias, type } = props
 
-  return (
-    <>
-      <Container
-        className="p-1 pb-0 mb-5 mt-3 rounded-2"
-        style={{ backgroundColor: "#002B5B", width: "65%"}}
-      >
-        <Form className="rounded-5">
-          <Row className="gx-1">
-            <Col>
-              <Form.Floating className="mb-3">
-                <Form.Control
-                  size="md"
-                  type="text"
-                  placeholder="Каде ќе патувате?:"
-                  id="location"
-                  name="hotelLocation"
-                  onChange={onFormChange}
-                  value={formData.hotelLocation}
-                ></Form.Control>
-                <label htmlFor="location">Локација:</label>
-              </Form.Floating>
-            </Col>
-            <Col>
-              <Form.Floating className="mb-3">
-                <Form.Control
-                  size="md"
-                  type="date"
-                  placeholder="Датум на пристигнување:"
-                  id="dateFrom"
-                  name="dateFrom"
-                  onChange={onFormChange}
-                  value={formData.dateFrom}
-                ></Form.Control>
-                <label htmlFor="dateFrom">Датум на пристигнување:</label>
-              </Form.Floating>
-            </Col>
-            <Col>
-              <Form.Floating className="mb-3">
-                <Form.Control
-                  size="md"
-                  type="date"
-                  placeholder="Датум на заминување:"
-                  id="dateTo"
-                  name="dateTo"
-                  onChange={onFormChange}
-                  value={formData.dateTo}
-                ></Form.Control>
-                <label htmlFor="dateTo">Датум на заминување:</label>
-              </Form.Floating>
-            </Col>
-            <Col>
-              <Form.Floating className="mb-3">
-                <Form.Control
-                  size="md"
-                  type="number"
-                  placeholder="Број на гости:"
-                  id="floatingPassengers"
-                  name="numBeds"
-                  onChange={onFormChange}
-                  value={formData.numBeds}
-                ></Form.Control>
-                <label htmlFor="floatingPassengers">Број на гости:</label>
-              </Form.Floating>
-            </Col>
-            <Col>
-              <Form.Group className="my-1">
-                <Button
-                  type="submit"
-                  style={{ backgroundColor: "#159895" }}
-                  size="lg"
-                  className="w-100"
-                  onClick={(e) => {
-                    e.preventDefault();
-                    window.location.href = `/search/hotel/${formData.hotelLocation}/${formData.dateFrom}/${formData.dateTo}/${formData.numBeds}`
-                  }}
-                >
-                  <span className="ikona mx-3">Пребарај</span>
-                </Button>
-              </Form.Group>
-            </Col>
-          </Row>
-        </Form>
-      </Container>
-    </>
-  );
-};
+    return (
+        <>
+            {type === 'hotel' && <SearchCriteriasHotel criterias={criterias}/>}
+            {type === 'transport' && <SearchCriteriasTransport criterias={criterias}/>}
+        </>
+    )
+}
 
-export default SearchCriterias;
+export default SearchCriteriasBar;
Index: frontend/src/Components/Tab/TabFormTransport.js
===================================================================
--- frontend/src/Components/Tab/TabFormTransport.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/Tab/TabFormTransport.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -2,6 +2,15 @@
 import { Button, Col, Container, Form, Row } from "react-bootstrap";
 import { HiMagnifyingGlass } from "react-icons/hi2"
+import useFormData from "../Hooks/useFormData";
 
 function TabFormTransport() {
+
+  const { formData, onFormChange, setFormData } = useFormData({
+    from: undefined,
+    to: undefined,
+    date: undefined,
+    numPassengers: 0
+  })
+
   return (
     <Form>
@@ -14,4 +23,7 @@
               placeholder="Од:"
               id="floatingFrom"
+              value={formData.from}
+              name={'from'}
+              onChange={onFormChange}
             ></Form.Control>
             <label htmlFor="floatingFrom">Од:</label>
@@ -25,4 +37,7 @@
               placeholder="До:"
               id="floatingTo"
+              name={'to'}
+              value={formData.to}
+              onChange={onFormChange}
             ></Form.Control>
             <label htmlFor="floatingTo">До:</label>
@@ -36,4 +51,7 @@
               placeholder="Датум:"
               id="floatingDate"
+              name={'date'}
+              value={formData.date}
+              onChange={onFormChange}
             ></Form.Control>
             <label htmlFor="floatingDate">Датум:</label>
@@ -46,10 +64,16 @@
               type="number"
               placeholder="Број на патници:"
+              name={'numPassengers'}
               id="floatingPassengers"
+              value={formData.numPassengers}
+              onChange={onFormChange}
             ></Form.Control>
             <label htmlFor="floatingPassengers">Број на патници:</label>
           </Form.Floating>
           <Form.Group className="my-1">
-            <Button type="submit" style={{backgroundColor: "#159895"}} size="lg">
+            <Button type="submit" style={{backgroundColor: "#159895"}} size="lg" onClick={(e) => {
+              e.preventDefault();
+              window.location.href = `/search/transport/${formData.from}/${formData.to}/${formData.date}/${formData.numPassengers}`
+            }}>
               <span className="ikona my-1"><HiMagnifyingGlass/></span>
               <span className="ikona mx-3">Пребарај</span>
Index: frontend/src/Components/TransportDetails/FinalPoint.js
===================================================================
--- frontend/src/Components/TransportDetails/FinalPoint.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/TransportDetails/FinalPoint.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -17,5 +17,5 @@
     <>
       <Row>
-        {props.left === "true" && <Col className="d-flex flex-column justify-content-center col-auto" style={{paddingLeft: "2.6rem"}}>
+        {props.left === "true" && <Col className="d-flex flex-column justify-content-center col-md-4" style={{paddingLeft: "2.6rem"}}>
             <h5 className="m-auto">{getTimeAsString(props.time)}</h5>
         </Col>  }
Index: frontend/src/Components/TransportDetails/Line.js
===================================================================
--- frontend/src/Components/TransportDetails/Line.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/TransportDetails/Line.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -2,7 +2,5 @@
 
 const Line = (props) => {
-    console.log(props.left)
-    const left = props.left === "true" ? "9.08rem" : "2.6rem";
-    console.log({borderLeft: "5px solid #159895", height: "3em", marginLeft: left, marginTop: "-1.4rem", marginBottom: "-1.4rem"})
+    const left = props.left === "true" ? "1.8rem" : "1.85rem";
     return (<>
         <div style={{borderLeft: "5px solid #159895", height: "3em", marginLeft: left, marginTop: "-1.4rem", marginBottom: "-1.4rem"}}></div>
Index: frontend/src/Components/TransportDetails/Waypoint.js
===================================================================
--- frontend/src/Components/TransportDetails/Waypoint.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/TransportDetails/Waypoint.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -17,5 +17,5 @@
     <>
       <Row className="d-flex flex-row gap-0">
-      {props.left === "true" && <Col className="d-flex flex-column justify-content-center col-auto" style={{paddingLeft: "2.6rem"}}>
+      {props.left === "true" && <Col className="d-flex flex-column justify-content-center col-md-4" style={{paddingLeft: "2.6rem"}}>
             <h5 style={{color: props.routes === "true" ? "white" : "" }} className="m-auto">{getTimeAsString(props.time)}</h5>
         </Col>}
@@ -30,7 +30,20 @@
         </Col>}
       </Row>
-      <Row>
-      <Line left={props.left}> </Line>
-      </Row>
+        <Row className="d-flex flex-row gap-0">
+            {props.left === "true" && <Col className="d-flex flex-column justify-content-center col-md-4" style={{paddingLeft: "2.6rem"}}>
+
+            </Col>}
+            <Col md="auto">
+                <Line left={props.left}> </Line>
+            </Col>
+            <Col className="d-flex flex-column justify-content-center">
+            </Col>
+            {props.left !== "true" && <Col className="d-flex flex-column justify-content-center">
+
+            </Col>}
+        </Row>
+      {/*<Row>*/}
+      {/*<Line left={props.left}> </Line>*/}
+      {/*</Row>*/}
     </>
   );
Index: frontend/src/Components/TransportEdit/TransportEditTab.js
===================================================================
--- frontend/src/Components/TransportEdit/TransportEditTab.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/TransportEdit/TransportEditTab.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -12,8 +12,5 @@
 function TransportEditTab(props) {
   const [activeTab, setActiveTab] = useState("/hotel");
-  const link = "/transport/" + props.displayRoute.transportID + "/available";
   console.log(props.displayRoute)
-  const [changed, setChanged] = useState(0)
-  const { data, setData, isLoading, getData } = useGet(link, changed);
 
 
Index: frontend/src/Components/TransportEdit/TransportListing.js
===================================================================
--- frontend/src/Components/TransportEdit/TransportListing.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/TransportEdit/TransportListing.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -9,6 +9,4 @@
 
     //const type = props.type == "hotel" ? "сместувањето" : props.type == "restaurant" ? "ресторанот" : "превозот";
-    console.log(props.data)
-    console.log(props.data.from)
     return (<>
         <a href="#" style={{textDecoration: "none", color: "black"}}>
@@ -34,5 +32,4 @@
                     <Col className="d-flex flex-column justify-content-center" style={{textAlign: "left"}}>
                         <h2>{props.data.from} - {props.data.to}</h2>
-                        {/* <h6>{props.data.routeCities}</h6> */}
                         <h6>{props.data.routes.map(x => x).join(", ")}</h6>
                     </Col>
@@ -40,6 +37,5 @@
                     <Col className="d-flex flex-column justify-content-center align-content-center">
                         <h5>Цена:</h5>
-                        {/* <h4>{props.data.routePrice}</h4> */}
-                        <h4>99$</h4>
+                         <h4>{props.data.maxPrice}$</h4>
                     </Col>
                 </Row>
Index: frontend/src/Components/useFormNested.js
===================================================================
--- frontend/src/Components/useFormNested.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Components/useFormNested.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -7,5 +7,5 @@
         console.log(e)
 
-        const dependantRoutes = e.target.parentElement.getAttribute('dependantRoutes').split(',')
+        const dependantRoutes = e.target.name === 'freeSpace' ? e.target.parentElement.getAttribute('dependantRoutes').split(',') : undefined;
         console.log(dependantRoutes)
 
Index: frontend/src/Pages/HotelDetailsPage.js
===================================================================
--- frontend/src/Pages/HotelDetailsPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/HotelDetailsPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -1,5 +1,5 @@
 import React from "react";
 import LoginForm from "../Components/Login/LoginForm";
-import { Container, Row, Col, Form } from "react-bootstrap";
+import {Container, Row, Col, Form, FloatingLabel} from "react-bootstrap";
 import Navigation from "../Components/Layout/Navbar/Navigation";
 import Carousel from "react-bootstrap/Carousel";
@@ -69,6 +69,7 @@
                   placeholder="Каде ќе патувате?:"
                   id="location"
+                  value={data.hotelLocation}
                 ></Form.Control>
-                <label htmlFor="location">Локација:</label>
+                <label style={{left: "10px"}} htmlFor="location">Локација:</label>
               </Form.Floating>
             </Row>
@@ -80,6 +81,7 @@
                   placeholder="Датум на пристигнување:"
                   id="dateFrom"
+                  value={from}
                 ></Form.Control>
-                <label htmlFor="dateFrom">Датум на пристигнување:</label>
+                <label style={{left: "10px"}} htmlFor="dateFrom">Датум на пристигнување:</label>
               </Form.Floating>
             </Row>
@@ -91,6 +93,7 @@
                   placeholder="Датум на заминување:"
                   id="dateTo"
+                  value={to}
                 ></Form.Control>
-                <label htmlFor="dateTo">Датум на заминување:</label>
+                <label style={{left: "10px"}} htmlFor="dateTo">Датум на заминување:</label>
               </Form.Floating>
             </Row>
@@ -103,5 +106,5 @@
                   id="floatingPassengers"
                 ></Form.Control>
-                <label htmlFor="floatingPassengers">Број на гости:</label>
+                <label style={{left: "10px"}} htmlFor="floatingPassengers">Број на гости:</label>
               </Form.Floating>
             </Row>
Index: frontend/src/Pages/HotelEditPage.js
===================================================================
--- frontend/src/Pages/HotelEditPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/HotelEditPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -1,59 +1,60 @@
-import React, { useState } from "react";
-import { Container, Col, Row, Image } from "react-bootstrap";
+import React, {useState} from "react";
+import {Container, Col, Row, Image} from "react-bootstrap";
 import Navigation from "../Components/Layout/Navbar/Navigation";
 import ResourcesTab from "../Components/Resources/ResourcesTab";
 import HotelEditTab from "../Components/HotelEdit/HotelEditTab";
 import useGet from "../Components/Hooks/useGet";
-import { useParams } from "react-router-dom";
+import {Navigate, useParams} from "react-router-dom";
+import {useAuth} from "../Components/Context/AuthContext";
 
 
 const HotelEditPage = () => {
 
-  const params = useParams();
-  const link = "/hotel/list/" + params.hotelId;
-  const [changed, setChanged] = useState(0)
-  const { data, setData, isLoading, getData } = useGet(link, changed);
+    const params = useParams();
+    const link = "/hotel/list/" + params.hotelId;
+    const [changed, setChanged] = useState(0)
+    const {data, setData, isLoading, getData} = useGet(link, changed);
 
 
-  console.log(data)
-  return (
-    <>
-      <Navigation />
-      {!isLoading && <Container>
-        <Row className="mb-5">
-          <h2 style={{ color: "#159895", textAlign: "left" }}>Мои ресурси</h2>
-        </Row>
-        <Row className="mb-5">
-          <Col>
-            <Row className="d-flex mb-3">
-              <Col
-                className="d-flex justify-content-center"
-                style={{ maxWidth: "30%" }}
-              >
-                <Image
-                  src="https://t3.ftcdn.net/jpg/05/16/27/58/360_F_516275801_f3Fsp17x6HQK0xQgDQEELoTuERO4SsWV.jpg"
-                  style={{
-                    height: "5em",
-                    borderRadius: "50%",
-                    maxWidth: "100%",
-                  }}
-                  className="m-auto"
-                ></Image>
-              </Col>
-              <Col className="d-flex justify-content-center">
-                <Container className="pt-2" style={{ textAlign: "left" }}>
-                  <h4>{data.hotelName}</h4>
-                  <h5>{data.hotelLocation}</h5>
-                </Container>
-              </Col>
-            </Row>
-          </Col>
-        </Row>
-        <Row>
-            <HotelEditTab refresh={setChanged} displayRoom={data}/>
-        </Row>
-      </Container>}
-    </>
-  );
+    console.log(data)
+    return (
+        <>
+            <Navigation/>
+            {!isLoading && <Container>
+                <Row className="mb-5">
+                    <h2 style={{color: "#159895", textAlign: "left"}}>Мои ресурси</h2>
+                </Row>
+                <Row className="mb-5">
+                    <Col>
+                        <Row className="d-flex mb-3">
+                            <Col
+                                className="d-flex justify-content-center"
+                                style={{maxWidth: "30%"}}
+                            >
+                                <Image
+                                    src="https://t3.ftcdn.net/jpg/05/16/27/58/360_F_516275801_f3Fsp17x6HQK0xQgDQEELoTuERO4SsWV.jpg"
+                                    style={{
+                                        height: "5em",
+                                        borderRadius: "50%",
+                                        maxWidth: "100%",
+                                    }}
+                                    className="m-auto"
+                                ></Image>
+                            </Col>
+                            <Col className="d-flex justify-content-center">
+                                <Container className="pt-2" style={{textAlign: "left"}}>
+                                    <h4>{data.hotelName}</h4>
+                                    <h5>{data.hotelLocation}</h5>
+                                </Container>
+                            </Col>
+                        </Row>
+                    </Col>
+                </Row>
+                <Row>
+                    <HotelEditTab refresh={setChanged} displayRoom={data}/>
+                </Row>
+            </Container>}
+        </>
+    );
 };
 
Index: frontend/src/Pages/LoginErrorPage.js
===================================================================
--- frontend/src/Pages/LoginErrorPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/LoginErrorPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -11,5 +11,4 @@
     const [show, setShow] = useState(false);
     const [changed, setChanged] = useState(0);
-    const {data, isLoading} = useGet("/username")
     const userId = localStorage.getItem("userId")
     const [registered, setRegistered] = useState(false);
Index: frontend/src/Pages/LoginPage.js
===================================================================
--- frontend/src/Pages/LoginPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/LoginPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -3,4 +3,7 @@
 import { Container } from "react-bootstrap";
 import Navigation from "../Components/Layout/Navbar/Navigation";
+import {useAuth} from "../Components/Context/AuthContext";
+import {Navigate} from "react-router-dom";
+
 
 const LoginPage = () => {
@@ -8,4 +11,12 @@
   document.body.style.marginTop = "auto";
   document.body.style.marginBottom = "auto";
+
+  const Auth = useAuth();
+  const isLoggedIn = Auth.userIsAuthenticated();
+
+    if (isLoggedIn) {
+        return <Navigate to={'/home'}/>
+    }
+
   return (
     <>
Index: frontend/src/Pages/NoBusinessRegisteredError.js
===================================================================
--- frontend/src/Pages/NoBusinessRegisteredError.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/NoBusinessRegisteredError.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -6,10 +6,12 @@
 import RegisterBusinessForm from "../Components/Forms/RegisterBusinessForm";
 import useGet from "../Components/Hooks/useGet";
-import { useNavigate } from "react-router-dom";
+import {Navigate, useNavigate} from "react-router-dom";
+import {useAuth} from "../Components/Context/AuthContext";
 
 const NoBusinessRegisteredError = (props) => {
   const [show, setShow] = useState(false);
   const [changed, setChanged] = useState(0);
-  const {data, isLoading} = useGet("/username")
+  const Auth = useAuth();
+  const isLoggedIn = Auth.userIsAuthenticated();
   const userId = localStorage.getItem("userId")
   const [registered, setRegistered] = useState(false);
@@ -45,7 +47,9 @@
 
 
-  console.log(data)
+  if(!isLoggedIn)
+  {
+    return <Navigate to={'/login'}/>
+  }
 
-  !isLoading && !data && navigator("/login")
   !firmaIsLoading && firma && firma.length > 0 && firma[0].approved && navigator("/resources/hotel")
   
Index: frontend/src/Pages/ProfilePage.js
===================================================================
--- frontend/src/Pages/ProfilePage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/ProfilePage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -8,10 +8,13 @@
 import ChangePasswordForm from "../Components/Forms/ChangePasswordForm";
 import useGet from "../Components/Hooks/useGet";
+import {useAuth} from "../Components/Context/AuthContext";
+import {Navigate} from "react-router-dom";
 
 const ProfilePage = () => {
 
-  const { data, setData, isLoading, getData } = useGet("/principal");
+    const { data, setData, isLoading, getData } = useGet("/principal");
 
-  
+
+
     const profileData = {
         "name": "Марко",
@@ -19,5 +22,5 @@
         "address": "ул. Раскрсница бр. 10",
         "dateOfBirth": "2002-01-01",
-        "country": "Никогаш Северна само МАКЕДОНИЈА",
+        "country": "Македонија",
         "zip": "1000",
         "city": "Скопје",
@@ -27,8 +30,9 @@
 
 
+
   return (
     <>
       <Navigation />
-{      !isLoading && <Container>
+    {!isLoading && <Container>
         <Row className="mb-5">
           <h2 style={{ color: "#159895", textAlign: "left" }}>Мојот профил</h2>
Index: frontend/src/Pages/ResourcesPage.js
===================================================================
--- frontend/src/Pages/ResourcesPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/ResourcesPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -1,54 +1,55 @@
 import React from "react";
-import { Container, Col, Row, Image } from "react-bootstrap";
+import {Container, Col, Row, Image} from "react-bootstrap";
 import Navigation from "../Components/Layout/Navbar/Navigation";
 import ResourcesTab from "../Components/Resources/ResourcesTab";
-import { useState } from "react";
+import {useState} from "react";
 import useGet from "../Components/Hooks/useGet";
+import {useAuth} from "../Components/Context/AuthContext";
+import {Navigate} from "react-router-dom";
 
 const ResourcesPage = (props) => {
 
-  console.log(props.tab)
-  const { data, setData, isLoading, getData } = useGet("/principal");
+    const Auth = useAuth();
+    const user = Auth.getUser();
 
-
-  return (
-    <>
-      <Navigation />
-{!isLoading && <Container>
-        <Row className="mb-5">
-          <h2 style={{ color: "#159895", textAlign: "left" }}>Мои ресурси</h2>
-        </Row>
-        <Row className="mb-5">
-          <Col>
-            <Row className="d-flex mb-3">
-              <Col
-                className="d-flex justify-content-center"
-                style={{ maxWidth: "30%" }}
-              >
-                <Image
-                  src="https://t3.ftcdn.net/jpg/05/16/27/58/360_F_516275801_f3Fsp17x6HQK0xQgDQEELoTuERO4SsWV.jpg"
-                  style={{
-                    height: "5em",
-                    borderRadius: "50%",
-                    maxWidth: "100%",
-                  }}
-                  className="m-auto"
-                ></Image>
-              </Col>
-              <Col className="d-flex justify-content-center">
-                <Container className="pt-2" style={{ textAlign: "left" }}>
-                  <h4>{data.name + " " + data.surname}</h4>
-                  <h5>{data.email}</h5>
-                </Container>
-              </Col>
-            </Row>
-          </Col>
-        </Row>
-        <Row>
-            <ResourcesTab tab={props.tab}></ResourcesTab>
-        </Row>
-      </Container>}
-    </>
-  );
+    return (
+        <>
+            <Navigation/>
+            {<Container>
+                <Row className="mb-5">
+                    <h2 style={{color: "#159895", textAlign: "left"}}>Мои ресурси</h2>
+                </Row>
+                <Row className="mb-5">
+                    <Col>
+                        <Row className="d-flex mb-3">
+                            <Col
+                                className="d-flex justify-content-center"
+                                style={{maxWidth: "30%"}}
+                            >
+                                <Image
+                                    src="https://t3.ftcdn.net/jpg/05/16/27/58/360_F_516275801_f3Fsp17x6HQK0xQgDQEELoTuERO4SsWV.jpg"
+                                    style={{
+                                        height: "5em",
+                                        borderRadius: "50%",
+                                        maxWidth: "100%",
+                                    }}
+                                    className="m-auto"
+                                ></Image>
+                            </Col>
+                            <Col className="d-flex justify-content-center">
+                                <Container className="pt-2" style={{textAlign: "left"}}>
+                                    <h4>{user.name + " " + user.surname}</h4>
+                                    <h5>{user.username}</h5>
+                                </Container>
+                            </Col>
+                        </Row>
+                    </Col>
+                </Row>
+                <Row>
+                    <ResourcesTab tab={props.tab}></ResourcesTab>
+                </Row>
+            </Container>}
+        </>
+    );
 };
 
Index: frontend/src/Pages/RestaurantEditPage.js
===================================================================
--- frontend/src/Pages/RestaurantEditPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/RestaurantEditPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -6,5 +6,6 @@
 import RestaurantEditTab from "../Components/RestaurantEdit/RestaurantEditTab";
 import useGet from "../Components/Hooks/useGet";
-import { useParams, useSearchParams } from "react-router-dom";
+import {Navigate, useParams, useSearchParams} from "react-router-dom";
+import {useAuth} from "../Components/Context/AuthContext";
 
 const RestaurantEditPage = () => {
Index: frontend/src/Pages/SearchPage.js
===================================================================
--- frontend/src/Pages/SearchPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/SearchPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -11,5 +11,5 @@
 import BecomeAHost from "../Components/BecomeAHost/BecomeAHost"
 import HotelLisitng from "../Components/Listings/HotelListing"
-import SearchCriterias from "../Components/SearchCriterias/SearchCriteriasBar";
+import SearchCriteriasHotel from "../Components/SearchCriterias/SearchCriteriasHotel";
 import SortButton from "../Components/Listings/SortButton";
 import FilterButton from "../Components/Listings/FilterButton";
@@ -17,4 +17,5 @@
 import useGet from "../Components/Hooks/useGet";
 import { useParams } from "react-router-dom";
+import SearchCriteriasBar from "../Components/SearchCriterias/SearchCriteriasBar";
 
 
@@ -36,5 +37,5 @@
     }
     
-    let link = props.type === "transport" ? `/transport/search?from=${params.from}&to=${params.to}&date=${params.date}` : props.type === "hotel" ? `/hotel/search?hotelLocation=${params.hotelLocation}&dateFrom=${params.dateFrom}&dateTo=${params.dateTo}&numBeds=${params.numBeds}` : ""
+    let link = props.type === "transport" ? `/transport/search?from=${params.from}&to=${params.to}&date=${params.date}&numPassengers=${params.numPassengers}` : props.type === "hotel" ? `/hotel/search?hotelLocation=${params.hotelLocation}&dateFrom=${params.dateFrom}&dateTo=${params.dateTo}&numBeds=${params.numBeds}` : ""
     console.log(link)
     const { data, isLoading, getData, setData } = useGet(link);
@@ -43,5 +44,5 @@
         <>
             <Navigation></Navigation>
-            <SearchCriterias criterias={useParams()}></SearchCriterias>
+            <SearchCriteriasBar type={props.type} criterias={useParams()}></SearchCriteriasBar>
             <Container className="d-flex justify-content-end gx-5" style={{maxWidth: "60%"}}>
                 <Row>
Index: frontend/src/Pages/TransportEditPage.js
===================================================================
--- frontend/src/Pages/TransportEditPage.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/Pages/TransportEditPage.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -1,4 +1,4 @@
-import React, { useState } from "react";
-import { Container, Col, Row, Image } from "react-bootstrap";
+import React, {useState} from "react";
+import {Container, Col, Row, Image} from "react-bootstrap";
 import Navigation from "../Components/Layout/Navbar/Navigation";
 import ResourcesTab from "../Components/Resources/ResourcesTab";
@@ -7,56 +7,58 @@
 import TransportEditTab from "../Components/TransportEdit/TransportEditTab";
 import useGet from "../Components/Hooks/useGet";
-import { useParams } from "react-router-dom";
+import {Navigate, useParams} from "react-router-dom";
+import {useAuth} from "../Components/Context/AuthContext";
 
 const TransportEditPage = () => {
-  const params = useParams();
-  console.log("transportot ima id " + params.transportId);
-  const link = "/transport/" + params.transportId;
-  const [changed, setChanged] = useState(0);
-  const { data, setData, isLoading, getData } = useGet(link, changed);
 
-  !isLoading && console.log(data)
+    const params = useParams();
 
-  return (
-    <>
-      <Navigation />
-      {!isLoading && (
-        <Container>
-          <Row className="mb-5">
-            <h2 style={{ color: "#159895", textAlign: "left" }}>Мои ресурси</h2>
-          </Row>
-          <Row className="mb-5">
-            <Col>
-              <Row className="d-flex mb-3">
-                <Col
-                  className="d-flex justify-content-center"
-                  style={{ maxWidth: "30%" }}
-                >
-                  <Image
-                    src="https://t3.ftcdn.net/jpg/05/16/27/58/360_F_516275801_f3Fsp17x6HQK0xQgDQEELoTuERO4SsWV.jpg"
-                    style={{
-                      height: "5em",
-                      borderRadius: "50%",
-                      maxWidth: "100%",
-                    }}
-                    className="m-auto"
-                  ></Image>
-                </Col>
-                <Col className="d-flex justify-content-center">
-                  <Container className="pt-2" style={{ textAlign: "left" }}>
-                    <h4>{data.transportName}</h4>
-                    <h5>{data.carBrand + " " + data.carType}</h5>
-                  </Container>
-                </Col>
-              </Row>
-            </Col>
-          </Row>
-          <Row>
-            {data && <TransportEditTab displayRoute={data} refresh={setChanged}/>}
-          </Row>
-        </Container>
-      )}
-    </>
-  );
+    const link = "/transport/" + params.transportId;
+
+    const {data, setData, isLoading, getData, setChanged} = useGet(link);
+
+    !isLoading && console.log(data)
+
+    return (
+        <>
+            <Navigation/>
+            {!isLoading && (
+                <Container>
+                    <Row className="mb-5">
+                        <h2 style={{color: "#159895", textAlign: "left"}}>Мои ресурси</h2>
+                    </Row>
+                    <Row className="mb-5">
+                        <Col>
+                            <Row className="d-flex mb-3">
+                                <Col
+                                    className="d-flex justify-content-center"
+                                    style={{maxWidth: "30%"}}
+                                >
+                                    <Image
+                                        src="https://t3.ftcdn.net/jpg/05/16/27/58/360_F_516275801_f3Fsp17x6HQK0xQgDQEELoTuERO4SsWV.jpg"
+                                        style={{
+                                            height: "5em",
+                                            borderRadius: "50%",
+                                            maxWidth: "100%",
+                                        }}
+                                        className="m-auto"
+                                    ></Image>
+                                </Col>
+                                <Col className="d-flex justify-content-center">
+                                    <Container className="pt-2" style={{textAlign: "left"}}>
+                                        <h4>{data.transportName}</h4>
+                                        <h5>{data.carBrand + " " + data.carType}</h5>
+                                    </Container>
+                                </Col>
+                            </Row>
+                        </Col>
+                    </Row>
+                    <Row>
+                        {data && <TransportEditTab displayRoute={data} refresh={setChanged}/>}
+                    </Row>
+                </Container>
+            )}
+        </>
+    );
 };
 
Index: frontend/src/axios.js
===================================================================
--- frontend/src/axios.js	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ frontend/src/axios.js	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -1,21 +1,16 @@
 import axios from "axios";
+
 
 const instance = axios.create({
     baseURL: "http://localhost:8080/",
     withCredentials: true,
-    maxRedirects: 1
+    maxRedirects: 1,
+    beforeRedirect: (options, { headers }) => {
+        console.log(options)
+        if (options.hostname === "example.com") {
+            options.auth = "user:password";
+        }}
+
 })
 
-instance.interceptors.response.use(function (response) {
-    // Any status code that lie within the range of 2xx cause this function to trigger
-    // Do something with response data
-    return response;
-  }, function (error) {
-    console.log(error)
-    //  window.location.href="/login"
-    // Any status codes that falls outside the range of 2xx cause this function to trigger
-    // Do something with response error
-    return Promise.reject(error);
-  });
-
 export default instance
Index: src/main/java/com/tourMate/config/SecurityConfig.java
===================================================================
--- src/main/java/com/tourMate/config/SecurityConfig.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/config/SecurityConfig.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -7,4 +7,5 @@
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -14,4 +15,5 @@
 import org.springframework.security.web.SecurityFilterChain;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+import org.springframework.security.web.authentication.logout.HttpStatusReturningLogoutSuccessHandler;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 import org.springframework.web.cors.CorsConfiguration;
@@ -72,8 +74,9 @@
                                         .anyRequest().authenticated()
                                         .and()
-                                        .formLogin().loginPage("http://localhost:3000/login")
+                                        .formLogin()
                                         .loginProcessingUrl("/api/login").usernameParameter("username").passwordParameter("password")
                                         .successHandler((request, response, authentication) -> {
                                             response.setStatus(HttpServletResponse.SC_OK);
+                                            response.setCharacterEncoding("UTF-8");
                                             response.setContentType("application/json");
                                             response.getWriter().print("{\"message\": \"Login successful\",");
@@ -83,5 +86,6 @@
                                         .failureHandler((request, response, exception) -> {
                                             response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
-                                            response.getWriter().print("Pukla veza\n" + exception.getMessage());
+                                            response.sendRedirect("/login");
+                                            response.getWriter().print("Neuspesna najava\n" + exception.getMessage());
                                             response.getWriter().flush();
                                         })
@@ -91,5 +95,5 @@
                                         .sessionCreationPolicy(SessionCreationPolicy.ALWAYS)
                                         .and()
-                                        .logout()
+                                        .logout().logoutSuccessHandler((new HttpStatusReturningLogoutSuccessHandler(HttpStatus.OK)))
                                         .permitAll();
 
Index: src/main/java/com/tourMate/controllers/HotelController.java
===================================================================
--- src/main/java/com/tourMate/controllers/HotelController.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/controllers/HotelController.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -2,4 +2,6 @@
 
 import com.tourMate.dto.HotelDto;
+import com.tourMate.dto.HotelReservationDto;
+import com.tourMate.dto.HotelReservationUserDto;
 import com.tourMate.entities.*;
 import com.tourMate.services.HotelManager;
@@ -117,7 +119,8 @@
     //HOTEL ROOM CRUD
     @PostMapping(path = "/hotel/rooms/add")
-    public void addRoom(@RequestBody HotelRoom room, @RequestParam(name = "hotelId") long hotelId) {
+    public void addRoom(@RequestBody HotelRoom room,
+                        @RequestParam(name = "hotelId") long hotelId) {
         Hotels h = hotelManager.findHotelByID(hotelId);
-        hotelManager.createRoom(h, room.getHotelRoomDescription(), room.getHotelRoomName(), room.getKitchenAvailable(), room.getAirConditioning(), room.getBalcony(), room.getPrice());
+        hotelManager.createRoom(h, room.getHotelRoomDescription(), room.getHotelRoomName(), room.getKitchenAvailable(), room.getAirConditioning(), room.getBalcony(), room.getPrice(), room.getNumOfBeds());
     }
 
@@ -162,5 +165,6 @@
         //HOTEL AVAILABILITY CRUD
     @PostMapping(path = "/hotel/rooms/available/{id}/add")
-    public void addRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable, @PathVariable long id)
+    public void addRoomAvailible(@RequestBody HotelRoomAvailable hotelRoomAvailable,
+                                 @PathVariable long id)
     {
         HotelRoom hotelRoom = hotelManager.findRoomById(id);
@@ -191,10 +195,12 @@
     public List<HotelRoomAvailable> getRoomAvailability(@PathVariable Long id)
     {
-        return hotelManager.getRoomsAvailibility();
+        return hotelManager.getRoomsAvailableById(id);
     }
 
     @GetMapping(path = "/hotel/search")
-    public List<HotelDto> searchAvailibleRooms(@RequestParam(name = "hotelLocation") String hotelLocation, @RequestParam(name = "dateFrom") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateFrom,
-                                               @RequestParam(name = "dateTo") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateTo, @RequestParam(name = "numBeds") int numBeds)
+    public List<HotelDto> searchAvailibleRooms(@RequestParam(name = "hotelLocation") String hotelLocation,
+                                               @RequestParam(name = "dateFrom") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateFrom,
+                                               @RequestParam(name = "dateTo") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateTo,
+                                               @RequestParam(name = "numBeds") int numBeds)
     {
         System.out.println(hotelLocation);
@@ -216,3 +222,14 @@
     }
 
+    @GetMapping(path = "/hotel/{id}/reservations/active")
+    public List<HotelReservationDto> getActiveReservationsForHotel(@PathVariable Long id)
+    {
+        return hotelManager.findVaidReseravtionsByHotel(id);
+    }
+
+    @GetMapping(path = "/hotel/reservations/user/{id}")
+    public List<HotelReservationUserDto> getActiveReservationsForUser(@PathVariable Long id)
+    {
+        return hotelManager.findValidHotelReservationsByUser(id);
+    }
 }
Index: src/main/java/com/tourMate/controllers/TransportController.java
===================================================================
--- src/main/java/com/tourMate/controllers/TransportController.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/controllers/TransportController.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -23,7 +23,8 @@
 
     // TRANSPORT CRUD //
-    @PostMapping(path = "/transport/add")
-    public void add(@RequestBody Transport transport) {
-        transportManager.createTransport(transport.getTransportName(), transport.getCarBrand(), transport.getCarType(), transport.getCarManufacturedYear(), transport.getNoPassengers(), transport.getNoBags(), transport.getEMBG(), new User(), transport.getCarPlate());
+    @PostMapping(path = "/transport/add/{userId}")
+    public void add(@RequestBody Transport transport,
+                    @PathVariable Long userId) {
+        transportManager.createTransport(transport.getTransportName(), transport.getCarBrand(), transport.getCarType(), transport.getCarManufacturedYear(), transport.getNoPassengers(), transport.getNoBags(), transport.getEMBG(), userId, transport.getCarPlate());
 
     }
@@ -48,5 +49,4 @@
     public TransportDto getTransport(@PathVariable(name = "id") long transportId)
     {
-        System.out.println("TUKA SUUUUUM");
         return transportManager.findTransportById(transportId);
     }
@@ -92,6 +92,4 @@
     @PostMapping(path = "/transport/available/add")
     public void add(@RequestBody TransportAvailible transportAvailable, @RequestParam(name = "transportId") long transportId) {
-        System.out.println("OREEEEEL");
-        System.out.println("DVA ORLA");
         Transport t = transportManager.getTransportById(transportId);
         List<TransportRoute> routes = transportAvailable.getRoutes().stream().toList();
@@ -135,7 +133,9 @@
 
     @GetMapping(path = "/transport/search")
-    public List<TransportListingDto> searchAvailableTransport(@RequestParam(name = "from") String from, @RequestParam(name = "to") String to,
-                                                              @RequestParam(name = "date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date){
-        return transportManager.getTransportsAvailableByFilters(from, to, date);
+    public List<TransportListingDto> searchAvailableTransport(@RequestParam(name = "from") String from,
+                                                              @RequestParam(name = "to") String to,
+                                                              @RequestParam(name = "date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date,
+                                                              @RequestParam(name = "numPassengers") int numPassengers){
+        return transportManager.getTransportsAvailableByFilters(from, to, date, numPassengers);
     }
 }
Index: src/main/java/com/tourMate/controllers/UsersController.java
===================================================================
--- src/main/java/com/tourMate/controllers/UsersController.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/controllers/UsersController.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -11,5 +11,4 @@
 import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
 import java.util.List;
 
@@ -39,4 +38,32 @@
     {
         return businessManager.getUnapprovedBusinessesOfUser(userId);
+    }
+
+    @GetMapping(path = "/business/unapproved")
+    public List<Business> getAllUnapprovedBusinesses()
+    {
+        return businessManager.getUnapprovedBusinesses();
+    }
+
+    @GetMapping(path = "/users/unapproved")
+    public List<User> getAllUnapprovedUsers()
+    {
+        return usersManager.getUnapprovedUsers();
+    }
+
+    @GetMapping(path = "/users/approve/{userId}")
+    public ResponseEntity<?> approveUserProfile(@PathVariable Long userId)
+    {
+        usersManager.approveUserProfile(userId);
+        return new ResponseEntity<>(HttpStatus.OK);
+
+
+    }
+
+    @GetMapping(path = "/business/approve/{businessId}")
+    public ResponseEntity<?> approveBusiness(@PathVariable Long businessId)
+    {
+        businessManager.approveBusiness(businessId);
+        return new ResponseEntity<>(HttpStatus.OK);
     }
 
Index: src/main/java/com/tourMate/dao/BusinessDao.java
===================================================================
--- src/main/java/com/tourMate/dao/BusinessDao.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/BusinessDao.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -11,12 +11,15 @@
     @Transactional
     void createBusiness(Business business, long userId);
-    public List<Business> getUnapprovedBusinessesOfUser(long userId);
-    public void deleteBusiness(long businessId);
-    public List<Business> getCreatedBusinesses();
-    public Business findBusinessById (long businessId);
+    List<Business> getUnapprovedBusinessesOfUser(long userId);
+    void deleteBusiness(long businessId);
+    List<Business> getCreatedBusinesses();
+    Business findBusinessById (long businessId);
 
     @Transactional
     void editBusiness(long businessId, String name, String phone, String address, String edbs, User user, boolean approved);
-    public boolean hasBusiness(long userId);
+    boolean hasBusiness(long userId);
 
+    List<Business> getUnapprovedBusinesses();
+
+    void approveBusiness(Business business);
 }
Index: src/main/java/com/tourMate/dao/HotelDao.java
===================================================================
--- src/main/java/com/tourMate/dao/HotelDao.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/HotelDao.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -23,5 +23,5 @@
     public List<HotelRoomImages> getRoomImages(HotelRoom hotelRoom);
 
-    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price);
+    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds);
     public void editRoom(long hotelRoomId, Hotels hotel, String hotelRoomDescription, String HotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price);
     public void deleteRoom(long hotelRoomId);
Index: src/main/java/com/tourMate/dao/TransportDao.java
===================================================================
--- src/main/java/com/tourMate/dao/TransportDao.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/TransportDao.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -12,5 +12,5 @@
 public interface TransportDao {
 
-    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, User owner, String carPlate);
+    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, Long userId, String carPlate);
 
     public void deleteTransport(long transportId);
@@ -47,5 +47,5 @@
     public List<TransportAvailible> getTransportsAvailable();
 
-    public List<TransportRoute> getTransportsAvailableByFilters (String from,String to,Date date);
+    public List<TransportRoute> getTransportsAvailableByFilters (String from, String to, Date date, int numPassengers);
 
     public void createTransportRoute(TransportAvailible parentRoute, String from, String to, double price, Date departure, Date arrival, int freeSpace, int order);
Index: src/main/java/com/tourMate/dao/UsersDao.java
===================================================================
--- src/main/java/com/tourMate/dao/UsersDao.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/UsersDao.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -23,3 +23,7 @@
 
     UserDetails findUserByUsername(String username);
+
+    List<User> getUnapprovedUsers();
+
+    void approveUserProfile(User u);
 }
Index: src/main/java/com/tourMate/dao/impl/BusinessDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/BusinessDaoImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/impl/BusinessDaoImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -46,4 +46,16 @@
     }
 
+    @Override
+    public List<Business> getUnapprovedBusinesses() {
+        return em.createQuery("select b from Business b where not b.approved").getResultList();
+    }
+
+    @Override
+    @Transactional
+    public void approveBusiness(Business b) {
+        b.setApproved(true);
+        em.persist(b);
+    }
+
 
     @Override
Index: src/main/java/com/tourMate/dao/impl/HotelDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/HotelDaoImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/impl/HotelDaoImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -28,5 +28,4 @@
     public List<Hotels> getHotels() {
         List<Hotels> hoteli = em.createQuery("select h from Hotels h order by h.hotelId").getResultList();
-        System.out.println("OREEEEEEL");
         return hoteli;
         //return em.createQuery("select h from Hotels h order by h.hotelId").getResultList();
@@ -119,6 +118,6 @@
     @Transactional
     @Override
-    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price) {
-        HotelRoom hotelRoom = new HotelRoom(hotel, hotelRoomDescription, hotelRoomName, kitchenAvailable, airConditioning, balcony, price);
+    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) {
+        HotelRoom hotelRoom = new HotelRoom(hotel, hotelRoomDescription, hotelRoomName, kitchenAvailable, airConditioning, balcony, price, numOfBeds);
         em.persist(hotelRoom);
     }
@@ -188,5 +187,5 @@
     public List<HotelRoomAvailable> getRoomsAvailibilityByDateAndLocation(String hotelLocation, Date dateFrom, Date dateTo, int numberOfBeds) {
         return em.createQuery("select hr from HotelRoomAvailable hr where hr.dateFrom <= :dateFrom and hr.dateTo >= :dateTo " +
-                "and hr.hotelRoom.hotel.hotelLocation LIKE :hotelLocation and hr.numberOfBeds >= :numBeds")
+                "and hr.hotelRoom.hotel.hotelLocation LIKE :hotelLocation and hr.hotelRoom.numOfBeds >= :numBeds")
                 .setParameter("hotelLocation", hotelLocation)
                 .setParameter("dateFrom", dateFrom)
@@ -236,5 +235,5 @@
     public List<HotelRoomReservations> findReservationByHotel(Hotels hotel) {
         List<HotelRoom> hotelRooms = getRoomsOfHotel(hotel.getHotelId());
-        return em.createQuery("select hr from HotelRoomReservations hr where hr.hotelRoom in :hotelRooms").setParameter("hotelRooms", hotelRooms).getResultList();
+        return em.createQuery("select hr from HotelRoomReservations hr where hr.hotelRoom.hotel = :hotel").setParameter("hotel", hotel).getResultList();
     }
 
Index: src/main/java/com/tourMate/dao/impl/TransportDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/TransportDaoImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/impl/TransportDaoImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -22,6 +22,6 @@
     @Override
     @Transactional
-    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, User owner, String carPlate) {
-        User u = em.find(User.class, 1);
+    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, Long userId, String carPlate) {
+        User u = em.find(User.class, userId);
         Transport t=new Transport(transportName,carBrand,carType,carManufacturedYear,noPassengers,noBags,EMBG,u,carPlate);
         em.persist(t);
@@ -62,6 +62,13 @@
                         y.getFreeSpace(),
                         y.getTime(),
-                        y.getRoutes()
-                )).toList()
+                        y.getRoutes(),
+                        y.getRoutes().stream()
+                                .mapToDouble(TransportRoute::getPrice)
+                                .max().orElse(0)
+                )).toList(),
+                x.getAvailableRoutes().stream()
+                        .flatMapToDouble(y -> y.getRoutes()
+                                .stream()
+                                .mapToDouble(TransportRoute::getPrice)).max().orElseGet(() -> 0)
         )).toList();
     }
@@ -78,5 +85,8 @@
                 x.getFreeSpace(),
                 x.getTime(),
-                x.getRoutes()
+                x.getRoutes(),
+                x.getRoutes().stream()
+                        .mapToDouble(TransportRoute::getPrice)
+                        .max().orElse(0)
         )).toList();
     }
@@ -103,6 +113,13 @@
                         y.getFreeSpace(),
                         y.getTime(),
-                        y.getRoutes()
-                )).toList());
+                        y.getRoutes(),
+                        y.getRoutes().stream()
+                                .mapToDouble(TransportRoute::getPrice)
+                                .max().orElse(0)
+                )).toList(),
+                x.getAvailableRoutes().stream()
+                        .flatMapToDouble(y -> y.getRoutes()
+                                                        .stream()
+                                                        .mapToDouble(TransportRoute::getPrice)).max().orElseGet(() -> 0));
     }
 
@@ -151,8 +168,11 @@
 
     @Override
-    public List<TransportRoute> getTransportsAvailableByFilters(String fromL, String toL, Date date) {
+    public List<TransportRoute> getTransportsAvailableByFilters(String fromL, String toL, Date date, int numPassengers) {
         System.out.println(fromL + " " + toL);
-        return em.createQuery("select h from TransportRoute h where h.from = :froml and h.to = :tol").setParameter("froml", fromL).
-                setParameter("tol", toL).getResultList();
+        return em.createQuery("select h from TransportRoute h where h.from = :froml and h.to = :tol and h.freeSpace >= :nump")
+                .setParameter("froml", fromL)
+                .setParameter("tol", toL)
+                .setParameter("nump", numPassengers)
+                .getResultList();
     }
 
Index: src/main/java/com/tourMate/dao/impl/UsersDaoImpl.java
===================================================================
--- src/main/java/com/tourMate/dao/impl/UsersDaoImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dao/impl/UsersDaoImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -74,4 +74,15 @@
     }
 
+    @Override
+    public List<User> getUnapprovedUsers() {
+        return em.createQuery("select u from User u where not u.enabled").getResultList();
+    }
+
+    @Override
+    @Transactional
+    public void approveUserProfile(User u) {
+        u.setEnabled(true);
+        em.persist(u);
+    }
 
 
Index: src/main/java/com/tourMate/dto/RouteListingDto.java
===================================================================
--- src/main/java/com/tourMate/dto/RouteListingDto.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dto/RouteListingDto.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -18,6 +18,7 @@
     private Date time;
     private Collection<String> routes;
+    private Double maxPrice;
 
-    public RouteListingDto(long transportAvailibleId, String from, String to, Date date, int freeSpace, Date time, Collection<TransportRoute> routes) {
+    public RouteListingDto(long transportAvailibleId, String from, String to, Date date, int freeSpace, Date time, Collection<TransportRoute> routes, Double maxPrice) {
         this.transportAvailibleId = transportAvailibleId;
         this.from = from;
@@ -27,4 +28,5 @@
         this.time = time;
         this.routes = routes.stream().map(x -> x.getFrom()).distinct().skip(1).toList();
+        this.maxPrice = maxPrice;
     }
 
@@ -84,3 +86,7 @@
         this.routes = routes;
     }
+
+    public Double getMaxPrice() {
+        return maxPrice;
+    }
 }
Index: src/main/java/com/tourMate/dto/TransportDto.java
===================================================================
--- src/main/java/com/tourMate/dto/TransportDto.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/dto/TransportDto.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -16,7 +16,8 @@
     private User owner;
     private String carPlate;
+    private Double maxPrice;
     private Collection<RouteListingDto> availableRoutes;
 
-    public TransportDto(long transportID, String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, User owner, String carPlate, Collection<RouteListingDto> availableRoutes) {
+    public TransportDto(long transportID, String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, User owner, String carPlate, Collection<RouteListingDto> availableRoutes, Double maxPrice) {
         this.transportID = transportID;
         this.transportName = transportName;
@@ -30,4 +31,5 @@
         this.carPlate = carPlate;
         this.availableRoutes = availableRoutes;
+        this.maxPrice = maxPrice;
     }
 
Index: src/main/java/com/tourMate/entities/Business.java
===================================================================
--- src/main/java/com/tourMate/entities/Business.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/entities/Business.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -88,5 +88,5 @@
     }
 
-    @OneToOne(fetch = FetchType.LAZY)
+    @OneToOne(fetch = FetchType.EAGER)
     @JoinColumn(name = "owner_id", unique = false, nullable = false, foreignKey = @ForeignKey(name = "fk_ref_od_biznis_kon_korisnik"))
     public User getUser() {
@@ -107,3 +107,4 @@
         this.approved = approved;
     }
+
 }
Index: src/main/java/com/tourMate/entities/HotelRoom.java
===================================================================
--- src/main/java/com/tourMate/entities/HotelRoom.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/entities/HotelRoom.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -16,9 +16,10 @@
     private String hotelRoomName;
     private double price;
+    private int numOfBeds;
     private Boolean kitchenAvailable;
     private Boolean airConditioning;
     private Boolean balcony;
 
-    public HotelRoom(long hotelRoomId, Hotels hotel, String hotelRoomDescription, String hotelRoomName, double price, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony) {
+    public HotelRoom(long hotelRoomId, Hotels hotel, String hotelRoomDescription, String hotelRoomName, double price, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, int numOfBeds) {
         this.hotelRoomId = hotelRoomId;
         this.hotel = hotel;
@@ -29,8 +30,9 @@
         this.airConditioning = airConditioning;
         this.balcony = balcony;
+        this.numOfBeds = numOfBeds;
     }
 
     public HotelRoom(Hotels hotel, String hotelRoomDescription, String type,
-                     Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price) {
+                     Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) {
         this.hotel = hotel;
         this.hotelRoomDescription = hotelRoomDescription;
@@ -40,8 +42,9 @@
         this.balcony = balcony;
         this.price = price;
+        this.numOfBeds = numOfBeds;
     }
 
     public HotelRoom(String hotelRoomDescription, String type,
-                     Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price) {
+                     Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) {
         this.hotel = hotel;
         this.hotelRoomDescription = hotelRoomDescription;
@@ -51,4 +54,5 @@
         this.balcony = balcony;
         this.price = price;
+        this.numOfBeds = numOfBeds;
     }
 
@@ -68,5 +72,5 @@
     }
 
-    @ManyToOne(fetch = FetchType.LAZY)
+    @ManyToOne(fetch = FetchType.EAGER)
     @JoinColumn(name = "hotel_id", unique = false, nullable = false, foreignKey = @ForeignKey(name = "fk_ref_od_room_kon_hotel"))
     public Hotels getHotel() {
@@ -134,3 +138,12 @@
         this.balcony = balcony;
     }
+
+    @Column(name = "hotel_room_num_beds", unique = false)
+    public int getNumOfBeds() {
+        return numOfBeds;
+    }
+
+    public void setNumOfBeds(int numOfBeds) {
+        this.numOfBeds = numOfBeds;
+    }
 }
Index: src/main/java/com/tourMate/entities/HotelRoomReservations.java
===================================================================
--- src/main/java/com/tourMate/entities/HotelRoomReservations.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/entities/HotelRoomReservations.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -41,5 +41,5 @@
     }
 
-    @ManyToOne(fetch = FetchType.LAZY)
+    @ManyToOne(fetch = FetchType.EAGER)
     @JoinColumn(name = "room_id", unique = false, nullable = false, foreignKey = @ForeignKey(name = "fk_ref_od_roomres_kon_room"))
     public HotelRoom getHotelRoom() {
@@ -57,5 +57,5 @@
     }
 
-    @OneToOne(fetch = FetchType.LAZY)
+    @OneToOne(fetch = FetchType.EAGER)
     @JoinColumn(name = "user_id", unique = false, nullable = false, foreignKey = @ForeignKey(name = "fk_ref_od_roomres_kon_user"))
     public User getUser() {
Index: src/main/java/com/tourMate/entities/Reviews.java
===================================================================
--- src/main/java/com/tourMate/entities/Reviews.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/entities/Reviews.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -71,5 +71,5 @@
 
     @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "hotel_id", unique = false, nullable = false, foreignKey = @ForeignKey(name = "fk_ref_od_review_kon_hotel"))
+    @JoinColumn(name = "hotel_id", unique = false, nullable = true, foreignKey = @ForeignKey(name = "fk_ref_od_review_kon_hotel"))
     public Hotels getHotel () {
         return hotel;
@@ -81,5 +81,5 @@
 
     @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "restaurant_id", unique = false, nullable = false, foreignKey = @ForeignKey(name = "fk_ref_od_review_kon_restorani"))
+    @JoinColumn(name = "restaurant_id", unique = false, nullable = true, foreignKey = @ForeignKey(name = "fk_ref_od_review_kon_restorani"))
     public Restaurant getRestaurant () {
         return restaurant;
@@ -91,5 +91,5 @@
 
     @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "transport_id", unique = false, nullable = false, foreignKey = @ForeignKey(name = "fk_ref_od_review_kon_transport"))
+    @JoinColumn(name = "transport_id", unique = false, nullable = true, foreignKey = @ForeignKey(name = "fk_ref_od_review_kon_transport"))
     public Transport getTransport () {
         return transport;
Index: src/main/java/com/tourMate/entities/User.java
===================================================================
--- src/main/java/com/tourMate/entities/User.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/entities/User.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -52,5 +52,5 @@
     private Role role;
     @Column(name = "locked", unique = false, nullable = false)
-    boolean locked;
+    boolean locked = false;
 
     @Column(name = "enabled", unique = false, nullable = false)
@@ -162,5 +162,5 @@
     @Override
     public boolean isAccountNonLocked() {
-        return true;
+        return locked;
     }
 
Index: src/main/java/com/tourMate/services/BusinessManager.java
===================================================================
--- src/main/java/com/tourMate/services/BusinessManager.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/BusinessManager.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -9,5 +9,6 @@
     public List<Business> getUnapprovedBusinessesOfUser(long userId);
     public void deleteBusiness(long businessId);
-    public List<Business> getCreatedBusinesses();
+    public List<Business> getUnapprovedBusinesses();
+    public void approveBusiness(Long businessId);
     public Business findBusinessById (long businessId);
     public void editBusiness(long businessId, String name, String phone, String address, String edbs, User user, boolean approved);
Index: src/main/java/com/tourMate/services/HotelManager.java
===================================================================
--- src/main/java/com/tourMate/services/HotelManager.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/HotelManager.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -2,4 +2,6 @@
 
 import com.tourMate.dto.HotelDto;
+import com.tourMate.dto.HotelReservationDto;
+import com.tourMate.dto.HotelReservationUserDto;
 import com.tourMate.entities.*;
 
@@ -23,8 +25,7 @@
     public HotelRoom findRoomById (long hotelRoomId);
     public List<HotelRoomImages> getRoomImages(HotelRoom hotelRoom);
-    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price);
+    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds);
     public void editRoom(long hotelRoomId, Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price);
     public void deleteRoom(long hotelRoomId);
-    public List<HotelRoomAvailable> getRoomsAvailable(Long id);
     public void createRoomAvailible(HotelRoom hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds);
     public void editRoomAvailible(long hotelRoomAvailableId, HotelRoom hotelRoom, Date dateFrom, Date dateTo, int numberOfBeds);
@@ -33,4 +34,5 @@
     public HotelRoomAvailable findAvailibleRoomById(long hotelRoomAvailableId);
     public List<HotelRoomAvailable> getRoomsAvailibility();
+    public List<HotelRoomAvailable> getRoomsAvailableById(Long id);
     public List<HotelRoomAvailable> getRoomsAvailibilityByHotel(Hotels hotel);
     public List<HotelDto> getRoomsAvailibilityByDateAndLocation(String hotelLocation, Date dateFrom, Date dateTo, int numberOfBeds);
@@ -38,4 +40,6 @@
     public void editReservation(long hotelRoomReservedId, User user, HotelRoom hotelRoom, Date dateFrom, Date dateTo, Integer numberOfBeds);
     public void deleteReservation(long hotelRoomReservedId);
+    public List<HotelReservationDto> findVaidReseravtionsByHotel(Long hotelId);
+    public List<HotelReservationUserDto> findValidHotelReservationsByUser(Long userId);
     public HotelRoomReservations findReservationById(long hotelRoomReservedId);
     public List<HotelRoomReservations> findReservationByUser(User user);
Index: src/main/java/com/tourMate/services/TransportManager.java
===================================================================
--- src/main/java/com/tourMate/services/TransportManager.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/TransportManager.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -12,5 +12,5 @@
 public interface TransportManager {
 
-    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, User owner, String carPlate);
+    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, Long userId, String carPlate);
 
     public void deleteTransport(long transportId);
@@ -33,5 +33,5 @@
     public Transport getTransportById(long transportId);
 
-    public List<TransportListingDto> getTransportsAvailableByFilters (String from, String to, Date date);
+    public List<TransportListingDto> getTransportsAvailableByFilters (String from, String to, Date date, int numPassengers);
 
     public List<TransportReservation> getTransportsReservationsByUserID(long userID);
Index: src/main/java/com/tourMate/services/UsersManager.java
===================================================================
--- src/main/java/com/tourMate/services/UsersManager.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/UsersManager.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -16,3 +16,5 @@
 
     public void editUser(long userID, String name, String surname, String email, Date birthDate, String address, String contact);
+    public List<User> getUnapprovedUsers();
+    public void approveUserProfile(long userId);
 }
Index: src/main/java/com/tourMate/services/impl/BusinessManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/BusinessManagerImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/impl/BusinessManagerImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -34,11 +34,17 @@
 
     @Override
-    public boolean hasBusiness(long userId){
-        return businessDao.hasBusiness(userId);
+    public List<Business> getUnapprovedBusinesses() {
+        return businessDao.getUnapprovedBusinesses();
     }
 
     @Override
-    public List<Business> getCreatedBusinesses() {
-        return businessDao.getCreatedBusinesses();
+    public void approveBusiness(Long businessId) {
+        Business b = findBusinessById(businessId);
+        businessDao.approveBusiness(b);
+    }
+
+    @Override
+    public boolean hasBusiness(long userId){
+        return businessDao.hasBusiness(userId);
     }
 
Index: src/main/java/com/tourMate/services/impl/HotelManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/HotelManagerImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/impl/HotelManagerImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -4,4 +4,6 @@
 import com.tourMate.dao.UsersDao;
 import com.tourMate.dto.HotelDto;
+import com.tourMate.dto.HotelReservationDto;
+import com.tourMate.dto.HotelReservationUserDto;
 import com.tourMate.entities.*;
 import com.tourMate.services.HotelManager;
@@ -10,5 +12,4 @@
 
 import java.time.Duration;
-import java.util.Collection;
 import java.util.Date;
 import java.util.List;
@@ -104,6 +105,6 @@
 
     @Override
-    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price) {
-        hotelDao.createRoom(hotel, hotelRoomDescription, hotelRoomName, kitchenAvailable, airConditioning, balcony, price);
+    public void createRoom(Hotels hotel, String hotelRoomDescription, String hotelRoomName, Boolean kitchenAvailable, Boolean airConditioning, Boolean balcony, double price, int numOfBeds) {
+        hotelDao.createRoom(hotel, hotelRoomDescription, hotelRoomName, kitchenAvailable, airConditioning, balcony, price, numOfBeds);
     }
 
@@ -118,6 +119,7 @@
     }
 
-    @Override
-    public List<HotelRoomAvailable> getRoomsAvailable(Long id) {
+
+    @Override
+    public List<HotelRoomAvailable> getRoomsAvailableById(Long id) {
         return hotelDao.getRoomsAvailable(id);
     }
@@ -203,4 +205,35 @@
 
     @Override
+    public List<HotelReservationDto> findVaidReseravtionsByHotel(Long hotelId) {
+        Hotels hotel = findHotelByID(hotelId);
+        List<HotelRoomReservations> reservations = hotelDao.findReservationByHotel(hotel);
+        return reservations.stream()
+//                .filter(x -> x.getDateFrom().after(new Date()))
+                .map(x -> new HotelReservationDto(
+                        x.getUser(),
+                        x.getHotelRoom(),
+                        x.getDateFrom(),
+                        x.getDateTo(),
+                        x.getNumberOfBeds()
+                )).toList();
+    }
+
+    @Override
+    public List<HotelReservationUserDto> findValidHotelReservationsByUser(Long userId) {
+        User u = usersDao.findUserByID(userId);
+        List<HotelRoomReservations> reservations = hotelDao.findReservationByUser(u);
+        return reservations.stream().map(x -> new HotelReservationUserDto(
+                x.getUser(),
+                x.getHotelRoom(),
+                x.getDateFrom(),
+                x.getDateTo(),
+                x.getNumberOfBeds(),
+                x.getHotelRoom().getHotel().getHotelName(),
+                x.getHotelRoom().getHotel().getHotelLocation(),
+                ""
+        )).toList();
+    }
+
+    @Override
     public HotelRoomReservations findReservationById(long hotelRoomReservedId) {
         return hotelDao.findReservationById(hotelRoomReservedId);
Index: src/main/java/com/tourMate/services/impl/TransportManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/TransportManagerImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/impl/TransportManagerImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -24,6 +24,6 @@
 
     @Override
-    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, User owner, String carPlate) {
-        transportDao.createTransport(transportName, carBrand, carType, carManufacturedYear, noPassengers, noBags, EMBG, owner, carPlate);
+    public void createTransport(String transportName, String carBrand, String carType, int carManufacturedYear, int noPassengers, int noBags, long EMBG, Long userId, String carPlate) {
+        transportDao.createTransport(transportName, carBrand, carType, carManufacturedYear, noPassengers, noBags, EMBG, userId, carPlate);
     }
 
@@ -83,6 +83,6 @@
 
     @Override
-    public List<TransportListingDto> getTransportsAvailableByFilters(String from, String to, Date date) {
-        List<TransportRoute> transportAvailable = transportDao.getTransportsAvailableByFilters(from, to, date);
+    public List<TransportListingDto> getTransportsAvailableByFilters(String from, String to, Date date, int numPassengers) {
+        List<TransportRoute> transportAvailable = transportDao.getTransportsAvailableByFilters(from, to, date, numPassengers);
         Map<TransportAvailible, List<TransportRoute>> transportsByTransporter = transportAvailable.stream().collect(Collectors.groupingBy(x -> x.getParentRoute()));
         List<TransportListingDto> transportList = transportsByTransporter.keySet().stream().toList().stream()
Index: src/main/java/com/tourMate/services/impl/UsersManagerImpl.java
===================================================================
--- src/main/java/com/tourMate/services/impl/UsersManagerImpl.java	(revision e9b4ba920295b1b329df3313a9e80743d23804ee)
+++ src/main/java/com/tourMate/services/impl/UsersManagerImpl.java	(revision ac19a0cf7321de5f2be8991b7fc81fc71fe07f6c)
@@ -45,4 +45,15 @@
 
     @Override
+    public List<User> getUnapprovedUsers() {
+        return usersDao.getUnapprovedUsers();
+    }
+
+    @Override
+    public void approveUserProfile(long userId) {
+        User u = findUserByID(userId);
+        usersDao.approveUserProfile(u);
+    }
+
+    @Override
     public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
         return usersDao.findUserByUsername(username);
