Index: frontend/src/App.js
===================================================================
--- frontend/src/App.js	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ frontend/src/App.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -10,4 +10,6 @@
 import Reservations from "./Dashboard/Reservations";
 import FrontPage from "./FrontPage";
+import Restaurant from "./Dashboard/Restaurant";
+import Menu from "./Dashboard/Menu";
 
 
@@ -32,6 +34,6 @@
           <Routes>
             <Route path="/dashboard" element={loading ? <Spin /> : user ?<Dashboard setUser={setUser}/> :  <Navigate to="/login" replace={true} />}>
-              <Route path="/dashboard" element={'edit restaurant'}/>
-              <Route path="/dashboard/menu" element={'menu'}/>
+              <Route path="/dashboard" element={<Restaurant/>}/>
+              <Route path="/dashboard/menu" element={<Menu/>}/>
               <Route path="/dashboard/reservations" element={<Reservations/>}/>
               <Route path="/dashboard/reviews" element={'reviews'}/>
Index: frontend/src/Dashboard.js
===================================================================
--- frontend/src/Dashboard.js	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ frontend/src/Dashboard.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -28,6 +28,6 @@
                         to="/dashboard/reservations">Резервации</Link></Menu.Item>
                     <Menu.Item key="4" icon={<QuestionCircleOutlined/>}><Link
-                        to="/dashboard/reviews">Reviews</Link></Menu.Item>
-                    <Menu.Item key="5" icon={<BookOutlined/>}><Link to="/dashboard/todo">Todo</Link></Menu.Item>
+                        to="/dashboard/reviews">Оценки</Link></Menu.Item>
+                    <Menu.Item key="5" icon={<BookOutlined/>}><Link to="/dashboard/todo">ToDo</Link></Menu.Item>
                 </Menu>
             </div>
Index: frontend/src/Dashboard/Menu.js
===================================================================
--- frontend/src/Dashboard/Menu.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ frontend/src/Dashboard/Menu.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,130 @@
+import React, {useEffect, useState} from 'react'
+import {Button, Form, Input, Card, notification} from "antd";
+import axios from "axios";
+import env from "../env";
+
+const Menu = props => {
+
+    const [loadingSave, setLoadingSave] = useState(false);
+    const [restaurant, setRestaurant] = useState({menu:[]});
+    const [loading, setLoading] = useState(true);
+
+    useEffect(()=> {
+        setLoading(true);
+        getRestaurant()
+    },[])
+
+    const getRestaurant = () => {
+        axios.get(env.api + 'Restaurants').then(res=>{
+            setRestaurant(res.data);
+            setLoadingSave(false);
+            setLoadingSave(false);
+        });
+    }
+
+    const addMenu = (data) => {
+        setLoadingSave(true);
+        axios.post(env.api + 'Menu/',{...data,price: parseInt(data.price)}, { headers: {Authorization: sessionStorage.getItem('Auth')}
+        }).then(res => {
+            notification['success']({
+                message: 'Успешно зачувано',
+            });
+            getRestaurant()
+        }).catch(er => {
+            notification['error']({
+                message: 'Се случи проблем при зачувување мени. Ве молиме пробајте повторно подоцна',
+            });
+            setLoadingSave(false);
+            console.log(er);
+        })
+        console.log(data)
+    }
+
+    const deleteMenu = (id) => {
+        axios.delete(env.api + 'Menu/'+id, {headers: {Authorization: sessionStorage.getItem('Auth')}
+        }).then(res => {
+            notification['success']({
+                message: 'Успешно избришано',
+            });
+            getRestaurant()
+        }).catch(er => {
+            notification['error']({
+                message: 'Се случи проблем при бришење мени. Ве молиме пробајте повторно подоцна',
+            });
+            console.log(er);
+        })
+    }
+
+    return(
+        <div style={{padding:'20px'}}>
+            <div style={{backgroundColor:'white'}}>
+                <div style={{
+                    width: '100%',
+                    height:'75px',
+                    backgroundColor: 'white',
+                    padding: '20px',
+                    border: '1px solid lightgray'
+                }} >
+                    <h2 style={{float: 'left'}}>Мени</h2>
+                </div>
+                <Form style={{padding:20}} onFinish={addMenu}>
+                    <h2 style={{margin: '20px',marginTop: 0}}>Додади нов запис:</h2>
+                    <Form.Item
+                        label="Име"
+                        name="title"
+
+                        rules={[
+                            {
+                                required: true,
+                                message: 'Ве молиме внесете име!',
+                            },
+                        ]}
+                    >
+                        <Input/>
+                    </Form.Item>
+                    <Form.Item
+                        label="Опис"
+                        name="description"
+
+                        rules={[
+                            {
+                                required: true,
+                                message: 'Ве молиме внесете опис!',
+                            },
+                        ]}
+                    >
+                        <Input/>
+                    </Form.Item>
+                    <Form.Item
+                        label="Цена"
+                        name="price"
+
+                        rules={[
+                            {
+                                required: true,
+                                message: 'Ве молиме внесете цена!',
+                            },
+                        ]}
+                    >
+                        <Input placeholder="Цена" type={'number'}/>
+                    </Form.Item>
+                    <Form.Item style={{textAlign: 'center'}}>
+                        <Button type="primary" htmlType="submit" loading={loadingSave}>
+                            Зачувај
+                        </Button>
+                    </Form.Item>
+                </Form>
+            </div>
+            <div style={{textAlign:'start'}}>
+                {restaurant.menu.map(el =>
+                    <Card title={el.title} extra={<p style={{color:'red',cursor:'pointer'}} onClick={()=>deleteMenu(el.id)}>Избриши</p>} style={{ width: 300, display:'inline-block', margin:'10px' }} size="small">
+                        <p>{el.description}</p>
+                        <b>{el.price} ден.</b>
+                    </Card>
+                )}
+            </div>
+        </div>
+    )
+}
+
+export default Menu;
Index: frontend/src/Dashboard/Reservations.js
===================================================================
--- frontend/src/Dashboard/Reservations.js	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ frontend/src/Dashboard/Reservations.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -1,4 +1,4 @@
 import React, {useEffect, useState} from 'react'
