Index: src/main/java/edu/gjoko/schedlr/config/AppFilter.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/config/AppFilter.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/config/AppFilter.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -10,8 +10,5 @@
 import org.springframework.web.filter.GenericFilterBean;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
+import javax.servlet.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -75,5 +72,5 @@
                             break;
                     }
-                    if(page != null && !page.trim().isEmpty()) {
+                    if(page != null && !page.trim().isEmpty() && !DispatcherType.ERROR.equals(servletRequest.getDispatcherType())) {
                         servletRequest.getRequestDispatcher(page).forward(servletRequest, servletResponse);
                         return;
Index: src/main/java/edu/gjoko/schedlr/config/AppSecurityConfig.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/config/AppSecurityConfig.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/config/AppSecurityConfig.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -10,10 +10,13 @@
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.config.core.GrantedAuthorityDefaults;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.security.web.access.AccessDeniedHandler;
 import org.springframework.security.web.authentication.AuthenticationFailureHandler;
 import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
+import org.springframework.security.web.authentication.logout.HeaderWriterLogoutHandler;
+import org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler;
 import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
+import org.springframework.security.web.header.writers.ClearSiteDataHeaderWriter;
+
+import static org.springframework.security.web.header.writers.ClearSiteDataHeaderWriter.Directive.*;
 
 @Configuration
@@ -21,4 +24,7 @@
 @AllArgsConstructor
 public class AppSecurityConfig extends WebSecurityConfigurerAdapter {
+
+    private static final ClearSiteDataHeaderWriter.Directive[] SOURCE =
+            {CACHE, COOKIES, STORAGE, EXECUTION_CONTEXTS};
 
     private final PostgresUserDetailsService userDetailsService;
@@ -55,10 +61,18 @@
                 .defaultSuccessUrl("/homepage")
                 .and()
+                .logout(logout -> logout
+                        .logoutUrl("/logout")
+                        .logoutSuccessUrl("/login")
+                        .addLogoutHandler(new SecurityContextLogoutHandler())
+                        .addLogoutHandler(new HeaderWriterLogoutHandler(new ClearSiteDataHeaderWriter(SOURCE))))
                 .authorizeRequests()
                 .antMatchers("/login").permitAll()
+                .antMatchers("/logout").permitAll()
                 .antMatchers("/register_customer").permitAll()
                 .antMatchers("/register_business").permitAll()
                 .antMatchers("/api/nomenclatures/*").permitAll()
+                .antMatchers("/api/user/me").permitAll()
                 .antMatchers("/api/business").permitAll()
+                .antMatchers("/api/appointment").permitAll()
                 .antMatchers("/homepage").permitAll()
                 .antMatchers("/css/**").permitAll()
Index: src/main/java/edu/gjoko/schedlr/controllers/rest/AppointmentController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/rest/AppointmentController.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/java/edu/gjoko/schedlr/controllers/rest/AppointmentController.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,37 @@
+package edu.gjoko.schedlr.controllers.rest;
+
+import edu.gjoko.schedlr.entity.Appointment;
+import edu.gjoko.schedlr.entity.Business;
+import edu.gjoko.schedlr.entity.Stakeholder;
+import edu.gjoko.schedlr.repositories.AppointmentRepository;
+import edu.gjoko.schedlr.services.AppointmentsService;
+import edu.gjoko.schedlr.services.StakeholderService;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@RestController
+@RequestMapping("api/appointment")
+@AllArgsConstructor
+public class AppointmentController {
+
+    private final AppointmentsService appointmentsService;
+
+    @PostMapping
+    public void getBusinessTypes(@RequestBody Appointment appointment, HttpServletRequest request) {
+        Long customerId = (long) request.getSession(true).getAttribute("stakeholderId");
+        Stakeholder customer = new Stakeholder();
+        customer.setId(customerId);
+        appointment.setCustomer(customer);
+        appointmentsService.saveAppointment(appointment);
+    }
+
+    @GetMapping(path = "/business/{businessId}")
+    public List<Appointment> getAppointmentsByBusiness(@PathVariable("businessId") Long businessId) {
+        var business = new Business();
+        business.setId(businessId);
+        return appointmentsService.getAppointmentsByBusiness(business);
+    }
+}
Index: src/main/java/edu/gjoko/schedlr/controllers/rest/BusinessController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/rest/BusinessController.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/controllers/rest/BusinessController.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -2,8 +2,7 @@
 
 import edu.gjoko.schedlr.entity.Business;
+import edu.gjoko.schedlr.entity.BusinessType;
 import edu.gjoko.schedlr.services.BusinessService;
 import lombok.AllArgsConstructor;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
 
@@ -38,3 +37,10 @@
         return businessService.findByOwner(businessOwnerId);
     }
+
+    @GetMapping(path = "/{businessTypeId}")
+    public List<Business> getBusinessesByBusinessType(@PathVariable("businessTypeId") Long id) {
+        BusinessType businessType = new BusinessType();
+        businessType.setId(id);
+        return businessService.findByBusinessTypeAndActiveStatus(businessType);
+    }
 }
Index: src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclatureController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclatureController.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclatureController.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,22 @@
+package edu.gjoko.schedlr.controllers.rest;
+
+import edu.gjoko.schedlr.entity.BusinessType;
+import edu.gjoko.schedlr.services.NomenclaturesService;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("api/nomenclatures")
+@AllArgsConstructor
+public class NomenclatureController {
+
+    private final NomenclaturesService nomenclaturesService;
+    @GetMapping( "/businessTypes")
+    public List<BusinessType> getBusinessTypes() {
+        return nomenclaturesService.getBusinessTypes();
+    }
+}
Index: src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclaturesController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/rest/NomenclaturesController.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ 	(revision )
@@ -1,23 +1,0 @@
-package edu.gjoko.schedlr.controllers.rest;
-
-import edu.gjoko.schedlr.entity.BusinessType;
-import edu.gjoko.schedlr.repositories.BusinessTypeRepository;
-import edu.gjoko.schedlr.services.NomenclaturesService;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("api/nomenclatures")
-@AllArgsConstructor
-public class NomenclaturesController {
-
-    private final NomenclaturesService nomenclaturesService;
-    @GetMapping( "/businessTypes")
-    public List<BusinessType> getBusinessTypes() {
-        return nomenclaturesService.getBusinessTypes();
-    }
-}
Index: src/main/java/edu/gjoko/schedlr/controllers/rest/UserController.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/controllers/rest/UserController.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/java/edu/gjoko/schedlr/controllers/rest/UserController.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,21 @@
+package edu.gjoko.schedlr.controllers.rest;
+
+import edu.gjoko.schedlr.entity.Business;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@RestController
+@RequestMapping("api/user")
+@AllArgsConstructor
+public class UserController {
+
+    @GetMapping(path = "/me")
+    public boolean findAll(HttpServletRequest request) {
+        return request.getSession(true).getAttribute("stakeholderId") != null;
+    }
+}
Index: src/main/java/edu/gjoko/schedlr/entity/Appointment.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/Appointment.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/entity/Appointment.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -24,5 +24,5 @@
     private Long id;
 
-    @Column(name = "start_type")
+    @Column(name = "start_time")
     private LocalDateTime startTime;
 
@@ -30,6 +30,15 @@
     private LocalDateTime endTime;
 
-    @Column(name = "price")
-    private Float price;
+    @OneToOne
+    @JoinColumn(name = "customer_id", referencedColumnName = "id")
+    private Stakeholder customer;
+
+    @ManyToOne
+    @JoinColumn(name = "business_id")
+    private Business business;
+
+    @ManyToOne
+    @JoinColumn(name = "service_id")
+    private Service service;
 
     @Column(name = "created")
Index: src/main/java/edu/gjoko/schedlr/entity/Business.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/Business.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/entity/Business.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -37,5 +37,5 @@
     private BusinessType businessType;
 
-    @ManyToOne(cascade = CascadeType.PERSIST)
+    @ManyToOne()
     @JoinColumn(name = "owner_id", referencedColumnName = "id", nullable = false)
     @JsonProperty("owner")
Index: src/main/java/edu/gjoko/schedlr/entity/Service.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/Service.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/entity/Service.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -33,10 +33,10 @@
     private Integer price;
 
-    @OneToOne(cascade = CascadeType.MERGE)
+    @OneToOne(cascade = CascadeType.PERSIST)
     @JoinColumn(name = "service_type_id", referencedColumnName = "id")
     private ServiceType serviceType;
 
     @ManyToOne
-    @JoinColumn(name = "business_fk")
+    @JoinColumn(name = "business_id")
     @JsonBackReference
     private Business business;
Index: src/main/java/edu/gjoko/schedlr/entity/ServiceType.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/ServiceType.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/entity/ServiceType.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -30,5 +30,4 @@
     private String name;
 
-
     @ManyToOne
     @JoinColumn(name = "business_type_id")
Index: src/main/java/edu/gjoko/schedlr/entity/Stakeholder.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/entity/Stakeholder.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/entity/Stakeholder.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -43,5 +43,4 @@
 
     @Column(name = "password")
-    @JsonIgnore
     private String password;
 
Index: src/main/java/edu/gjoko/schedlr/exceptions/BlockingTimeException.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/exceptions/BlockingTimeException.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/java/edu/gjoko/schedlr/exceptions/BlockingTimeException.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,9 @@
+package edu.gjoko.schedlr.exceptions;
+
+public class BlockingTimeException extends RuntimeException {
+
+    public static final String MESSAGE = "The selected dates are overlapping with another appointment";
+    public BlockingTimeException() {
+        super(MESSAGE);
+    }
+}
Index: src/main/java/edu/gjoko/schedlr/repositories/AppointmentRepository.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/repositories/AppointmentRepository.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/java/edu/gjoko/schedlr/repositories/AppointmentRepository.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,30 @@
+package edu.gjoko.schedlr.repositories;
+
+import edu.gjoko.schedlr.entity.Appointment;
+import edu.gjoko.schedlr.entity.Business;
+import edu.gjoko.schedlr.entity.Stakeholder;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Repository
+public interface AppointmentRepository extends JpaRepository<Appointment, Long> {
+
+    List<Appointment> getAppointmentsByBusiness(Business business);
+
+    List<Appointment> getAppointmentsByCustomer(Stakeholder customer);
+
+    List<Appointment> findAppointmentsByBusinessAndStartTimeBetweenOrEndTimeBetween(Business business, LocalDateTime startTime, LocalDateTime endTime, LocalDateTime startTime1, LocalDateTime endTime1);
+
+    @Query(value = "select a from Appointment a " +
+            "where business_id = :businessId " +
+            "and (" +
+            "(start_time between :startDate and :endDate) " +
+            "or (end_time between :startDate and :endDate) " +
+            "or (:startDate <= start_time and end_time >= :endDate)" +
+            ")", nativeQuery = true)
+    List<Appointment> findBlockingAppointments(Long businessId, LocalDateTime startDate, LocalDateTime endDate);
+}
Index: src/main/java/edu/gjoko/schedlr/repositories/BusinessRepository.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/repositories/BusinessRepository.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/repositories/BusinessRepository.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -3,5 +3,7 @@
 import edu.gjoko.schedlr.entity.Business;
 import edu.gjoko.schedlr.entity.BusinessStatus;
+import edu.gjoko.schedlr.entity.BusinessType;
 import edu.gjoko.schedlr.entity.Stakeholder;
+import org.hibernate.Session;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
@@ -12,6 +14,6 @@
 public interface BusinessRepository extends JpaRepository<Business, Long> {
 
-    List<Business> findBusinessesByBusinessStatus(BusinessStatus status);
+    Business findBusinessByOwner(Stakeholder owner);
 
-    Business findBusinessByOwner(Stakeholder owner);
+    List<Business> findBusinessesByBusinessTypeAndBusinessStatus(BusinessType businessType, BusinessStatus businessStatus);
 }
Index: src/main/java/edu/gjoko/schedlr/repositories/ServiceRepository.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/repositories/ServiceRepository.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/java/edu/gjoko/schedlr/repositories/ServiceRepository.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,10 @@
+package edu.gjoko.schedlr.repositories;
+
+import edu.gjoko.schedlr.entity.Business;
+import edu.gjoko.schedlr.entity.Service;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ServiceRepository extends JpaRepository<Service, Long> {
+}
Index: src/main/java/edu/gjoko/schedlr/services/AppointmentsService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/AppointmentsService.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
+++ src/main/java/edu/gjoko/schedlr/services/AppointmentsService.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -0,0 +1,44 @@
+package edu.gjoko.schedlr.services;
+
+import edu.gjoko.schedlr.entity.Appointment;
+import edu.gjoko.schedlr.entity.Business;
+import edu.gjoko.schedlr.entity.Stakeholder;
+import edu.gjoko.schedlr.exceptions.BlockingTimeException;
+import edu.gjoko.schedlr.repositories.AppointmentRepository;
+import edu.gjoko.schedlr.repositories.ServiceRepository;
+import edu.gjoko.schedlr.repositories.ServiceTypeRepository;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class AppointmentsService {
+
+    private final AppointmentRepository appointmentRepository;
+
+    private final ServiceRepository serviceRepository;
+
+    public void saveAppointment(Appointment appointment) {
+        var service = serviceRepository.findById(appointment.getService().getId()).get();
+        appointment.setEndTime(appointment.getStartTime().plusMinutes(service.getDuration()));
+        List<Appointment> blockingAppointments = appointmentRepository.
+                findBlockingAppointments(
+                        appointment.getBusiness().getId(), appointment.getStartTime(), appointment.getEndTime());
+
+        // check to see if there are blocking exceptions
+        if (blockingAppointments != null && !blockingAppointments.isEmpty()) {
+            throw new BlockingTimeException();
+        }
+        appointmentRepository.save(appointment);
+    }
+
+    public List<Appointment> getAppointmentsByBusiness(Business business) {
+        return appointmentRepository.getAppointmentsByBusiness(business);
+    }
+
+    private List<Appointment> getAppointmentsByCustomer(Stakeholder stakeholder) {
+        return appointmentRepository.getAppointmentsByCustomer(stakeholder);
+    }
+}
Index: src/main/java/edu/gjoko/schedlr/services/BusinessService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/BusinessService.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/services/BusinessService.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -1,10 +1,9 @@
 package edu.gjoko.schedlr.services;
 
-import edu.gjoko.schedlr.entity.Business;
-import edu.gjoko.schedlr.entity.ServiceType;
-import edu.gjoko.schedlr.entity.Stakeholder;
-import edu.gjoko.schedlr.entity.StakeholderType;
+import edu.gjoko.schedlr.entity.*;
 import edu.gjoko.schedlr.repositories.BusinessRepository;
+import edu.gjoko.schedlr.repositories.ServiceRepository;
 import edu.gjoko.schedlr.repositories.ServiceTypeRepository;
+import edu.gjoko.schedlr.repositories.StakeholderRepository;
 import lombok.AllArgsConstructor;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -13,4 +12,5 @@
 import java.util.List;
 
+import static edu.gjoko.schedlr.entity.BusinessStatus.ACTIVE;
 import static edu.gjoko.schedlr.entity.BusinessStatus.NEW;
 
@@ -21,4 +21,7 @@
     private final BusinessRepository businessRepository;
     private final ServiceTypeRepository serviceTypeRepository;
+    private final ServiceRepository serviceRepository;
+
+    private final StakeholderRepository stakeholderRepository;
     private BCryptPasswordEncoder bCryptPasswordEncoder;
 
@@ -51,4 +54,6 @@
                 .stream()
                 .forEach(business -> {
+                    stakeholderRepository.save(business.getOwner());
+                    serviceRepository.saveAll(business.getServices());
                     businessRepository.save(business);
                 });
@@ -60,3 +65,7 @@
         return businessRepository.findBusinessByOwner(owner);
     }
