Index: target/classes/static/css/shared.css
===================================================================
--- target/classes/static/css/shared.css	(revision 7f3655122036717700124fc482399ad0780bdf52)
+++ target/classes/static/css/shared.css	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
@@ -70,2 +70,37 @@
     text-align: center;
 }
+
+#paging-section{
+    width: 100%;
+    clear: both;
+    margin-bottom: 30px;
+}
+
+#inner-paging{
+    width: fit-content;
+    margin: auto;
+
+}
+
+#button-sub, #button-add{
+    width: 100px;
+}
+
+#pageInput{
+    font-size: 100%;
+    text-align: center;
+    width: 175px;
+    margin: auto;
+}
+
+#button-submit-page{
+    margin: auto;
+    text-align: center;
+    margin-top: 7px;
+    display: none;
+}
+
+.visibility{
+    transition: 200ms;
+    opacity: 0;
+}
Index: target/classes/static/js/sharedScript.js
===================================================================
--- target/classes/static/js/sharedScript.js	(revision 7f3655122036717700124fc482399ad0780bdf52)
+++ target/classes/static/js/sharedScript.js	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
@@ -4,4 +4,33 @@
     var elements = $(".elements")
     var elementGrade;
+
+
+    $("#button-add").on("click", function (){
+        itemInput = $("#pageInput")
+        itemInput.val(Number(itemInput.val()) + 1);
+        $("#button-submit-page").click()
+    })
+
+    $("#button-sub").on("click", function (){
+        itemInput = $("#pageInput")
+        if(Number(itemInput.val()) > 1){
+            itemInput.val(Number(itemInput.val()) - 1);
+            $("#button-submit-page").click()
+        }
+    })
+
+    $("#searchTitle").on("keyup", function() {
+        var value = $(this).val().toLowerCase();
+        console.log(value)
+        $(".elements div a .title").filter(function() {
+            console.log($(this).text())
+            if($(this).text().toLowerCase().indexOf(value) <= -1)
+                $(this).parent().parent().parent().addClass("visibility")
+            else
+                $(this).parent().parent().parent().removeClass("visibility")
+        });
+    });
+
+
 
 
@@ -37,5 +66,5 @@
 
 
-    $(".search-button-title").on("click",function (){
+    /*$(".search-button-title").on("click",function (){
         let filter = $("#searchTitle").val()
         console.log(elements)
@@ -50,12 +79,9 @@
             }
         }
-
-    })
+    })*/
 
 
    $(".search-button").on("click",function () {
         let filter = $("#searchGenre").val()
-       console.log(elements)
-
        for (let item of elements) {
             let genre = $(item).find(".card-genre")
@@ -64,12 +90,15 @@
             for (let g of genre) {
 
-                if ($(g).text().toLowerCase() === filter.toLowerCase()) {
+                if (( $(g).text().toLowerCase() === filter.toLowerCase() && !$(g).hasClass("visibility") && filter.trim().length != 0)) {
                     visible = true
-                    $(item).css("display","block")
+                    $(item).removeClass("visibility")
                     break;
                 }
             }
-            if (!visible)
-                $(item).css("display","none")
+            if (!visible && filter.trim().length != 0)
+                $(item).addClass("visibility")
+            else
+                $(item).removeClass("visibility")
+
         }
     });
@@ -117,4 +146,14 @@
         let url = "api/movies/unlike/"+ $(this).attr("movie-id")+"?userId="+ $(this).attr("user-id")
         ajaxCallLike(url,button,'unlike','Немате оставено допаѓање на филмот!')
+    })
+    $(document.body).on("click",".button-add-genre-liked-list",function (){
+        let button = $(this)
+        let url = "api/genres/like/"+ $(this).attr("genre-id") + "?userId="+ $(this).attr("user-id")
+        ajaxCallLikeGenre(url,button,'like','Веќе ви се допаѓа жанрот!')
+    })
+    $(document.body).on("click",".button-remove-genre-liked-list",function (){
+        let button = $(this)
+        let url = "api/genres/unlike/"+ $(this).attr("genre-id")+"?userId="+ $(this).attr("user-id")
+        ajaxCallLikeGenre(url,button,'unlike','Немате оставено допаѓање на жанрот!')
     })
     $(".discussion-type").change(function (){
@@ -157,4 +196,5 @@
 
                 }
+                $(button).remove()
             }
             else {
@@ -180,4 +220,47 @@
     })
 }