-import {Button, Modal, DatePicker, List, notification} from "antd";
+import {Button, Modal, DatePicker, List, notification, Input} from "antd";
 import AddNewReservation from "./AddNewReservation";
 import moment from 'moment'
@@ -13,4 +13,5 @@
     const [date, setDate] = useState([moment().startOf('day'), moment().add(24,'hours')]);
     const [reservations, setReservations] = useState([])
+    const [newReservations, setNewReservations] = useState([])
     const [loadingReservations, setLoadingReservations] = useState(true)
 
@@ -26,15 +27,17 @@
                     to: date[1].format('YYYY-MM-DDThh:mm:ss') + 'Z'
                 }, headers: {Authorization: sessionStorage.getItem('Auth')}
-            })
-                .then(res => {
+            }).then(res => {
+                axios.get(env.api + 'Reservations/new', {
+                     headers: {Authorization: sessionStorage.getItem('Auth')}
+                }).then(newres=>{
+                    setNewReservations(newres.data);
                     setReservations(res.data);
-                    console.log(res.data)
                     setLoadingReservations(false)
-                }).catch(er => {
+                })
+            }).catch(er => {
                 setLoadingReservations(false)
                 notification['error']({
                     message: 'Се случи проблем при додавање резервација. Ве молиме пробајте повторно подоцна',
                 });
-
                 console.log(er);
             });
@@ -48,5 +51,5 @@
     const changeReservationStatus = (id, newStatus) => {
         console.log(id)
-        axios.put(env.api + 'Reservations/'+id,{}, {
+        axios.put(env.api + 'Reservations/'+id+'/status',{}, {
             params: {
                 status: newStatus
@@ -59,6 +62,35 @@
             });
             console.log(er);
-        });
-    }
+        })
+    }
+    const changeTable = (ev, item) => {
+        axios.put(env.api + 'Reservations/'+item.id+'/table',{}, {
+            params: {
+                tableId: ev.target.value == '' ? 0 : ev.target.value
+            }, headers: {Authorization: sessionStorage.getItem('Auth')}
+        }).then(res => {
+            console.log("success");
+        }).catch(er => {
+            notification['error']({
+                message: 'Се случи проблем при менување резервација. Ве молиме пробајте повторно подоцна',
+            });
+            console.log(er);
+        })
+        setNewReservations(old =>{
+            const newRes = old.indexOf(item);
+            if(newRes == -1) return old;
+            const copy = [...old];
+            copy[newRes].table = ev.target.value;
+            return copy;
+        })
+        setReservations(old =>{
+            const newRes = old.indexOf(item);
+            if(newRes == -1) return old;
+            const copy = [...old];
+            copy[newRes].table = ev.target.value;
+            return copy;
+        })
+    }
+
     const ReservationType = [ 'Кратко', 'Долго', 'Настан' ];
     const ReservationPlace = [ 'Внатре', 'Надвор' ];
@@ -84,4 +116,40 @@
                     border: '1px solid lightgray'
                 }} >
+                    <h3 style={{float: 'left'}}>Нови резервации</h3>
+                </div>
+                <List loading={loadingReservations} dataSource={newReservations} itemLayout={'horizontal'} locale={{emptyText:'Немате нови резервации'}}
+                      renderItem={item => (
+                          <List.Item
+                              actions={
+                                  item.reservationStatus == 0 ?
+                                      [<a onClick={()=>changeReservationStatus(item.id,ReservationStatus[1])}>Прифати</a>, <a style={{color:'red'}} onClick={()=>changeReservationStatus(item.id,ReservationStatus[2])}>Отфрли</a>]
+                                      : item.reservationStatus == 1 ? [<span style={{color:'green'}}>Прифатено</span>] : [<span style={{color:'red'}}>Отфрлено</span>]}>
+                              <div style={{display:'flex',flexDirection:'row',justifyContent:'space-between',width:'100%', padding:'10px'}}>
+                                  <div style={{textAlign:'start', width:'200px'}}>
+                                      <div><b>Име:</b> {item.contactName}</div>
+                                      <div><b>Број:</b> {item.contactNumber}</div>
+                                  </div>
+                                  <div style={{marginTop:'10px'}}>
+                                      Маса: <Input style={{ width: '60px' }} type={'number'} value={item.table == 0 ? '' : item.table} onChange={(ev)=>changeTable(ev,item)}/>
+                                  </div>
+                                  <div>
+                                      <div><b>Луѓе:</b> {item.persons}</div>
+                                      <div>{ReservationPlace[item.reservationPlace]}, {ReservationType[item.reservationType]}</div>
+                                  </div>
+                                  <div>
+                                      <div style={{marginTop:'10px'}}>{moment(item.startDate).format('hh:mm DD/MM/YY')}</div>
+                                  </div>
+                              </div>
+                          </List.Item>
+                      )}/>
+            </div>
+            <div style={{marginTop:'20px', backgroundColor:'white'}}>
+                <div style={{
+                    width: '100%',
+                    height:'75px',
+                    backgroundColor: 'white',
+                    padding: '20px',
+                    border: '1px solid lightgray'
+                }} >
                     <h3 style={{float: 'left'}}>Сите резервации</h3>
                     <RangePicker
