Index: src/main/java/mk/ukim/finki/db/library/model/Book.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/model/Book.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/model/Book.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -74,4 +74,8 @@
     private List<Writer> writers;
 
+    public Long getId() {
+        return id;
+    }
+
     public Library getLibrary() {
         return library;
Index: src/main/java/mk/ukim/finki/db/library/model/ReservationBook.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/model/ReservationBook.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/model/ReservationBook.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -18,10 +18,8 @@
     }
 
-    public ReservationBook(Member member, Book book, Date takeDate, Date returnDate, boolean isReservedBook) {
-        this.member = member;
-        this.book = book;
+    public ReservationBook( Date takeDate, Date returnDate) { //Long id,
+        //(Long) this.book.getId() = id;
         this.takeDate = takeDate;
         this.returnDate = returnDate;
-        this.isReservedBook = isReservedBook;
     }
 
Index: src/main/java/mk/ukim/finki/db/library/model/exception/MemberNotFoundException.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/model/exception/MemberNotFoundException.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
+++ src/main/java/mk/ukim/finki/db/library/model/exception/MemberNotFoundException.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -0,0 +1,8 @@
+package mk.ukim.finki.db.library.model.exception;
+
+public class MemberNotFoundException extends RuntimeException{
+
+    public MemberNotFoundException(String id) {
+        super(String.format("Member with id: %d is not found", id));
+    }
+}
Index: src/main/java/mk/ukim/finki/db/library/repository/MemberRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/repository/MemberRepository.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/repository/MemberRepository.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -1,5 +1,9 @@
 package mk.ukim.finki.db.library.repository;
 
+import mk.ukim.finki.db.library.model.Book;
+import mk.ukim.finki.db.library.model.Member;
 import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 @Repository
Index: src/main/java/mk/ukim/finki/db/library/repository/UserRepository.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/repository/UserRepository.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/repository/UserRepository.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -6,4 +6,5 @@
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
 import java.util.Optional;
 
@@ -13,3 +14,5 @@
 
     Optional<Person> findByEmailAndPassword(String email, String password);
+
+    List<Person> findByEmail(String email);
 }
Index: src/main/java/mk/ukim/finki/db/library/service/ReservationBookService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/service/ReservationBookService.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/service/ReservationBookService.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -10,8 +10,8 @@
 public interface ReservationBookService {
 
-    ReservationBook findById(Long id);
+    //ReservationBook getActiveResBookUser(String username);
 
     List<ReservationBook> listAll();
 
-    ReservationBook reserveBook(Long memberId, Long bookId, Date takeDate, Date returnDate, boolean isReservedBook);
+    ReservationBook reserveBook(Long bookId, Date takeDate, Date returnDate);
 }
Index: src/main/java/mk/ukim/finki/db/library/service/UserService.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/service/UserService.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/service/UserService.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -2,4 +2,6 @@
 
 import mk.ukim.finki.db.library.model.Person;
+
+import java.util.List;
 
 public interface UserService {
@@ -10,3 +12,5 @@
     Person login(String username, String password);
 
+    List<Person> findByEmail(String email);
+
 }
Index: src/main/java/mk/ukim/finki/db/library/service/impl/ReservationBookServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/service/impl/ReservationBookServiceImpl.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/service/impl/ReservationBookServiceImpl.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -2,8 +2,9 @@
 
 import mk.ukim.finki.db.library.model.*;
-import mk.ukim.finki.db.library.model.exception.InvalidReservationBookIdException;
+import mk.ukim.finki.db.library.model.exception.MemberNotFoundException;
 import mk.ukim.finki.db.library.repository.BookRepository;
 import mk.ukim.finki.db.library.repository.MemberRepository;
 import mk.ukim.finki.db.library.repository.ReservationBookRepository;
+import mk.ukim.finki.db.library.repository.UserRepository;
 import mk.ukim.finki.db.library.service.ReservationBookService;
 import org.springframework.stereotype.Service;
@@ -16,17 +17,11 @@
 
     private final ReservationBookRepository reservationBookRepository;
-    private final MemberRepository memberRepository;
+    private final UserRepository userRepository;
     private final BookRepository bookRepository;
 
     public ReservationBookServiceImpl(ReservationBookRepository reservationBookRepository, MemberRepository memberRepository, BookRepository bookRepository) {
         this.reservationBookRepository = reservationBookRepository;
-        this.memberRepository = memberRepository;
+        this.userRepository = memberRepository;
         this.bookRepository = bookRepository;
-    }
-
-
-    @Override
-    public ReservationBook findById(Long id) {
-        return this.reservationBookRepository.findById(id).orElseThrow(InvalidReservationBookIdException::new);
     }
 
@@ -37,12 +32,24 @@
 
     @Override