+
+
+
+function ajaxCallLikeGenre(url,button,type,message){
+    $.ajax({
+        url:url,
+        success:function (data){
+            if (data){
+                let el = $(button).parent().siblings().eq(3)
+                console.log(el)
+                if (type=="like") {
+                    $(el).html(parseInt($(el).text()) + 1)
+                    console.log("da")
+                }
+                else
+                    $(el).html(parseInt($(el).text()) - 1)
+                $(button).css("display","none")
+                let userId = $(button).attr("user-id")
+                let genreId=$(button).attr("genre-id")
+                if (type==='like') {
+                    $(button).parent().append("<a class='btn btn-danger button-remove-genre-liked-list' genre-id=" + genreId + " user-id=" + userId + ">💔</a>")
+                    console.log("da")
+                }
+                else{
+                    $(button).parent().append("<a class='btn btn-success button-add-genre-liked-list' genre-id=" + genreId + " user-id=" + userId + ">❤</a>")
+                }
+                let likes_sibling = $("#"+genreId+"genre")
+                value_likes = Number(likes_sibling.text())
+                if(type=="like")
+                    value_likes+=1
+                else
+                    value_likes-=1
+                likes_sibling.text(value_likes)
+                $(button).remove()
+            }
+            else {
+                $(button).parent().append("<div>" + message +" <button class='button-confirm'>Ок</button></div>")
+            }
+        }
+    })
+}
+
+
 function  ajaxCallRating(url,button,type){
     model = {
Index: target/classes/templates/genres.html
===================================================================
--- target/classes/templates/genres.html	(revision 7f3655122036717700124fc482399ad0780bdf52)
+++ target/classes/templates/genres.html	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
@@ -1,23 +1,30 @@
-<div class="container mb-4">
-  <div class="row">
-    <div class="col-12">
-      <div class="table-responsive">
-        <table class="table table-striped">
-          <thead>
-          <tr>
-            <th scope="col">Име</th>
-            <th scope="col">Лајкови</th>
-          </tr>
-          </thead>
-          <tbody>
-          <tr th:each="genre : ${genres}" class="elements">
-            <td th:text="${genre.getName()}"></td>
-            <td th:text="${genre.getLikes()}"></td>
+<div class="container mb-4" xmlns:sec="http://www.w3.org/1999/xhtml">
 
-          </tr>
-          </tbody>
-        </table>
+    <div class="row">
+      <div class="col-12">
+        <div class="table-responsive">
+          <table class="table table-striped">
+            <thead>
+            <tr>
+              <th scope="col">Име</th>
+              <th scope="col">Лајкови</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr th:each="genre : ${genres}" class="elements">
+              <td th:text="${genre.getName()}"></td>
+              <td th:text="${genre.getLikes()}" th:id="${genre.getGenreId()+'genre'}"></td>
+              <td>
+                <th:block sec:authorize="isAuthenticated()" th:each="g: ${allGenres}" th:if="${g.getGenreId() == genre.getGenreId()}">
+                  <a class="btn btn-success button-add-genre-liked-list" th:genre-id="${g.getGenreId()}" th:user-id="${user.getUserId()}" th:if="${!likedGenres.contains(g)}">❤</a>
+                  <a class="btn btn-danger button-remove-genre-liked-list" th:genre-id="${g.getGenreId()}" th:user-id="${user.getUserId()}" th:if="${likedGenres.contains(g)}">💔</a>
+                </th:block>
+              </td>
+            </tr>
+            </tbody>
+          </table>
+        </div>
       </div>
-    </div>
+
   </div>
 </div>
Index: target/classes/templates/moviesListPaged.html
===================================================================
--- target/classes/templates/moviesListPaged.html	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
+++ target/classes/templates/moviesListPaged.html	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
@@ -0,0 +1,126 @@
+<div xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.w3.org/1999/xhtml">
+
+    <div style="width: 70%; margin: auto">
+        <div th:replace="fragments/searchBarName"></div>
+        <div th:replace="fragments/searchBarGenre"></div>
+
+    </div>
+
+    <div id="paging-section">
+        <div id="inner-paging" class="input-group">
+            <!--
+            <a class="btn btn-danger" id="button-sub" style="float: left; display: block">Previous</a>
+            <a class="btn btn-success" id="button-add" style="float: left; display: block">Next</a>
+            -->
+            <div class="input-group-prepend">
+                <button class="btn btn-danger" id="button-sub" >Previous</button>
+            </div>
+            <form method="get" action="" style="float: left; display: block">
+                <input type="number" class="form-control" min="1" name="page" th:value="${page}" id="pageInput">
+                <button type="submit" id="button-submit-page" class="btn btn-primary">Check page</button>
+            </form>
+
+            <div class="input-group-append">
+                <button class="btn btn-success" id="button-add" >Next</button>
+            </div>
+        </div>
+    </div><br><br><br>
+
+    <div class="container mb-4">
+        <a  sec:authorize="isAuthenticated()" th:href="@{/movies/add}">Додади нов филм</a>
+    </div>
+
+    <div class="container mb-4">
+        <div class="row" th:each="row: ${movie_rows}" >
+            <div class="col-md-3 elements" th:each="movie: ${row}" >
+                    <div class="card-body card bg-image" th:style="'background:url(' + ${movie.getImageUrl()} + ') no-repeat center #eee;'">
+                        <a class="card-text-center" style="color: white" th:href="@{'/movies/{id}' (id=${movie.getMovieId()})}" >
+                        <h3 class="card-title title" th:text="${movie.getTitle()}"></h3>
+                            <span th:each="genre: ${movie.getGenres()}"  th:text="${genre?.getGenre()?.getGenreType()}" hidden class="card-genre"></span>
+
+                        </a>
+                        <h3 class="card-text bottom" th:text="${'Rated '+movie.getImdbRating()}"></h3>
+                        <th:block sec:authorize="isAuthenticated()">
+                            <a class="bottom-heart btn btn-success button-add-favourite-list" th:movie-id="${movie.getMovieId()}" th:user-id="${user.getUserId()}" th:if="${!likedMovies.contains(movie)}">❤</a>
+                            <a class="bottom-heart btn btn-danger button-remove-favourite-list" th:movie-id="${movie.getMovieId()}" th:user-id="${user.getUserId()}" th:if="${likedMovies.contains(movie)}">💔</a>
+                        </th:block>
+                    </div>
+            </div>
+        </div>
+    </div>
+    <!--<div class="container mb-4">
+        <div class="row">
+            <div class="col-12" th:if="${movies.size() > 0}">
+                <div class="table-responsive">
+                    <table class="table table-striped">
+                        <thead>
+                        <tr>
+                            <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>
+
+                            <th:block sec:authorize="isAuthenticated()">
+                            <th scope="col"></th>
+                            <th scope="col"></th>
+                            <th scope="col"></th>
+                            <th scope="col"></th>
+                            </th:block>
+
+
+
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr th:each="movie : ${movies}" class="elements">
+                            <td><a th:text="${movie.getTitle()}" th:href="@{'/movies/{id}' (id=${movie.getMovieId()})}"></a></td>
+                            <td th:text="${movie.getDescription()}"></td>
+                            <td th:text="${movie.getAiringDate()}"></td>
+                            <td th:text="${movie.getLikes() != null  ? movie.getLikes().size() : 0}">
+
+                            </td>
+                            <td class="genre">
+                                <div th:each="g: ${movie.getGenres()}" th:text="${g.getGenre().genreType }"></div>
+                            </td>
+                            <td>
+                                <div th:each="ac: ${movie.getActors()}">
+                                    <a th:href="@{'/persons/{id}' (id=${ac.getPerson().getPersonId()})}" th:text="${ac.getPerson().getName() + ' ' + ac.getPerson().getSurname()}"></a>
+                                </div>
+                            </td>
+                            <td th:if="${movie.getDirector() != null}">
+                                <a th:href="@{'/persons/{id}' (id=${movie.getDirector().getPersonId()})}" th:text="${movie.getDirector().getName() + ' ' + movie.getDirector().getSurname()}"></a>
+                            </td>
+                            <td th:if="${movie.getDirector() == null}">
+                                Филмот нема режисер.
+                            </td>
+                            <td>
+                                <a class="btn btn-primary" th:href="@{'discussions/all/{id}?type=M' (id=${movie.getMovieId()})}" >Прегледај дискусии</a>
+                            </td>
+                            <th:block sec:authorize="isAuthenticated()">
+                            <td>
+                                <a class="btn btn-success button-add-favourite-list" th:movie-id="${movie.getMovieId()}" th:user-id="${user.getUserId()}" th:if="${!likedMovies.contains(movie)}">Додади во омилена листа</a>
+                                <a class="btn btn-warning button-remove-favourite-list" th:movie-id="${movie.getMovieId()}" th:user-id="${user.getUserId()}" th:if="${likedMovies.contains(movie)}">Избриши од омилена листа</a>
+                            </td>
+                            <td>
+                                <a class="btn btn-success button-add-grade-movie" th:movie-id="${movie.getMovieId()}">Остави оценка</a>
+                            </td>
+                            <td>
+                                <a class="btn btn-warning" th:href="@{'/movies/{id}/edit' (id=${movie.getMovieId()})}">Измени</a>
+                            </td>
+                            <td>
+                                <a class="btn btn-danger button-delete-movie" th:movie-id="${movie.getMovieId()}">Избриши филм</a>
+                            </td>
+                            </th:block>
+                        </tr>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+        </div>
+    </div>-->
+
+</div>
Index: target/classes/templates/personShow.html
===================================================================
--- target/classes/templates/personShow.html	(revision 7f3655122036717700124fc482399ad0780bdf52)
+++ target/classes/templates/personShow.html	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
@@ -30,3 +30,34 @@
         </div>
     </div>
+    <div style="width: 45%; margin: 25px; float:left; background-color: rgb(200,200,200); padding: 10px; border-radius: 5px">
+        <h2>
+            <span>Бројот на оцени кои филмот ги добил:</span>
+            <span th:text="${movie.getRates().size()}"></span>
+        </h2>
+        <hr>
+        <div th:each="rating: ${movie.getRates()}" style="margin-bottom: 10px; border: 2px solid gray; border-radius: 10px; background-color: lightblue; padding: 10px; border-radius: 10px; min-height: 130px;">
+            <div style="width: 60%; float:left;">
+                <p th:text="${rating.getReason()}" style="text-align: justify"></p>
+            </div>
+            <div style="width: 30%; float:right; background-color: darkorange; border-radius: 10px 30px; color: whitesmoke; padding: 10px;">
+                <h2 style="text-align: center">Rated:</h2>
+                <p th:text="${rating.getStarsRated() + ' out of 10 stars'}" style="text-align: center"></p>
+            </div>
+        </div>
+    </div>
+    <div style="width: 45%; margin: 25px; float:left; background-color: rgb(200,200,200); padding: 10px; border-radius: 5px">
+        <h2>
+            <span>Бројот на лајкови кои филмот ги добил:</span>
+            <span th:text="${movie.getLikes().size()}"></span>
+        </h2>
+        <hr>
+        <div th:each="liked: ${movie.getLikes()}" style="margin-bottom: 10px; border: 2px solid gray; border-radius: 10px; background-color: lightblue; padding: 10px; border-radius: 10px; min-height: 60px;">
+            <div style="width: 100%; float:left;">
+                <h3  style="text-align: center">
+                    <span th:text="${liked.getUser().getName() + ' ' + liked.getUser().getSurname()}"></span>
+                    <span style="color: green; font-size: 100%" >✔</span>
+                </h3>
+            </div>
+        </div>
+    </div>
 </div>
Index: target/classes/templates/personsList.html
===================================================================
--- target/classes/templates/personsList.html	(revision 7f3655122036717700124fc482399ad0780bdf52)
+++ target/classes/templates/personsList.html	(revision 3c0f9a97ce7897bbdf19cc016cc2edaede3e204c)
@@ -57,4 +57,15 @@
 
                             </td>
+
+                            <a class="bottom-heart btn btn-success button-add-favourite-list"
+                               th:movie-id="${person.getMovieId()}"
+                               th:user-id="${user.getUserId()}"
+                               th:if="${!likedPersons.contains(movie)}">❤</a>
+
+                            <a class="bottom-heart btn btn-danger button-remove-favourite-list"
+                               th:movie-id="${person.getMovieId()}" th:user-id="${user.getUserId()}"
+                               th:if="${likedPersons.contains(movie)}">💔</a>
+
+
                             </th:block>
 