@@ -89,4 +157,5 @@
                         style={{float:'right'}}
                         ranges={{
+                            'Наредни 3 часа': [moment(), moment().add(3,'hours')],
                             'Следни 24 часа': [moment().startOf('day'), moment().add(24,'hours')],
                             'Овој месец': [moment().startOf('month'), moment().endOf('month')],
@@ -96,5 +165,5 @@
                     />
                 </div>
-                <List loading={loadingReservations} dataSource={reservations} itemLayout={'horizontal'}
+                <List loading={loadingReservations} dataSource={reservations} itemLayout={'horizontal'} locale={{emptyText:'Нема резервации за овој период'}}
                       renderItem={item => (
                           <List.Item
@@ -107,4 +176,7 @@
                                     <div><b>Име:</b> {item.contactName}</div>
                                     <div><b>Број:</b> {item.contactNumber}</div>
+                                </div>
+                                <div style={{marginTop:'10px'}}>
+                                    Маса: <Input style={{ width: '60px' }} type={'number'} value={item.table == 0 ? '' : item.table} onChange={(ev)=>changeTable(ev,item)}/>
                                 </div>
                                 <div>
Index: frontend/src/Dashboard/Restaurant.js
===================================================================
--- frontend/src/Dashboard/Restaurant.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ frontend/src/Dashboard/Restaurant.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,133 @@
+import React,{useState, useEffect} from 'react';
+import {Form, Upload, Spin, message, Modal, Button, Input, notification} from "antd";
+import {PlusOutlined} from "@ant-design/icons";
+import axios from 'axios';
+import env from "../env";
+
+const Restaurant = props => {
+    const [loadingSave, setLoadingSave] = useState(false);
+    const [loadingLoad, setLoadingLoad] = useState(true);
+    const [restaurant, setRestaurant] = useState({});
+
+    useEffect(()=> {
+        setLoadingLoad(true);
+        getRestaurant()
+    },[])
+
+    const getRestaurant = () => {
+        axios.get(env.api + 'Restaurants').then(res=>{
+            setRestaurant(res.data);
+            setLoadingLoad(false);
+            setLoadingSave(false);
+        });
+    }
+    const beforeUpload = (file) => {
+        const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
+        if (!isJpgOrPng) {
+            message.error('Сликата мора да е формат jpg или png');
+        }
+        if(isJpgOrPng) setLoadingSave(true);
+        return isJpgOrPng;
+    }
+    const uploadChanged = (ev) =>{
+        if(ev.file.status == 'done'){
+            getRestaurant()
+        }
+    }
+    const submitEdit = (form) => {
+        setLoadingSave(true);
+        axios.put(env.api + 'Restaurants/',{...form}, { headers: {Authorization: sessionStorage.getItem('Auth')}
+        }).then(res => {
+            notification['success']({
+                message: 'Успешно зачувано',
+            });
+            setLoadingSave(false);
+        }).catch(er => {
+            notification['error']({
+                message: 'Се случи проблем при менување контакт информации. Ве молиме пробајте повторно подоцна',
+            });
+            setLoadingSave(false);
+            console.log(er);
+        })
+        console.log(form)
+    }
+    return(
+        <div style={{padding:'20px'}}>
+            <div style={{backgroundColor:'white'}}>
+                <div style={{
+                    width: '100%',
+                    height:'75px',
+                    backgroundColor: 'white',
+                    padding: '20px',
+                    border: '1px solid lightgray'
+                }} >
+                    <h2 style={{float: 'left'}}>Ресторан</h2>
+                </div>
+                {loadingLoad ? <Spin size="large"/> :
+                    <div style={{padding:'20px'}}>
+                        <Upload
+                            name="file"
+                            onChange={uploadChanged}
+                            showUploadList={false}
+                            beforeUpload={beforeUpload}
+                            style={{maxWidth: '90%', height: '200px', overflow: 'hidden'}}
+                            action={env.api+'Restaurants/upload'}
+                        >
+                            {restaurant.base64Image != "data:image/png;base64," ? <img style={{cursor: 'pointer'}} src={restaurant.base64Image} alt="avatar"
+                                                      height='200px'/> : <div style={{cursor:'pointer',margin: 15,border:'1px solid gray',padding: 5}}><PlusOutlined /><div style={{ marginTop: 8}}>Додади слика</div></div>}
+                        </Upload>
+                        <div style={{textAlign: 'start', width: '100%', marginTop:'10px'}}>
+                            <Form onFinish={submitEdit}
+                                  onFinishFailed={() => Modal.error({title: "Ве молиме пополнете ги задолжителните полиња"})}
+                                  initialValues={{...restaurant}}>
+                                <Form.Item
+                                    label="Име на локал"
+                                    name="name"
+
+                                    rules={[
+                                        {
+                                            required: true,
+                                            message: 'Ве молиме внесете име на локалот!',
+                                        },
+                                    ]}
+                                >
+                                    <Input/>
+                                </Form.Item>
+                                <Form.Item
+                                    label="Адреса"
+                                    name="address"
+                                    rules={[
+                                        {
+                                            required: true,
+                                            message: 'Ве молиме внесете адреса!',
+                                        },
+                                    ]}
+                                >
+                                    <Input/>
+                                </Form.Item>
+                                <Form.Item
+                                    label="Телефон"
+                                    name="phone"
+                                    rules={[
+                                        {
+                                            required: true,
+                                            message: 'Ве молиме внесете телефон!',
+                                        },
+                                    ]}
+                                >
+                                    <Input placeholder='ex. 070123456'/>
+                                </Form.Item>
+                                <Form.Item style={{textAlign: 'center'}}>
+                                    <Button type="primary" htmlType="submit" loading={loadingSave}>
+                                        Зачувај
+                                    </Button>
+                                </Form.Item>
+                            </Form>
+                        </div>
+                    </div>
+                }
+            </div>
+        </div>
+    )
+}
+export default Restaurant;
Index: frontend/src/FrontPage.js
===================================================================
--- frontend/src/FrontPage.js	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ frontend/src/FrontPage.js	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -1,8 +1,10 @@
-import React, {useState} from 'react'
+import React, {useState, useEffect} from 'react'
 import {Header} from "./Header";
 import {useNavigate} from "react-router-dom";
-import {Button, Image, Modal} from "antd";
+import {Button, Card, Image, Modal, Spin} from "antd";
 import placeholderImage from '../src/Assets/placeholder.png'
 import AddNewReservation from "./Dashboard/AddNewReservation";
+import axios from "axios";
+import env from "./env";
 
 const FrontPage = ({}) => {
@@ -10,8 +12,19 @@
     const [newReservationModal, setNewReservationModal] = useState(false);
     const [saveModalLoading, setSaveModalLoading] = useState(false);
+    const [loading, setLoading] = useState(true);
     const history = useNavigate();
+
+    useEffect(()=>{
+        setLoading(true);
+        axios.get(env.api + 'Restaurants').then(res=>{
+            setRestaurant(res.data);
+            setLoading(false);
+        });
+    },[])
+
     return(
         <div>
             <Header onClickButton={()=>history('/login')} buttonText={'Логирај се'}/>
+            {loading ? <Spin style={{margin: 20}}/> :
                 <div style={{
                     height: '400px',
@@ -20,30 +33,50 @@
                     padding: '20px'
                 }}>
-                <div id={'businessFrontImage'}>
-                    <Image
-                        src={restaurant.photo}
-                        id={'businessFrontInsideImage'}
-                        placeholder={
-                            <img
-                                src={placeholderImage}
-                                alt={'place'}
-                                style={{width:'100%',height:'100%'}}
-                            />
-                        }
-                        wrapperStyle={{overflow:'hidden',width:'100%'}}
-                        style={{width:'100%', height:'100%',margin: 'auto',objectFit:'cover'}}>
-                    </Image>
+                    <div id={'businessFrontImage'}>
+                        <Image
+                            src={restaurant.base64Image}
+                            id={'businessFrontInsideImage'}
+                            placeholder={
+                                <img
+                                    src={placeholderImage}
+                                    alt={'place'}
+                                    style={{width: '100%', height: '100%'}}
+                                />
+                            }
+                            wrapperStyle={{overflow: 'hidden', width: '100%'}}
+                            style={{width: '100%', height: '100%', margin: 'auto', objectFit: 'cover'}}>
+                        </Image>
+                    </div>
+                    <div id={'businessFrontInfo'}>
+                        <div style={{
+                            width: '100%',
+                            height: '100%',
+                            display: 'flex',
+                            flexDirection: 'column',
+                            justifyContent: 'space-between'
+                        }}>
+                            <div style={{flexGrow: 1, fontSize: '20px', fontWeight: '500', textAlign: 'start'}}>
+                                {restaurant.name}
+                                <div style={{
+                                    color: 'gray',
+                                    fontSize: '10px'
+                                }}>{restaurant.address}, {restaurant.phone}</div>
+                            </div>
+                            <Button onClick={() => setNewReservationModal(true)}
+                                    style={{width: '100%', marginTop: '5px'}} type={'primary'}>Резервирај</Button>
+                        </div>
+
+                    </div>
+                    <div style={{textAlign: 'start', backgroundColor: '#F2F2F2'}}>
+                        <h2 style={{textAlign:'center',paddingTop:'20px'}}>Мени</h2>
+                        {restaurant.menu.map(el =>
+                            <Card title={el.title} style={{ width: 280, display:'inline-block', margin:'10px' }} size="small">
+                                <p>{el.description}</p>
+                                <b>{el.price} ден.</b>
+                            </Card>
+                        )}
+                    </div>
                 </div>
-                <div id={'businessFrontInfo'} >
-                    <div style={{width:'100%',height:'100%',display:'flex',flexDirection:'column',justifyContent:'space-between'}}>
-                        <div style={{flexGrow:1, fontSize:'20px', fontWeight:'500', textAlign:'start'}}>
-                            {restaurant.name}
-                            <div style={{color:'gray',fontSize:'10px'}}>{restaurant.address}, {restaurant.city}</div>
-                        </div>
-                        <Button onClick={()=>setNewReservationModal(true)} style={{width:'100%',marginTop:'5px'}} type={'primary'}>Резервирај</Button>
-                    </div>
-
-                </div>
-            </div>
+            }
             <Modal
                 style={{top: 20}}
Index: resTools_backend/backend/Controllers/MenuController.cs
===================================================================
--- resTools_backend/backend/Controllers/MenuController.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Controllers/MenuController.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,37 @@
+﻿namespace backend.Controllers;
+
+using backend.DTOs;
+using backend.Entities;
+using backend.Helpers;
+using backend.Models;
+using backend.Services;
+using Microsoft.AspNetCore.Mvc;
+using System.Security.Claims;
+
+[ApiController]
+[Route("[controller]")]
+public class MenuController : ControllerBase
+{
+    private readonly IMenuService _menuService = null;
+
+    public MenuController(IMenuService menuService)
+    {
+        _menuService = menuService;
+    }
+
+    [Authorize]
+    [HttpPost()]
+    public async Task<IActionResult> CreateMenuItem([FromBody] CreateMenuItemRequest req)
+    {
+        await _menuService.AddMenu(req);
+        return Ok();
+    }
+
+    [Authorize]
+    [HttpDelete("{id}")]
+    public async Task<IActionResult> DeleteMenuItem(int id)
+    {
+        await _menuService.RemoveMenu(id);
+        return Ok();
+    }
+}
Index: resTools_backend/backend/Controllers/ReservationsController.cs
===================================================================
--- resTools_backend/backend/Controllers/ReservationsController.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Controllers/ReservationsController.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -27,4 +27,11 @@
     }
 
+    [Authorize]
+    [HttpGet("new")]
+    public async Task<List<ReservationResponse>> GetReservationsNew()
+    {
+        return await _reservationService.GetNewReservations();
+    }
+
     [HttpPost()]
     public async Task<IActionResult> CreateReservation([FromBody] CreateReservationRequest req)
@@ -35,5 +42,5 @@
 
     [Authorize]
-    [HttpPut("{rid}")]
+    [HttpPut("{rid}/status")]
     public async Task<IActionResult> ChangeStatus(int rid, [FromQuery] ReservationStatus status)
     {
@@ -41,3 +48,11 @@
         return Ok();
     }
+
+    [Authorize]
+    [HttpPut("{rid}/table")]
+    public async Task<IActionResult> ChangeTable(int rid, [FromQuery] int tableId)
+    {
+        await _reservationService.AssignTable(tableId, rid);
+        return Ok();
+    }
 }
Index: resTools_backend/backend/Controllers/RestaurantsController.cs
===================================================================
--- resTools_backend/backend/Controllers/RestaurantsController.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Controllers/RestaurantsController.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -37,3 +37,18 @@
         return response;
     }
+
+    [HttpPost("upload")]
+    public async Task<IActionResult> UploadImage([FromForm] IFormFile file)
+    {
+        await _restaurantService.UploadImage(file);
+        return Ok();
+    }
+
+    [Authorize]
+    [HttpPut()]
+    public async Task<IActionResult> UpdateRestaurant([FromBody] UpdateRestaurantRequest req)
+    {
+        await _restaurantService.UpdateRestaurant(req);
+        return Ok();
+    }
 }
Index: resTools_backend/backend/DTOs/CreateMenuItemRequest.cs
===================================================================
--- resTools_backend/backend/DTOs/CreateMenuItemRequest.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/DTOs/CreateMenuItemRequest.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,14 @@
+﻿using Newtonsoft.Json;
+
+namespace backend.DTOs
+{
+    public class CreateMenuItemRequest
+    {
+        [JsonProperty]
+        public string Title { get; set; }
+        [JsonProperty]
+        public string Description { get; set; }
+        [JsonProperty]
+        public int Price { get; set; }
+    }
+}
Index: resTools_backend/backend/DTOs/MenuItemResponse.cs
===================================================================
--- resTools_backend/backend/DTOs/MenuItemResponse.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/DTOs/MenuItemResponse.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,16 @@
+﻿using Newtonsoft.Json;
+
+namespace backend.DTOs
+{
+    public class MenuItemResponse
+    {
+        [JsonProperty]
+        public int Id { get; set; }
+        [JsonProperty]
+        public string Title { get; set; }
+        [JsonProperty]
+        public string Description { get; set; }
+        [JsonProperty]
+        public int Price { get; set; }
+    }
+}
Index: resTools_backend/backend/DTOs/ReservationResponse.cs
===================================================================
--- resTools_backend/backend/DTOs/ReservationResponse.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/DTOs/ReservationResponse.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -22,4 +22,6 @@
         [JsonProperty]
         public string ContactNumber { get; set; }
+        [JsonProperty]
+        public int Table { get; set; }
     }
 }
