Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/Location.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/Location.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/Location.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -14,5 +14,4 @@
 @Entity
 @Table(name = "locations")
-@NoArgsConstructor
 @AllArgsConstructor
 @Getter
@@ -65,4 +64,8 @@
     private List<Planner> plannerList;
 
+    @ManyToOne
+    @JsonBackReference
+    @JoinColumn(name = "id_user")
+    private User user;
 
     @ManyToMany
@@ -74,9 +77,22 @@
     private List<Category> categoryList;
 
-
     @OneToMany(mappedBy = "location", cascade = CascadeType.REMOVE, orphanRemoval = true)
     @JsonManagedReference
     private List<Images> imagesList;
 
+    public Location(String name, String description, String address, String priority, int duration, String trivia, byte[] photo, Region region, City city, User user) {
+        this.name = name;
+        this.description = description;
+        this.address = address;
+        this.priority = priority;
+        this.duration = duration;
+        this.trivia = trivia;
+        this.photo = photo;
+        this.region = region;
+        this.city = city;
+        this.user = user;
+    }
 
+    public Location() {
+    }
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/Period.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/Period.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ 	(revision )
@@ -1,8 +1,0 @@
-package finki.diplomska.tripplanner.models;
-
-import javax.persistence.Embeddable;
-
-@Embeddable
-public class Period {
-    private String period;
-}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/User.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/User.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/User.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -2,4 +2,5 @@
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -44,4 +45,8 @@
     @JsonIgnore
     private List<Planner> planners = new ArrayList<>();
+
+    @OneToMany(cascade = CascadeType.REFRESH, mappedBy = "user", orphanRemoval = true)
+    @JsonIgnore
+    private List<Location> locationList = new ArrayList<>();;
 
     public User() {
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/dto/LocationDto.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/dto/LocationDto.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/dto/LocationDto.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,53 @@
+package finki.diplomska.tripplanner.models.dto;
+
+import finki.diplomska.tripplanner.models.*;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LocationDto {
+
+    private String name;
+
+    private String description;
+
+    private String address;
+
+    private String priority;
+
+    private int duration;
+
+    private String trivia;
+
+    private byte[] photo;
+
+    private Long region;
+
+    private Long city;
+
+    private String user;
+
+    private List<Long> companions;
+
+    private List<Long> categories;
+
+
+    public LocationDto(String name, String description, String address, String priority, int duration, String trivia, byte[] photo, Long region, Long city, String user ) {
+        this.name = name;
+        this.description = description;
+        this.address = address;
+        this.priority = priority;
+        this.duration = duration;
+        this.trivia = trivia;
+        this.photo = photo;
+        this.region = region;
+        this.city = city;
+        this.user = user;
+        this.companions = companions;
+        this.categories = categories;
+    }
+
+    public LocationDto() {
+    }
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CityNotFoundException.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CityNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CityNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,10 @@
+package finki.diplomska.tripplanner.models.exceptions;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.NOT_FOUND)
+public class CityNotFoundException extends RuntimeException{
+    public CityNotFoundException(Long id) {super(String.format("City with id %d is not found", id));}
+
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CompanionNotFoundException.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CompanionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/CompanionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,10 @@
+package finki.diplomska.tripplanner.models.exceptions;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.NOT_FOUND)
+public class CompanionNotFoundException extends RuntimeException{
+    public CompanionNotFoundException(Long id) {super(String.format("Companion with id %d is not found", id));}
+
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/RegionNotFoundException.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/RegionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/models/exceptions/RegionNotFoundException.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -0,0 +1,9 @@
+package finki.diplomska.tripplanner.models.exceptions;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(HttpStatus.NOT_FOUND)
+public class RegionNotFoundException extends RuntimeException{
+    public RegionNotFoundException(Long id){super(String.format("Region with id %d is not found", id));}
+}
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/security/SecurityConfig.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/security/SecurityConfig.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/security/SecurityConfig.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -81,4 +81,9 @@
                 .antMatchers("/api/all").permitAll()
                 .antMatchers("/api/places").permitAll()
+                .antMatchers("/create/planner").permitAll()
+                .antMatchers("/create/planner/{id}").permitAll()
+                .antMatchers("/create/locations").permitAll()
+                .antMatchers("/create/trip/locations").permitAll()
+                .antMatchers("/create").permitAll()
                 .anyRequest().authenticated();
         http.addFilterBefore(jwtAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/service/LocationService.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -4,4 +4,5 @@
 import finki.diplomska.tripplanner.models.Location;
 import finki.diplomska.tripplanner.models.Planner;
+import finki.diplomska.tripplanner.models.dto.LocationDto;
 import finki.diplomska.tripplanner.models.dto.PlannerLocationDto;
 import org.springframework.data.repository.query.Param;
@@ -26,3 +27,4 @@
     List<Long> getAllLocationIdsForPlanner(Long plannerId);
     List<Location> getAllLocations(String place);
+    Optional<Location> save (LocationDto locationDto, String username);
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/service/impl/LocationServiceImpl.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -1,10 +1,12 @@
 package finki.diplomska.tripplanner.service.impl;
 
-import finki.diplomska.tripplanner.models.Location;
-import finki.diplomska.tripplanner.models.Planner;
+import finki.diplomska.tripplanner.models.*;
+import finki.diplomska.tripplanner.models.dto.LocationDto;
 import finki.diplomska.tripplanner.models.dto.PlannerLocationDto;
+import finki.diplomska.tripplanner.models.exceptions.CityNotFoundException;
+import finki.diplomska.tripplanner.models.exceptions.CompanionNotFoundException;
 import finki.diplomska.tripplanner.models.exceptions.LocationNotFoundException;
-import finki.diplomska.tripplanner.repository.jpa.JpaLocationRepository;
-import finki.diplomska.tripplanner.repository.jpa.JpaPlannerRepository;
+import finki.diplomska.tripplanner.models.exceptions.RegionNotFoundException;
+import finki.diplomska.tripplanner.repository.jpa.*;
 import finki.diplomska.tripplanner.service.LocationService;
 import org.springframework.stereotype.Service;
@@ -19,8 +21,18 @@
     private final JpaLocationRepository locationRepository;
     private final JpaPlannerRepository plannerRepository;
-
-    public LocationServiceImpl(JpaLocationRepository locationRepository, JpaPlannerRepository plannerRepository) {
+    private final JpaRegionRepository regionRepository;
+    private final JpaCityRepository cityRepository;
+    private final JpaUserRepository userRepository;
+    private final JpaCategoryRepository categoryRepository;
+    private final JpaCompanionRepository companionRepository;
+
+    public LocationServiceImpl(JpaLocationRepository locationRepository, JpaPlannerRepository plannerRepository, JpaRegionRepository regionRepository, JpaCityRepository cityRepository, JpaUserRepository userRepository, JpaCategoryRepository categoryRepository, JpaCompanionRepository companionRepository) {
         this.locationRepository = locationRepository;
         this.plannerRepository = plannerRepository;
+        this.regionRepository = regionRepository;
+        this.cityRepository = cityRepository;
+        this.userRepository = userRepository;
+        this.categoryRepository = categoryRepository;
+        this.companionRepository = companionRepository;
     }
 
@@ -151,5 +163,4 @@
             }
         }
-
         return newList;
     }
@@ -189,4 +200,20 @@
     }
 
