Index: src/main/java/com/example/moviezone/config/WebSecurityConfig.java
===================================================================
--- src/main/java/com/example/moviezone/config/WebSecurityConfig.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/config/WebSecurityConfig.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -32,5 +32,5 @@
         http.csrf().disable()
                 .authorizeRequests()
-                .antMatchers("/", "/home", "/assets/**", "/register", "/api/**").permitAll()
+                .antMatchers("/","/home/getFilm/**", "/home", "/assets/**", "/register", "/api/**").permitAll()
                 .antMatchers("/admin/**").hasRole("ADMIN")
                 .anyRequest()
Index: src/main/java/com/example/moviezone/model/Film.java
===================================================================
--- src/main/java/com/example/moviezone/model/Film.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/model/Film.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -46,3 +46,43 @@
 
     }
+
+    public Integer getId_film() {
+        return id_film;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public Integer getDuration() {
+        return duration;
+    }
+
+    public String getActors() {
+        return actors;
+    }
+
+    public String getGenre() {
+        return genre;
+    }
+
+    public String getAge_category() {
+        return age_category;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public String getDirector() {
+        return director;
+    }
+
+    public LocalDate getStart_date() {
+        return start_date;
+    }
+
+    public LocalDate getEnd_date() {
+        return end_date;
+    }
 }
Index: src/main/java/com/example/moviezone/model/Projection.java
===================================================================
--- src/main/java/com/example/moviezone/model/Projection.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/model/Projection.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -39,3 +39,6 @@
         this.film = film;
     }
+
+    public Projection() {
+    }
 }
Index: src/main/java/com/example/moviezone/repository/FilmRepository.java
===================================================================
--- src/main/java/com/example/moviezone/repository/FilmRepository.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/repository/FilmRepository.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -3,5 +3,10 @@
 import com.example.moviezone.model.Film;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.query.Procedure;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
 
 public interface FilmRepository extends JpaRepository<Film,Integer> {
+
 }
Index: src/main/java/com/example/moviezone/repository/ProjectionRepository.java
===================================================================
--- src/main/java/com/example/moviezone/repository/ProjectionRepository.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/repository/ProjectionRepository.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -9,4 +9,4 @@
 public interface ProjectionRepository extends JpaRepository<Projection,Integer> {
     //    NOTE: CHANGE THIS WITH MATERIALIZED VIEW
-    List<Projection> findAllByDate_time_startBefore(LocalDate datum);
+    //List<Projection> findAllBydate_time_startBefore(LocalDate datum);
 }
Index: src/main/java/com/example/moviezone/service/FilmService.java
===================================================================
--- src/main/java/com/example/moviezone/service/FilmService.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/service/FilmService.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -5,4 +5,5 @@
 import java.time.LocalDate;
 import java.util.List;
+import java.util.Optional;
 
 public interface FilmService {
@@ -10,3 +11,4 @@
     Film save(String name, Integer duration, String actors, String genre,
               String age_category, String url, String director, LocalDate start_date,LocalDate end_date);
+    Optional<Film> getFilmById(Long id);
 }
Index: src/main/java/com/example/moviezone/service/Impl/FilmServiceImpl.java
===================================================================
--- src/main/java/com/example/moviezone/service/Impl/FilmServiceImpl.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/service/Impl/FilmServiceImpl.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -7,5 +7,7 @@
 
 import java.time.LocalDate;
+import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 
 @Service
@@ -26,3 +28,9 @@
         return filmRepository.save(new Film(name,duration,actors,genre,age_category,url,director,start_date,end_date));
     }
+
+    @Override
+    public Optional<Film> getFilmById(Long id) {
+        return filmRepository.findAllById(Collections.singleton(id.intValue())).stream().findFirst();
+    }
+
 }
Index: src/main/java/com/example/moviezone/service/Impl/ProjectionServiceImpl.java
===================================================================
--- src/main/java/com/example/moviezone/service/Impl/ProjectionServiceImpl.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/service/Impl/ProjectionServiceImpl.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -25,8 +25,4 @@
     }
 
-    @Override
-    public List<Projection> findAllAvailableProjections(LocalDate date) {
-        return projectionRepository.findAllByDate_time_startBefore(date);
-    }
 
     @Override