Index: resTools_backend/backend/DTOs/RestaurantResponse.cs
===================================================================
--- resTools_backend/backend/DTOs/RestaurantResponse.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/DTOs/RestaurantResponse.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -6,9 +6,13 @@
     {
         [JsonProperty]
-        public int Id { get; set; }
+        public string Name { get; set; }
         [JsonProperty]
-        public int? OwnerId { get; set; }
+        public string Address { get; set; }
         [JsonProperty]
-        public string Name { get; set; }
+        public string Phone { get; set; }
+        [JsonProperty]
+        public List<MenuItemResponse> Menu { get; set; }
+        [JsonProperty]
+        public string Base64Image { get; set; }
     }
 }
Index: resTools_backend/backend/DTOs/UpdateRestaurantRequest.cs
===================================================================
--- resTools_backend/backend/DTOs/UpdateRestaurantRequest.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/DTOs/UpdateRestaurantRequest.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,14 @@
+﻿using Newtonsoft.Json;
+
+namespace backend.DTOs
+{
+    public class UpdateRestaurantRequest
+    {
+        [JsonProperty]
+        public string Name { get; set; }
+        [JsonProperty]
+        public string Address { get; set; }
+        [JsonProperty]
+        public string Phone { get; set; }
+    }
+}
Index: resTools_backend/backend/Data/DataContext.cs
===================================================================
--- resTools_backend/backend/Data/DataContext.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Data/DataContext.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -52,4 +52,18 @@
         }
 