+
+    public List<Business> findByBusinessTypeAndActiveStatus(BusinessType businessType) {
+        return businessRepository.findBusinessesByBusinessTypeAndBusinessStatus(businessType, ACTIVE);
+    }
 }
Index: src/main/java/edu/gjoko/schedlr/services/PostgresUserDetailsService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/PostgresUserDetailsService.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/services/PostgresUserDetailsService.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -8,5 +8,4 @@
 import edu.gjoko.schedlr.repositories.StakeholderRepository;
 import lombok.RequiredArgsConstructor;
-import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -15,5 +14,4 @@
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 
@@ -26,6 +24,4 @@
 
     private final StakeholderRepository stakeholderRepository;
-    private final BCryptPasswordEncoder bCryptPasswordEncoder;
-
     private final BusinessRepository businessRepository;
 
@@ -33,9 +29,9 @@
     public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
         Stakeholder user = stakeholderRepository.findStakeholderByUsername(username);
-        if(user == null) {
+        if (user == null) {
             throw new UsernameNotFoundException("Non existing user");
         }
 
-        if(user.getStakeholderType() == StakeholderType.BUSINESS_OWNER) {
+        if (user.getStakeholderType() == StakeholderType.BUSINESS_OWNER) {
             Business business = businessRepository.findBusinessByOwner(user);
             if (business.getBusinessStatus() != BusinessStatus.ACTIVE) {
Index: src/main/java/edu/gjoko/schedlr/services/StakeholderService.java
===================================================================
--- src/main/java/edu/gjoko/schedlr/services/StakeholderService.java	(revision 8bcd64c37eba4cd984953069331c9faa3a916671)
+++ src/main/java/edu/gjoko/schedlr/services/StakeholderService.java	(revision 950fa0d7a6b439770e79c885947e9b7d6058b424)
@@ -24,3 +24,7 @@
         return stakeholderRepository.save(stakeholder);
     }
+
+    public Stakeholder findById(Long id) {
+        return stakeholderRepository.findById(id).get();
+    }
 }