-    public ReservationBook reserveBook(Long memberId, Long bookId, Date takeDate, Date returnDate, boolean isReservedBook) {
-        Person member = memberId!=null ? this.memberRepository.findById(memberId).orElse((Member) null) : null;
-        Book book = bookId!=null ? this.bookRepository.findById(bookId).orElse((Book) null) : null;
+    public ReservationBook reserveBook(Long bookId, Date takeDate, Date returnDate) {
 
-        ReservationBook reservationBook = new ReservationBook((Member) member, book, takeDate, returnDate, isReservedBook);
-        //TODO: treba da se zemat site izdanija od knigata, da se proveri dali ima slobodna i ako ima, od vkupnoto da se namali za edno
+
+        ReservationBook reservationBook = new ReservationBook(takeDate, returnDate); //bookId,
 
         return this.reservationBookRepository.save(reservationBook);
     }
+
+
+
+//    @Override
+//    public ReservationBook reserveBook(Long memberId, Long bookId, Date takeDate, Date returnDate, boolean isReservedBook) {
+//        Person member = memberId!=null ? this.userRepository.findById(memberId).orElse((Member) null) : null;
+//        Book book = bookId!=null ? this.bookRepository.findById(bookId).orElse((Book) null) : null;
+//
+//        ReservationBook reservationBook = new ReservationBook((Member) member, book, takeDate, returnDate, isReservedBook);
+//        //TODO: treba da se zemat site izdanija od knigata, da se proveri dali ima slobodna i ako ima, od vkupnoto da se namali za edno
+//
+//        return this.reservationBookRepository.save(reservationBook);
+//    }
+
 }
Index: src/main/java/mk/ukim/finki/db/library/service/impl/UserServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/service/impl/UserServiceImpl.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/service/impl/UserServiceImpl.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -8,4 +8,6 @@
 import mk.ukim.finki.db.library.service.UserService;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 
@@ -35,3 +37,8 @@
         return userRepository.findByEmailAndPassword(email, password).orElseThrow(InvalidUserCredentialsException::new);
     }
+
+    @Override
+    public List<Person> findByEmail(String email) {
+        return this.userRepository.findByEmail(email);
+    }
 }
Index: src/main/java/mk/ukim/finki/db/library/web/BookController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/web/BookController.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/web/BookController.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -40,5 +40,5 @@
 
         List<Book> books;
-        //List<Writer> writers;
+//        List<Writer> writers;
         //List<Genre> genres;
         //List<Library> libraries;
@@ -46,5 +46,5 @@
         if(bookName == null){
             books = this.bookService.listAllBooks();
-           // writers = this.writerService.listAll();
+//            writers = this.writerService.listAll();
            // genres = this.genreService.listAll();
 
@@ -62,3 +62,7 @@
         return "book.html";
     }
+
+
+
+
 }
Index: src/main/java/mk/ukim/finki/db/library/web/ReservationBookController.java
===================================================================
--- src/main/java/mk/ukim/finki/db/library/web/ReservationBookController.java	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/java/mk/ukim/finki/db/library/web/ReservationBookController.java	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -1,6 +1,12 @@
 package mk.ukim.finki.db.library.web;
 
+import mk.ukim.finki.db.library.model.exception.InvalidArgumentsException;
+import mk.ukim.finki.db.library.model.exception.PasswordsDoNotMatchException;
+import mk.ukim.finki.db.library.service.ReservationBookService;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
 
 @Controller
@@ -8,4 +14,38 @@
 public class ReservationBookController {
 
+    private final ReservationBookService reservationBookService;
+
+    public ReservationBookController(ReservationBookService reservationBookService) {
+        this.reservationBookService = reservationBookService;
+    }
+
+    @GetMapping("/resBook")
+    public String showRes(){
+        return "resBook";
+    }
+
+    @GetMapping
+    public String getReservationBook(@RequestParam(required = false) String error, Model model) {
+        if(error != null && !error.isEmpty()) {
+            model.addAttribute("hasError", true);
+            model.addAttribute("error", error);
+        }
+        //ReservationBook reservationBook = this.reservationBookService.getCurrentUserId(id);
+        model.addAttribute("books", this.reservationBookService.listAll());
+        return "resBook";
+    }
+
+    @PostMapping("/reserve/{id}")
+    public String reserve(@PathVariable Long id,
+                            @RequestParam Date takeDate,
+                           @RequestParam Date returnDate
+    ) {
+        try{
+            this.reservationBookService.reserveBook(id, takeDate, returnDate);
+            return "redirect:/book";
+        } catch (InvalidArgumentsException | PasswordsDoNotMatchException exception) {
+            return "redirect:/resBook?error=" + exception.getMessage();
+        }
+    }
 
 }
Index: src/main/resources/application.properties
===================================================================
--- src/main/resources/application.properties	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/resources/application.properties	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -1,8 +1,8 @@
-server.port=9091
+server.port=9090
 
 # Datasource configuration
-spring.datasource.url=jdbc:postgresql://localhost:5432/parkingDB
-spring.datasource.username=parkDB
-spring.datasource.password=parkdb123
+spring.datasource.url=jdbc:postgresql://localhost:9999/db_202122z_va_prj_vintagelibrary
+spring.datasource.username=db_202122z_va_prj_vintagelibrary_owner
+spring.datasource.password=45dc6bb3181a
 
 # Default connection pool
@@ -16,6 +16,6 @@
 spring.jpa.show-sql=true
 
-
-spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
+spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
 
 spring.jpa.open-in-view=false