+        private DbSet<MenuItem> menuItems;
+        public DbSet<MenuItem> MenuItems
+        {
+            get
+            {
+                if (menuItems == null)
+                {
+                    menuItems = Set<MenuItem>();
+                }
+
+                return menuItems;
+            }
+        }
+
 
         protected override void OnModelCreating(ModelBuilder modelBuilder)
@@ -74,4 +88,8 @@
             .HasMany(p => p.Reservations)
             .WithOne(b => b.Restaurant);
+            modelBuilder.Entity<Restaurant>()
+            .HasMany(p => p.Menu)
+            .WithOne(b => b.Restaurant);
+
 
             //
@@ -82,4 +100,12 @@
             .HasOne(p => p.Restaurant)
             .WithMany(b => b.Reservations);
+
+            //
+            // MenuItem
+            // 
+            modelBuilder.Entity<MenuItem>().Property(x => x.Id).IsRequired().ValueGeneratedOnAdd();
+            modelBuilder.Entity<MenuItem>()
+            .HasOne(p => p.Restaurant)
+            .WithMany(b => b.Menu);
         }
     }
Index: resTools_backend/backend/Entities/MenuItem.cs
===================================================================
--- resTools_backend/backend/Entities/MenuItem.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Entities/MenuItem.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,11 @@
+﻿namespace backend.Entities
+{
+    public class MenuItem
+    {
+        public int Id { get; set; }
+        public string Title { get; set; }
+        public string Description { get; set; }
+        public int Price { get; set; }
+        public virtual Restaurant Restaurant { get; set; }
+    }
+}
Index: resTools_backend/backend/Entities/Reservation.cs
===================================================================
--- resTools_backend/backend/Entities/Reservation.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Entities/Reservation.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -14,4 +14,5 @@
         public string ContactName { get; set; }
         public string ContactNumber { get; set; }
+        public int Table { get; set; }
     }
 
Index: resTools_backend/backend/Entities/Restaurant.cs
===================================================================
--- resTools_backend/backend/Entities/Restaurant.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Entities/Restaurant.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -9,5 +9,9 @@
         public virtual User Owner { get; set; }
         public virtual ICollection<Reservation> Reservations { get; set; }
+        public virtual ICollection<MenuItem> Menu { get; set; }
         public string Name { get; set; }