+    @Override
+    public Optional<Location> save(LocationDto locationDto, String username) {
+        City city = new City();
+        Region region = this.regionRepository.findById(locationDto.getRegion())
+                .orElseThrow(() -> new RegionNotFoundException(locationDto.getRegion()));
+        if(locationDto.getCity() != null){
+             city = this.cityRepository.findById(locationDto.getCity())
+                    .orElseThrow(() -> new CityNotFoundException(locationDto.getCity()));
+        }else{
+            city = null;
+        }
+        User user = this.userRepository.findByUsername(username);
+        locationDto.setUser(user.getUsername());
+        return Optional.of(this.locationRepository.save(new Location(locationDto.getName(), locationDto.getDescription(), locationDto.getAddress(), locationDto.getPriority(),
+                locationDto.getDuration(), locationDto.getTrivia(), locationDto.getPhoto(), region, city, user)));
+    }
 
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/LocationRestController.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/LocationRestController.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/LocationRestController.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -2,8 +2,11 @@
 
 import finki.diplomska.tripplanner.models.Location;
+import finki.diplomska.tripplanner.models.User;
+import finki.diplomska.tripplanner.models.dto.LocationDto;
 import finki.diplomska.tripplanner.models.dto.PlannerLocationDto;
 import finki.diplomska.tripplanner.service.LocationService;
 import finki.diplomska.tripplanner.service.PlannerService;
 import org.springframework.http.ResponseEntity;
+import org.springframework.security.core.Authentication;
 import org.springframework.web.bind.annotation.*;
 
@@ -82,3 +85,10 @@
     }
 
+    @PostMapping("/add")
+    public ResponseEntity<Location> save(@RequestBody LocationDto locationDto, Authentication authentication) {
+        User user = (User) authentication.getPrincipal();
+        return this.locationService.save(locationDto, user.getUsername())
+                .map(location -> ResponseEntity.ok().body(location))
+                .orElseGet(() -> ResponseEntity.badRequest().build());
+    }
 }
Index: trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/PlannerRestController.java
===================================================================
--- trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/PlannerRestController.java	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/main/java/finki/diplomska/tripplanner/web/rest/PlannerRestController.java	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -69,5 +69,4 @@
     @ResponseStatus(HttpStatus.CREATED)
     public ResponseEntity<?> newPlanner(@Valid @RequestBody PlannerDto plannerDto, Authentication authentication)  {
-
         User user = (User) authentication.getPrincipal();
         return this.plannerService.newPlanner(plannerDto, user.getUsername())
Index: trip-planner/src/test/api.http
===================================================================
--- trip-planner/src/test/api.http	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
+++ trip-planner/src/test/api.http	(revision 6fe77af06f1c4e777095cd5ea48f5387322a3f32)
@@ -117,2 +117,6 @@
 GET http://localhost:8080/api/places
 Content-Type: application/json
+
+###
+POST http://localhost:8080/api/add
+Content-Type: application/json