Index: src/main/java/com/example/moviezone/service/ProjectionService.java
===================================================================
--- src/main/java/com/example/moviezone/service/ProjectionService.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/service/ProjectionService.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -9,5 +9,4 @@
 public interface ProjectionService {
     List<Projection> findAllProjections();
-List<Projection> findAllAvailableProjections(LocalDate date);
 Projection save(LocalDate date_time_start,LocalDate date_time_end, String type_of_technology, Integer id_film );
 }
Index: src/main/java/com/example/moviezone/web/HomeController.java
===================================================================
--- src/main/java/com/example/moviezone/web/HomeController.java	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/java/com/example/moviezone/web/HomeController.java	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -3,4 +3,5 @@
 
 import com.example.moviezone.model.Customer;
+import com.example.moviezone.model.Film;
 import com.example.moviezone.model.User;
 import com.example.moviezone.model.exceptions.UserNotFoundException;
@@ -9,14 +10,14 @@
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpSession;
 import java.time.LocalDate;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 @Controller
-@RequestMapping("/")
+@RequestMapping({"/","/home"})
 public class HomeController {
 
@@ -37,7 +38,19 @@
     }
 
-    @GetMapping({"/","/home"})
+    @GetMapping
     public String getHomePage(Model model) {
+        List<Film> films=filmService.findAllFilms();
+        films=films.stream().limit(5).collect(Collectors.toList());
+        model.addAttribute("films", films);
         model.addAttribute("bodyContent", "home");
+
+        return "master-template";
+    }
+    @GetMapping("/getFilm/{id}")
+    public String getFilm(@PathVariable Long id, Model model) {
+        Optional<Film> film=filmService.getFilmById(id);
+        model.addAttribute("film", film);
+        model.addAttribute("bodyContent", "home");
+
         return "master-template";
     }