+        public string Address { get; set; }
+        public string Phone { get; set; }
+        public byte[] Image { get; set; }
     }
 }
Index: resTools_backend/backend/Migrations/20220705160351_Reservation-Tables.Designer.cs
===================================================================
--- resTools_backend/backend/Migrations/20220705160351_Reservation-Tables.Designer.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Migrations/20220705160351_Reservation-Tables.Designer.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,148 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using backend.Data;
+
+#nullable disable
+
+namespace backend.Migrations
+{
+    [DbContext(typeof(DataContext))]
+    [Migration("20220705160351_Reservation-Tables")]
+    partial class ReservationTables
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "6.0.3")
+                .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+            modelBuilder.Entity("backend.Entities.Reservation", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("ContactName")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<string>("ContactNumber")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int>("Persons")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationPlace")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationStatus")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationType")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("RestaurantId")
+                        .HasColumnType("integer");
+
+                    b.Property<DateTime>("StartDate")
+                        .HasColumnType("timestamp with time zone");
+
+                    b.Property<int>("Table")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("RestaurantId");
+
+                    b.ToTable("Reservations");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int?>("OwnerFk")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerFk")
+                        .IsUnique();
+
+                    b.ToTable("Restoraunts");
+                });
+
+            modelBuilder.Entity("backend.Entities.User", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Email")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Users");
+                });
+
+            modelBuilder.Entity("backend.Entities.Reservation", b =>
+                {
+                    b.HasOne("backend.Entities.Restaurant", "Restaurant")
+                        .WithMany("Reservations")
+                        .HasForeignKey("RestaurantId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Restaurant");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.HasOne("backend.Entities.User", "Owner")
+                        .WithOne("Restaurant")
+                        .HasForeignKey("backend.Entities.Restaurant", "OwnerFk");
+
+                    b.Navigation("Owner");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.Navigation("Reservations");
+                });
+
+            modelBuilder.Entity("backend.Entities.User", b =>
+                {
+                    b.Navigation("Restaurant")
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
Index: resTools_backend/backend/Migrations/20220705160351_Reservation-Tables.cs
===================================================================
--- resTools_backend/backend/Migrations/20220705160351_Reservation-Tables.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Migrations/20220705160351_Reservation-Tables.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,26 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace backend.Migrations
+{
+    public partial class ReservationTables : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn<int>(
+                name: "Table",
+                table: "Reservations",
+                type: "integer",
+                nullable: false,
+                defaultValue: 0);
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "Table",
+                table: "Reservations");
+        }
+    }
+}
Index: resTools_backend/backend/Migrations/20220705164500_Restaurant-Fields.Designer.cs
===================================================================
--- resTools_backend/backend/Migrations/20220705164500_Restaurant-Fields.Designer.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Migrations/20220705164500_Restaurant-Fields.Designer.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,160 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using backend.Data;
+
+#nullable disable
+
+namespace backend.Migrations
+{
+    [DbContext(typeof(DataContext))]
+    [Migration("20220705164500_Restaurant-Fields")]
+    partial class RestaurantFields
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "6.0.3")
+                .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+            modelBuilder.Entity("backend.Entities.Reservation", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("ContactName")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<string>("ContactNumber")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int>("Persons")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationPlace")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationStatus")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationType")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("RestaurantId")
+                        .HasColumnType("integer");
+
+                    b.Property<DateTime>("StartDate")
+                        .HasColumnType("timestamp with time zone");
+
+                    b.Property<int>("Table")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("RestaurantId");
+
+                    b.ToTable("Reservations");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Address")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<byte[]>("Image")
+                        .IsRequired()
+                        .HasColumnType("bytea");
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int?>("OwnerFk")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("Phone")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerFk")
+                        .IsUnique();
+
+                    b.ToTable("Restoraunts");
+                });
+
+            modelBuilder.Entity("backend.Entities.User", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Email")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Users");
+                });
+
+            modelBuilder.Entity("backend.Entities.Reservation", b =>
+                {
+                    b.HasOne("backend.Entities.Restaurant", "Restaurant")
+                        .WithMany("Reservations")
+                        .HasForeignKey("RestaurantId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Restaurant");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.HasOne("backend.Entities.User", "Owner")
+                        .WithOne("Restaurant")
+                        .HasForeignKey("backend.Entities.Restaurant", "OwnerFk");
+
+                    b.Navigation("Owner");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.Navigation("Reservations");
+                });
+
+            modelBuilder.Entity("backend.Entities.User", b =>
+                {
+                    b.Navigation("Restaurant")
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
Index: resTools_backend/backend/Migrations/20220705164500_Restaurant-Fields.cs
===================================================================
--- resTools_backend/backend/Migrations/20220705164500_Restaurant-Fields.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Migrations/20220705164500_Restaurant-Fields.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,49 @@
+﻿using System;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace backend.Migrations
+{
+    public partial class RestaurantFields : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.AddColumn<string>(
+                name: "Address",
+                table: "Restoraunts",
+                type: "text",
+                nullable: false,
+                defaultValue: "");
+
+            migrationBuilder.AddColumn<byte[]>(
+                name: "Image",
+                table: "Restoraunts",
+                type: "bytea",
+                nullable: false,
+                defaultValue: new byte[0]);
+
+            migrationBuilder.AddColumn<string>(
+                name: "Phone",
+                table: "Restoraunts",
+                type: "text",
+                nullable: false,
+                defaultValue: "");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropColumn(
+                name: "Address",
+                table: "Restoraunts");
+
+            migrationBuilder.DropColumn(
+                name: "Image",
+                table: "Restoraunts");
+
+            migrationBuilder.DropColumn(
+                name: "Phone",
+                table: "Restoraunts");
+        }
+    }
+}
Index: resTools_backend/backend/Migrations/20220706103351_Add-Menu.Designer.cs
===================================================================
--- resTools_backend/backend/Migrations/20220706103351_Add-Menu.Designer.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Migrations/20220706103351_Add-Menu.Designer.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,202 @@
+﻿// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+using backend.Data;
+
+#nullable disable
+
+namespace backend.Migrations
+{
+    [DbContext(typeof(DataContext))]
+    [Migration("20220706103351_Add-Menu")]
+    partial class AddMenu
+    {
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "6.0.3")
+                .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+            modelBuilder.Entity("backend.Entities.MenuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Description")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int>("Price")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("RestaurantId")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("Title")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("RestaurantId");
+
+                    b.ToTable("MenuItems");
+                });
+
+            modelBuilder.Entity("backend.Entities.Reservation", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("ContactName")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<string>("ContactNumber")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int>("Persons")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationPlace")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationStatus")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("ReservationType")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("RestaurantId")
+                        .HasColumnType("integer");
+
+                    b.Property<DateTime>("StartDate")
+                        .HasColumnType("timestamp with time zone");
+
+                    b.Property<int>("Table")
+                        .HasColumnType("integer");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("RestaurantId");
+
+                    b.ToTable("Reservations");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Address")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<byte[]>("Image")
+                        .IsRequired()
+                        .HasColumnType("bytea");
+
+                    b.Property<string>("Name")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int?>("OwnerFk")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("Phone")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("OwnerFk")
+                        .IsUnique();
+
+                    b.ToTable("Restoraunts");
+                });
+
+            modelBuilder.Entity("backend.Entities.User", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Email")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<string>("Password")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Users");
+                });
+
+            modelBuilder.Entity("backend.Entities.MenuItem", b =>
+                {
+                    b.HasOne("backend.Entities.Restaurant", "Restaurant")
+                        .WithMany("Menu")
+                        .HasForeignKey("RestaurantId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Restaurant");
+                });
+
+            modelBuilder.Entity("backend.Entities.Reservation", b =>
+                {
+                    b.HasOne("backend.Entities.Restaurant", "Restaurant")
+                        .WithMany("Reservations")
+                        .HasForeignKey("RestaurantId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Restaurant");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.HasOne("backend.Entities.User", "Owner")
+                        .WithOne("Restaurant")
+                        .HasForeignKey("backend.Entities.Restaurant", "OwnerFk");
+
+                    b.Navigation("Owner");
+                });
+
+            modelBuilder.Entity("backend.Entities.Restaurant", b =>
+                {
+                    b.Navigation("Menu");
+
+                    b.Navigation("Reservations");
+                });
+
+            modelBuilder.Entity("backend.Entities.User", b =>
+                {
+                    b.Navigation("Restaurant")
+                        .IsRequired();
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
Index: resTools_backend/backend/Migrations/20220706103351_Add-Menu.cs
===================================================================
--- resTools_backend/backend/Migrations/20220706103351_Add-Menu.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Migrations/20220706103351_Add-Menu.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,46 @@
+﻿using Microsoft.EntityFrameworkCore.Migrations;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace backend.Migrations
+{
+    public partial class AddMenu : Migration
+    {
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "MenuItems",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    Title = table.Column<string>(type: "text", nullable: false),
+                    Description = table.Column<string>(type: "text", nullable: false),
+                    Price = table.Column<int>(type: "integer", nullable: false),
+                    RestaurantId = table.Column<int>(type: "integer", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_MenuItems", x => x.Id);
+                    table.ForeignKey(
+                        name: "FK_MenuItems_Restoraunts_RestaurantId",
+                        column: x => x.RestaurantId,
+                        principalTable: "Restoraunts",
+                        principalColumn: "Id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateIndex(
+                name: "IX_MenuItems_RestaurantId",
+                table: "MenuItems",
+                column: "RestaurantId");
+        }
+
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "MenuItems");
+        }
+    }
+}
Index: resTools_backend/backend/Migrations/DataContextModelSnapshot.cs
===================================================================
--- resTools_backend/backend/Migrations/DataContextModelSnapshot.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Migrations/DataContextModelSnapshot.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -23,4 +23,33 @@
             NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 