Index: src/main/resources/templates/book.html
===================================================================
--- src/main/resources/templates/book.html	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/resources/templates/book.html	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -61,6 +61,7 @@
             <th scope="col">Цена</th>
             <th scope="col">Цена со задоцнување</th>
-            <th scope="col">Автор</th>
-            <th scope="col">Жанр</th>
+            <!-- <th scope="col">Автор</th>  -->
+           <!-- <th scope="col">Жанр</th> -->
+            <th scope="col"></th>
             <th scope="col"></th>
             </thead>
@@ -71,6 +72,6 @@
               <td th:text="${book.getBookPrice()}"></td>
               <td th:text="${book.getBookPriceLate()}"></td>
-              <td th:each="writer : ${writers}" th:if="${book.getWriters().contains(writer)}" th:text="${writer.getWriterName()}"></td>
-              <td th:each="genre : ${genres}" th:if="${book.getGenre().contains(genre)}" th:text="${genre.getGenreName()}"></td>
+              <!-- <td th:each="writer : ${writers}" th:if="${book.getWriters().contains(writer)}" th:text="${writer.getWriterName()}"></td>  -->
+              <!-- <td th:each="genre : ${genres}" th:if="${book.getGenre().contains(genre)}" th:text="${genre.getGenreName()}"></td> -->
               <td><a class="btn btn-primary btn-sm ml-3" href="/resBook">Резервација</a>
                 <a class="btn btn-primary btn-sm ml-3" href="/online">Симнување</a></td>
Index: src/main/resources/templates/login.html
===================================================================
--- src/main/resources/templates/login.html	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/resources/templates/login.html	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -36,7 +36,8 @@
 </nav>
 
+<section class="jumbotron text-center">
 <div class="container">
     <form class="form-signin mt-xl-5" method="post" action="/login">
-        <h2 class="form-signin-heading">Најава</h2>
+        <h2 class="form-signin-heading"><b>Најава</b></h2>
         <p>
             <label for="username" class="sr-only">Корисничко име:</label>
@@ -53,6 +54,8 @@
         <button class="btn btn-lg btn-primary btn-block" type="submit">Најави се</button>
     </form>
+    <br>
     <a href="/register" class="btn btn-block btn-light">Регистрирај се тука</a>
 </div>
+</section>
 
 <!-- Footer -->
Index: src/main/resources/templates/register.html
===================================================================
--- src/main/resources/templates/register.html	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/resources/templates/register.html	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -43,6 +43,6 @@
     <div class="container">
 
-        <form class="form-signin mt-xl-2 col-md-8" method="post" action="/register">
-            <h2 class="form-signin-heading">Регистрација</h2>
+        <form class="form-signin mt-xl-5" method="post" action="/register">
+            <h2 class="form-signin-heading"><b>Регистрација</b></h2>
             <br>
             <p>
@@ -94,5 +94,5 @@
 
     </div>
-</section>
+
 
 <!-- Footer -->
Index: src/main/resources/templates/resBook.html
===================================================================
--- src/main/resources/templates/resBook.html	(revision 3692f0d08a93849036e39787a1ad9fe66dc21ca4)
+++ src/main/resources/templates/resBook.html	(revision 6791e8943b1679187be4017d2a0a7a9356c9b6a4)
@@ -42,8 +42,6 @@
 
 <!--Main-->
-<div class="container">
-  <section class="jumbotron text-center">
-    <h2 class="jumbotron-heading"><b>Резервација на книга</b></h2>
-  </section>
+<section class="jumbotron text-center">
+
 
   <div th:if="${hasError}">
@@ -51,11 +49,38 @@
   </div>
 
-  <div class="container mb-4">
-    <div class="row">
+  <div class="container">
+    <form class="form-signin mt-xl-5" method="post" action="/resBook">
 
-    </div>
+      <h2 class="jumbotron-heading"><b>Резервација на книга</b></h2>
+
+      <div class="container mb-4">
+        <div class="row">
+          <p>
+            <label for="bookName" class="sr-only" th:text="${book.getId()}"></label>
+            <input type="text" id="bookName" name="bookName" class="form-control" th:placeholder="${book.getBookName()}" required="" disabled >
+          </p>
+        </div>
+      </div>
+
+      <div class="container mb-4">
+        <div class="row">
+          <p>Датум земање книга
+            <label for="takeDate" class="sr-only">Датум земање книга</label>
+            <input type="date" id="takeDate" name="takeDate" class="form-control" placeholder="Take Date" required="" autofocus="">
+          </p>
+          <br>
+          <p>Датум враќање книга
+            <label for="returnDate" class="sr-only">Датум враќање книга</label>
+            <input type="date" id="returnDate" name="returnDate" class="form-control" placeholder="Return Date" required="" autofocus="">
+          </p>
+        </div>
+      </div>
+    </form>
+    <button class="btn btn-lg btn-primary btn-block" type="submit">ПОТВРДИ РЕЗЕРВАЦИЈА</button>
+    <br>
+    <a href="/book" class="btn btn-block btn-light">ОТКАЖИ РЕЗЕРВАЦИЈА</a>
   </div>
 
-</div>
+</section>
 
 <!-- Footer -->