@@ -97,5 +110,5 @@
     public String getProjectionsPage(Model model)
     {
-        model.addAttribute("projections",projectionService.findAllAvailableProjections(LocalDate.now()));
+        model.addAttribute("projections",projectionService.findAllProjections());
         model.addAttribute("bodyContent","projections");
         return "master-template";
Index: src/main/resources/templates/film.html
===================================================================
--- src/main/resources/templates/film.html	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
+++ src/main/resources/templates/film.html	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+
+</body>
+</html>
Index: src/main/resources/templates/fragments/header.html
===================================================================
--- src/main/resources/templates/fragments/header.html	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/resources/templates/fragments/header.html	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -58,4 +58,5 @@
 </style>
 <body>
+<div style="width: 100%">
 <nav class="menu">
     <ul class="menu-left">
@@ -70,5 +71,5 @@
         <li class="reg"><a href="#!">Регистрација</a></li>
     </ul>
-</nav>
+</nav></div>
 </body>
 </html>
Index: src/main/resources/templates/home.html
===================================================================
--- src/main/resources/templates/home.html	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
+++ src/main/resources/templates/home.html	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -0,0 +1,224 @@
+<style xmlns:sec="http://www.w3.org/1999/xhtml">
+    @import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
+
+
+    *{
+        font-family: 'Poppins', sans-serif;
+    }
+
+
+    .container{
+
+        position: relative;
+    }
+
+    .container .card{
+        position: relative;
+        width: 250px;
+        height: 300px;
+        background: #232323;
+        border-radius: 20px;
+        overflow: hidden;
+    }
+
+    .container .card:before{
+        content: '';
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+        background: black;
+        transition: 0.5s ease-in-out;
+    }
+
+
+    .container .card:after{
+        position: absolute;
+
+        font-size: 6em;
+        font-weight: 600;
+        font-style: italic;
+        color: rgba(255,255,25,0.05)
+    }
+
+    .container .card .imgBx{
+        position: absolute;
+        width: 100%;
+        height: 300px;
+        transition: 0.5s;
+    }
+
+    .container .card:hover .imgBx{
+        top: 0%;
+
+    }
+
+    .container .card .imgBx img{
+        position: absolute;
+        width: 100%;
+    }
+
+    .container .card .contentBx{
+        position: absolute;
+        bottom: 0;
+        width: 100%;
+        height: 300px;
+        text-align: center;
+        transition: 1s;
+        z-index: 10;
+    }
+
+    .container .card:hover .contentBx{
+        height: 300px;
+    }
+
+    .container .card .contentBx h2{
+        position: relative;
+        font-weight: 300;
+        letter-spacing: 1px;
+        color: #fff;
+        margin: 0;
+    }
+
+    .container .card .contentBx .size, .container .card .contentBx .color, .container .card .contentBx .button {
+        display: flex;
+        justify-content: start;
+        align-items: start;
+        padding: 8px 20px;
+        transition: 0.5s;opacity: 0;
+        visibility: hidden;
+        padding-top: 0;
+        padding-bottom: 0;
+    }
+
+    .container .card .contentBx .button {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        padding: 8px 20px;
+        transition: 0.5s;opacity: 0;
+        visibility: hidden;
+        padding-top: 0;
+        padding-bottom: 0;
+    }
+    .container .card:hover .contentBx .size{
+        opacity: 1;
+        visibility: visible;
+        transition-delay: 0.5s;
+    }
+    .container .card:hover .contentBx .button{
+        opacity: 1;
+        visibility: visible;
+        transition-delay: 0.5s;
+    }
+
+    .container .card:hover .contentBx .color{
+        opacity: 1;
+        visibility: visible;
+        transition-delay: 0.6s;
+    }
+
+    .container .card .contentBx .size h3, .container .card .contentBx .color h3{
+        color: #fff;
+        font-weight: 600;
+        font-size: 8px;
+        text-transform: uppercase;
+        letter-spacing: 2px;
+        margin-right: 10px;
+    }
+
+    .container .card .contentBx .size span{
+        width: 26px;
+        height: 26px;
+        text-align: center;
+        line-height: 26px;
+        font-size: 8px;
+        display: inline-block;
+        color: #111;
+        background: #fff;
+        margin: 0 5px;
+        transition: 0.5s;
+        color: #111;
+        border-radius: 4px;
+        cursor: pointer;
+    }
+
+
+
+    .container .card .contentBx .color span{
+        width: 100%;
+        height: 20px;
+        color: white;
+        margin: 0 5px;
+        cursor: pointer;
+    }
+
+
+    .container .card .contentBx a{
+        display: inline-block;
+        padding: 10px 20px;
+        background: #fff;
+        border-radius: 4px;
+        margin-top: 10px;
+        text-decoration: none;
+        font-weight: 600;
+        color: #111;
+        opacity: 0;
+        transform: translateY(50px);
+        transition: 0.5s;
+        margin-top: 0;
+    }
+
+    .container .card:hover .contentBx a{
+        opacity: 1;
+        transition-delay: 0.75s;
+
+    }
+    .main{
+        margin-top: 100px;
+        display: flex;
+        align-items: flex-start;
+        justify-content: flex-start;
+    }
+    .button {
+        top:250px;
+        background-color: white;
+        border: none;
+        color: black;
+        padding: 10px 20px;
+        text-align: center;
+        text-decoration: none;
+        display: inline-block;
+        font-size: 16px;
+        border-radius: 20px;
+    }
+</style>
+<div xmlns:th="http://www.thymeleaf.org">
+<div class="main">
+<div th:each="film : ${films}" class="container">
+    <div class="card">
+        <div class="imgBx">
+            <img th:src="@{${film.getUrl()}}"/>
+        </div>
+        <div class="contentBx">
+            <h2  th:text="${film.getName()}"></h2>
+            <div class="size">
+                <h3>Duration :</h3>
+                <span th:text="${film.getDuration()}"></span>
+            </div>
+            <div class="color">
+                <h3>Genre:</h3>
+                <span th:text="${film.getGenre()}"></span>
+            </div>
+            <form th:action="@{'/home/getFilm/{id}' (id=${film.getId_film()})}"
+                  th:method="GET">
+                <button class="button" type="submit">Details</button>
+            </form>
+
+
+        </div>
+    </div>
+</div>
+</div>
+</div>
Index: src/main/resources/templates/master-template.html
===================================================================
--- src/main/resources/templates/master-template.html	(revision 448bd84fdf9afb4e8cbe65e87648142640def91f)
+++ src/main/resources/templates/master-template.html	(revision eb5426c981f83375a15824666dfb19c2aeb9fab7)
@@ -1,10 +1,19 @@
 <!DOCTYPE html>
-<html lang="en">
+<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
 <head>
-    <meta charset="UTF-8">
-    <title>Title</title>
+    <meta charset="UTF-8"/>
+    <title>MovieZone</title>
+    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
+    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
+    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
 </head>
 <body>
+<header th:replace="fragments/header"/>
 
+<section th:include="${bodyContent}">
+
+</section>
+<!-- Footer -->
 </body>
 </html>