+            modelBuilder.Entity("backend.Entities.MenuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Description")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<int>("Price")
+                        .HasColumnType("integer");
+
+                    b.Property<int>("RestaurantId")
+                        .HasColumnType("integer");
+
+                    b.Property<string>("Title")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("RestaurantId");
+
+                    b.ToTable("MenuItems");
+                });
+
             modelBuilder.Entity("backend.Entities.Reservation", b =>
                 {
@@ -57,4 +86,7 @@
                         .HasColumnType("timestamp with time zone");
 
+                    b.Property<int>("Table")
+                        .HasColumnType("integer");
+
                     b.HasKey("Id");
 
@@ -72,4 +104,12 @@
                     NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
+                    b.Property<string>("Address")
+                        .IsRequired()
+                        .HasColumnType("text");
+
+                    b.Property<byte[]>("Image")
+                        .IsRequired()
+                        .HasColumnType("bytea");
+
                     b.Property<string>("Name")
                         .IsRequired()
@@ -78,4 +118,8 @@
                     b.Property<int?>("OwnerFk")
                         .HasColumnType("integer");
+
+                    b.Property<string>("Phone")
+                        .IsRequired()
+                        .HasColumnType("text");
 
                     b.HasKey("Id");
@@ -106,4 +150,15 @@
 
                     b.ToTable("Users");
+                });
+
+            modelBuilder.Entity("backend.Entities.MenuItem", b =>
+                {
+                    b.HasOne("backend.Entities.Restaurant", "Restaurant")
+                        .WithMany("Menu")
+                        .HasForeignKey("RestaurantId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Restaurant");
                 });
 
@@ -130,4 +185,6 @@
             modelBuilder.Entity("backend.Entities.Restaurant", b =>
                 {
+                    b.Navigation("Menu");
+
                     b.Navigation("Reservations");
                 });
Index: resTools_backend/backend/Program.cs
===================================================================
--- resTools_backend/backend/Program.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Program.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -46,4 +46,5 @@
 builder.Services.AddScoped<IRestaurantService, RestaurantService>();
 builder.Services.AddScoped<IReservationService, ReservationService>();
