Index: frontend/src/App.js
===================================================================
--- frontend/src/App.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ frontend/src/App.js	(revision 899b19da4d7326788e23e45dd1881ec1395e1d88)
@@ -1,4 +1,4 @@
 import './App.css';
-import {Route, BrowserRouter as Router, Navigate, Routes} from "react-router-dom";
+import {Route, BrowserRouter as Router, Navigate, Routes, useNavigate} from "react-router-dom";
 import axios from 'axios'
 import env from './env'
@@ -12,8 +12,9 @@
 import Restaurant from "./Dashboard/Restaurant";
 import Menu from "./Dashboard/Menu";
+import Review from "./Dashboard/Review";
 
 
 function App() {
-  const [user, setUser] = useState(false)
+  const [user, setUser] = useState(undefined)
   const [loading, setLoading] = useState(false)
   useEffect(()=>{
@@ -29,18 +30,23 @@
     })
   }
+  const logout = () => {
+    setUser(undefined);
+    sessionStorage.removeItem('Auth');
+    window.location.replace('/')
+  }
   return (
     <div style={{textAlign:'center'}}>
       <Router>
           <Routes>
-            <Route path="/dashboard" element={loading ? <Spin /> : user ?<Dashboard setUser={setUser}/> :  <Navigate to="/login" replace={true} />}>
+            <Route path="/dashboard" element={loading ? <Spin /> : user ? (user.isAdmin ? <Dashboard setUser={setUser}/> : <Navigate to="/" replace={true} />) :  <Navigate to="/login" replace={true} />}>
               <Route path="/dashboard" element={<Restaurant/>}/>
               <Route path="/dashboard/menu" element={<Menu/>}/>
               <Route path="/dashboard/reservations" element={<Reservations/>}/>
-              <Route path="/dashboard/reviews" element={'reviews'}/>
+              <Route path="/dashboard/reviews" element={<Review/>}/>
               <Route path="/dashboard/todo" element={'todo'}/>
             </Route>
             <Route path="/login" element={loading ? <Spin /> :  !user ? <Login setUser={setUser}/> :  <Navigate to="/dashboard" replace={true} />}/>
             <Route path="/register" element={loading ? <Spin /> :  !user ? <Register setUser={setUser}/> :  <Navigate to="/dashboard" replace={true} />}/>
-            <Route path="/" element={<FrontPage/>}/>
+            <Route path="/" element={<FrontPage user={user} logout={logout}/>}/>
           </Routes>
       </Router>
Index: frontend/src/Dashboard/Review.js
===================================================================
--- frontend/src/Dashboard/Review.js	(revision 899b19da4d7326788e23e45dd1881ec1395e1d88)
+++ frontend/src/Dashboard/Review.js	(revision 899b19da4d7326788e23e45dd1881ec1395e1d88)
@@ -0,0 +1,63 @@
+import React, {useEffect, useState} from 'react'
+import {Button, Card, Input, List, Rate, Spin, Tooltip} from "antd";
+import axios from "axios";
+import env from "../env";
+import moment from "moment";
+
+const Review = props => {
+    const [restaurant, setRestaurant] = useState({});
+    const [loading, setLoading] = useState(true);
+
+    useEffect(()=> {
+        setLoading(true);
+        getRestaurant()
+    },[])
+    useEffect(()=> {
+        getRestaurant()
+    },[props.refresh])
+
+    const getRestaurant = () => {
+        axios.get(env.api + 'Restaurants').then(res=>{
+            setRestaurant(res.data);
+            setLoading(false);
+        });
+    }
+
+    return(
+        <div style={{padding: props.front ? 0 : '20px',textAlign:'start'}}>
+            <div style={{
+                width: '100%',
+                backgroundColor: 'white',
+                padding: '20px',
+                height:'75px',
+                border: '1px solid lightgray'
+            }} id={'expandMain'}>
+                <h2 style={{float: 'left'}}>Оценки</h2>
+                {props.front ?
+                    (props.user?
+                        <Button style={{float:'right'}} type={'primary'} onClick={()=>props.setVisible(true)}>Внеси оценка</Button>
+                        : <Tooltip title={'Мора да се најавите за да оставите оценка'}><Button style={{float:'right'}} disabled type={'primary'} onClick={()=>props.setVisible(true)}>Внеси оценка</Button></Tooltip>)
+                    : ''
+                }
+            </div>
+            {loading ? <Spin style={{margin: '20px'}}/> :
+                <div>
+                    <div style={{backgroundColor: 'white',padding:'10px', border:'1px solid lightgray', borderTop: 'none'}}>
+                        <h3>Средна оценка: <Rate disabled allowHalf value={restaurant.averageReview}/> од вкупно {restaurant.reviews.length} оценки</h3>
+                    </div>
+                    <List dataSource={restaurant.reviews} itemLayout={'horizontal'} locale={{emptyText:'Нема оставени оценки за овој ресторан'}}
+                          renderItem={item => (
+                              <Card title={item.title} style={{width:'98%',backgroundColor:'white',margin:'1%'}}>
+                                  <p>{item.description}</p>
+                                  <Rate disabled value={item.stars}/>
+                                  <p style={{color:'gray'}}>{item.username} / {moment(item.createdAt).format("DD.MM.yyyy")}</p>
+                              </Card>
+                          )}/>
+                </div>
+
+            }
+        </div>
+    )
+}
+
+export default Review;
Index: frontend/src/FrontPage.js
===================================================================
--- frontend/src/FrontPage.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ frontend/src/FrontPage.js	(revision 899b19da4d7326788e23e45dd1881ec1395e1d88)
@@ -2,15 +2,18 @@
 import {Header} from "./Header";
 import {useNavigate} from "react-router-dom";
-import {Button, Card, Image, Modal, Spin} from "antd";
+import {Button, Card, DatePicker, Form, Image, Input, Modal, notification, Rate, Spin} from "antd";
 import placeholderImage from '../src/Assets/placeholder.png'
 import AddNewReservation from "./Dashboard/AddNewReservation";
 import axios from "axios";
 import env from "./env";
+import Review from "./Dashboard/Review";
 
-const FrontPage = ({}) => {
+const FrontPage = ({user, logout}) => {
     const [restaurant, setRestaurant] = useState({name:'Sample Restaurant name', address: 'Sample street 1', city:'Sample'});
     const [newReservationModal, setNewReservationModal] = useState(false);
     const [saveModalLoading, setSaveModalLoading] = useState(false);
+    const [newReviewModal, setNewReviewModal] = useState(false);
     const [loading, setLoading] = useState(true);
+    const [refreshToggle, setRefreshToggle] = useState(false);
     const history = useNavigate();
 
@@ -23,7 +26,24 @@
     },[])
 
+    const saveNewReview = data =>{
+        setSaveModalLoading(true)
+        axios.post(env.api + 'Reviews',data,{ headers: {Authorization: sessionStorage.getItem('Auth')}}).then(res=>{
+            setNewReviewModal(false)
+            setSaveModalLoading(false)
+            notification['success']({
+                message: 'Успешно зачувано',
+            });
+            setRefreshToggle(ref => !ref);
+        }).catch(err=>{
+            setSaveModalLoading(false)
+            notification['error']({
+                message: 'Се случи проблем при зачувување',
+            });
+        });
+    }
+
     return(
         <div>
-            <Header onClickButton={()=>history('/login')} buttonText={'Логирај се'}/>
+            <Header onClickButton={!user?()=>history('/login'):logout} buttonText={!user?'Најави се':'Одјави се'}/>
             {loading ? <Spin style={{margin: 20}}/> :
                 <div style={{
@@ -69,11 +89,20 @@
                     </div>
                     <div style={{textAlign: 'start', backgroundColor: '#F2F2F2'}}>
-                        <h2 style={{textAlign:'center',paddingTop:'20px'}}>Мени</h2>
+                        <div style={{
+                            width: '100%',
+                            height:'75px',
+                            backgroundColor: 'white',
+                            padding: '20px',
+                            border: '1px solid lightgray'
+                        }} >
+                            <h2 style={{float: 'left'}}>Мени</h2>
+                        </div>
                         {restaurant.menu.map(el =>
-                            <Card title={el.title} style={{ width: 280, display:'inline-block', margin:'10px' }} size="small">
+                            <Card key={el.id} title={el.title} style={{ width: 280, display:'inline-block', margin:'10px' }} size="small">
                                 <p>{el.description}</p>
                                 <b>{el.price} ден.</b>
                             </Card>
                         )}
+                        <Review user={user} front refresh={refreshToggle} setVisible={setNewReviewModal}/>
                     </div>
                 </div>
@@ -92,8 +121,61 @@
                 <AddNewReservation setModalSaveLoading={setSaveModalLoading} setModalVisible={setNewReservationModal} />
             </Modal>
+            <Modal
+                style={{top: 20}}
+                width={'700px'}
+                title="Нова оценка"
+                footer={[
+                    <Button form="newReviewForm" key="submit" htmlType="submit" type={'primary'} loading={saveModalLoading}>
+                        Прати
+                    </Button>
+                ]}
+                onCancel={()=>setNewReviewModal(false)}
+                visible={newReviewModal}>
+                <Form onFinish={saveNewReview}
+                      id={'newReviewForm'}
+                      onFinishFailed={()=>
+                          notification['error']({
+                              message: 'Ве молиме поправете ги сите грешки пред зачувување!',
+                          })}>
+                    <Form.Item
+                        label="Наслов"
+                        name="title"
+                        rules={[
+                            {
+                                required: true,
+                                message: 'Ве молиме внесете наслов!',
+                            },
+                        ]}
+                    >
+                        <Input/>
+                    </Form.Item>
+                    <Form.Item
+                        label="Опис"
+                        name="description"
+                        rules={[
+                            {
+                                required: true,
+                                message: 'Ве молиме внесете опис!',
+                            },
+                        ]}
+                    >
+                        <Input.TextArea rows={4}/>
+                    </Form.Item>
+                    <Form.Item
+                        label="Оценка"
+                        name="stars"
+                        rules={[
+                            {
+                                required: true,
+                                message: 'Ве молиме внесете оценка!',
+                            },
+                        ]}
+                    >
+                        <Rate/>
+                    </Form.Item>
+                </Form>
+            </Modal>
         </div>
-
     )
 }
-
 export default FrontPage;
Index: frontend/src/auth.js
===================================================================
--- frontend/src/auth.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ frontend/src/auth.js	(revision 899b19da4d7326788e23e45dd1881ec1395e1d88)
@@ -21,7 +21,7 @@
             setAuthCookie(res.data.token)
             console.log(res.data.token)
-            setUser(true)
+            setUser(res.data)
             setLoading(false)
-            history('/dashboard')
+            history(res.data.isAdmin ? '/dashboard' : '/')
         }).catch(el => {
             Modal.error({
@@ -101,7 +101,7 @@
         axios.post(env.api+'Users/register',{email: attr.email, password: attr.password}).then(res => {
             setAuthCookie(res.data.token)
-            setUser(true)
+            setUser(res.data)
             setLoading(false)
-            history('/dashboard')
+            history(res.data.isAdmin ? '/dashboard' : '/')
         })
     }