+builder.Services.AddScoped<IMenuService, MenuService>();
 builder.Services.AddScoped<ISmsService, SmsService>();
 
Index: resTools_backend/backend/Services/MenuService.cs
===================================================================
--- resTools_backend/backend/Services/MenuService.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
+++ resTools_backend/backend/Services/MenuService.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -0,0 +1,45 @@
+﻿using backend.Data;
+using backend.DTOs;
+using backend.Entities;
+using Microsoft.EntityFrameworkCore;
+
+namespace backend.Services
+{
+    public interface IMenuService
+    {
+        public Task AddMenu(CreateMenuItemRequest menu);
+        public Task RemoveMenu(int id);
+    }
+    public class MenuService : IMenuService
+    {
+        private readonly DataContext _context = null;
+        public MenuService(DataContext context)
+        {
+            _context = context;
+        }
+        public async Task AddMenu(CreateMenuItemRequest menu)
+        {
+            var res = await _context.Restoraunts.FirstOrDefaultAsync();
+            if(res.Menu == null)
+            {
+                res.Menu = new List<MenuItem>();
+            }
+            res.Menu.Add(new MenuItem()
+            {
+                Title = menu.Title,
+                Description = menu.Description,
+                Price = menu.Price
+            });
+            _context.Restoraunts.Update(res);
+            await _context.SaveChangesAsync();
+        }
+
+        public async Task RemoveMenu(int id)
+        {
+            var res = await _context.Restoraunts.Include(x => x.Menu).FirstOrDefaultAsync();
+            res.Menu = res.Menu.Where(x => x.Id != id).ToList();
+            _context.Restoraunts.Update(res);
+            await _context.SaveChangesAsync();
+        }
+    }
+}
Index: resTools_backend/backend/Services/ReservationService.cs
===================================================================
--- resTools_backend/backend/Services/ReservationService.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Services/ReservationService.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -11,4 +11,6 @@
         public Task ChangeReservationStatus(int resId, ReservationStatus status);
         public Task<List<ReservationResponse>> GetReservatins(DateTime from, DateTime to);
+        public Task<List<ReservationResponse>> GetNewReservations();
+        public Task AssignTable(int tableId, int reservationId);
     }
     public class ReservationService : IReservationService
@@ -21,4 +23,12 @@
             _context = context;
             _smsService = smsService;
+        }
+
+        public async Task AssignTable(int tableId, int reservationId)
+        {
+            var reservation = await _context.Reservations.FindAsync(reservationId);
+            reservation.Table = tableId;
+            _context.Update(reservation);
+            await _context.SaveChangesAsync();
         }
 
@@ -50,4 +60,25 @@
         }
 
+        public async Task<List<ReservationResponse>> GetNewReservations()
+        {
+            Restaurant res = await _context.Restoraunts
+               .Include(x => x.Reservations
+                   .Where(x => x.ReservationStatus == ReservationStatus.New))
+               .FirstOrDefaultAsync();
+            var reservations = res.Reservations.Select(t => new ReservationResponse()
+            {
+                ContactName = t.ContactName,
+                ContactNumber = t.ContactNumber,
+                Persons = t.Persons,
+                StartDate = t.StartDate,
+                ReservationStatus = t.ReservationStatus,
+                Table = t.Table,
+                Id = t.Id,
+                ReservationPlace = t.ReservationPlace,
+                ReservationType = t.ReservationType
+            }).OrderByDescending(x => x.ReservationStatus == ReservationStatus.New).ToList();
+            return reservations;
+        }
+
         public async Task<List<ReservationResponse>> GetReservatins(DateTime from, DateTime to)
         {
@@ -63,4 +94,5 @@
                 StartDate = t.StartDate,
                 ReservationStatus = t.ReservationStatus,
+                Table = t.Table,
                 Id = t.Id,
                 ReservationPlace = t.ReservationPlace,
Index: resTools_backend/backend/Services/RestaurantService.cs
===================================================================
--- resTools_backend/backend/Services/RestaurantService.cs	(revision d76b7ee9036d8c2315eb8ce0de42c77ae3e87822)
+++ resTools_backend/backend/Services/RestaurantService.cs	(revision cc4db18b6d338be00c6c1e9b88f8e93ef763f7b6)
@@ -10,4 +10,6 @@
         public Task CreateRestaurant(string name, int userId);
         public Task<RestaurantResponse> GetRestaurant();
+        public Task UploadImage(IFormFile file);
+        public Task UpdateRestaurant(UpdateRestaurantRequest req);
     }
     public class RestaurantService : IRestaurantService
@@ -32,11 +34,41 @@
                 .Select(x => new RestaurantResponse()
                 {
-                    Id = x.Id,
                     Name = x.Name,
-                    OwnerId = x.OwnerFk,
+                    Address = x.Address,
+                    Phone = x.Phone,
+                    Base64Image = String.Format("data:image/png;base64,{0}", Convert.ToBase64String(x.Image)),
+                    Menu = x.Menu.Select(x => new MenuItemResponse()
+                    {
+                        Id = x.Id,
+                        Title = x.Title,
+                        Description = x.Description,
+                        Price = x.Price
+                    }).ToList()
                 })
                 .FirstOrDefaultAsync();
             return res;
         }
+
+        public async Task UpdateRestaurant(UpdateRestaurantRequest req)
+        {
+            var restaurant = await _context.Restoraunts.FirstOrDefaultAsync();
+            restaurant.Name = req.Name;
+            restaurant.Address = req.Address;
+            restaurant.Phone = req.Phone;
+            _context.Restoraunts.Update(restaurant);
+            await _context.SaveChangesAsync();
+        }
+
+        public async Task UploadImage(IFormFile file)
+        {
+            using (var memoryStream = new MemoryStream())
+            {
+                await file.CopyToAsync(memoryStream);
+                var restaurant = await _context.Restoraunts.FirstOrDefaultAsync();
+                restaurant.Image = memoryStream.ToArray();
+                _context.Restoraunts.Update(restaurant);
+                _context.SaveChanges();
+            }
+        }
     }
 }
