diff --git a/src/main/java/Team5/SmartTowns/placeswithcoordinates/PlacesCoordinatesRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/placeswithcoordinates/PlacesCoordinatesRepositoryJDBC.java
index 2be252d020a0435786e0170f673848dc1a0a388d..3edbef12c89847a0c3dafc57df0262c13644581f 100644
--- a/src/main/java/Team5/SmartTowns/placeswithcoordinates/PlacesCoordinatesRepositoryJDBC.java
+++ b/src/main/java/Team5/SmartTowns/placeswithcoordinates/PlacesCoordinatesRepositoryJDBC.java
@@ -37,10 +37,11 @@ public class PlacesCoordinatesRepositoryJDBC implements PlacesCoordinatesReposit
                 rs.getString("townName"),
                 rs.getString("townCentreCoordsLat"),
                 rs.getString("townCentreCoordsLong"),
-                rs.getString("ownLeftmostCoordsLat"),
-                rs.getString("townRightmostCoordsLat"),
-                rs.getString("townUppermostCoordsLong"),
-                rs.getString("townLowermostCoordsLong")
+                rs.getString("townUppermostCoordsLat"),
+                rs.getString("townLowermostCoordsLat"),
+                rs.getString("townLeftmostCoordsLong"),
+                rs.getString("townRightmostCoordsLong")
+
 
         );
     }
@@ -65,9 +66,9 @@ public class PlacesCoordinatesRepositoryJDBC implements PlacesCoordinatesReposit
     }
     @Override
     public void addTownWithCoords(TownWithTrails town) {
-        String sql = "insert into townswithtrails(townName,townCentreCoordsLat,townCentreCoordsLong,townLeftmostCoordsLat,townRightmostCoordsLat,townUppermostCoordsLong,townLowermostCoordsLong) values (?,?,?,?,?,?,?)";
+        String sql = "insert into townswithtrails(townName,townCentreCoordsLat,townCentreCoordsLong,townUppermostCoordsLat,townLowermostCoordsLat,townLeftmostCoordsLong,townRightmostCoordsLong) values (?,?,?,?,?,?,?)";
 
-        jdbc.update(sql,town.getTownName(),town.getTownCentreCoordsLong(),town.getTownCentreCoordsLong(),town.getTownLeftmostCoordsLat(),town.getTownRightmostCoordsLat(),town.getTownUppermostCoordsLong(),town.getTownLowermostCoordsLong());
+        jdbc.update(sql,town.getTownName(),town.getTownCentreCoordsLong(),town.getTownCentreCoordsLong(),town.getTownUppermostCoordsLat(),town.getTownLowermostCoordsLat(),town.getTownLeftmostCoordsLong(),town.getTownRightmostCoordsLong());
 
     }
 
@@ -77,29 +78,63 @@ public class PlacesCoordinatesRepositoryJDBC implements PlacesCoordinatesReposit
     }
 
 
-    public boolean checkInputtedCoordsMatchTown(String inpLongCoords, String inpLatCoords, String townName){
+    public boolean checkInputtedCoordsMatchTown(String inpLatCoords, String inpLongCoords, String townName){
      PlacesCoordinatesRepositoryJDBC jbdcsecond = new PlacesCoordinatesRepositoryJDBC(jdbc);
      List<TownWithTrails> allTowns = jbdcsecond.getAllTownCoords();
      for (TownWithTrails town : allTowns){
          if (Objects.equals(townName, town.getTownName())){
              // check lon within boundaries
-//             if ((inpLongCoords))
+             // convert values to doubles
+             double inpLat=Double.parseDouble(inpLatCoords);
+             double inpLong=Double.parseDouble(inpLongCoords);
+             double townBoundaryLatUppermost=Double.parseDouble(town.getTownUppermostCoordsLat());
+             double townBoundaryLatLowermost=Double.parseDouble(town.getTownLowermostCoordsLat());
+
+             double townBoundaryLongLeftmost=Double.parseDouble(town.getTownLeftmostCoordsLong());
+             double townBoundaryLongRightmost=Double.parseDouble(town.getTownRightmostCoordsLong());
+             // check coords within respective town boundary (boundary decided by rough google maps red-line)
+             if ( (inpLat<=townBoundaryLatUppermost)&& (inpLat>=townBoundaryLatLowermost) && (inpLat<=townBoundaryLongLeftmost) &&  (inpLat<=townBoundaryLongRightmost)){
+                 // location within boundary
+                 return true;
+             } else{
+                 System.out.println("Location outside town boundary. "); //todo scanner bad idea, add admin override?
+                 return false;
+             }
 
 
 
          }
      }
     return true;}
+    int getLocationTableIDValue(List<Location> locations, String locationName){
+        int index;
+        for(int i=0;i<locations.size();i++){
+            if (Objects.equals(locations.get(i).getLocationName(), locationName)){
+                index = i;
+                return index;
+
+            } else{
+                return index= Integer.parseInt(null);
+            }
+
+
+
+        }
+    }
 
 
 
     // Method used to approve and add locations with associated coordinates. List<Location> unapprovedLocations
-    public void approveLocationAndAddCoords(String locationsName, String longCoords, String latCoords,JdbcTemplate jdbc) { // need list too
+    public void approveLocationAndAddCoords(String locationsName, String latCoords, String longCoords,JdbcTemplate jdbc) {
+        // need list too
+
         LocationsCoordinates jdbcTemp= new LocationsCoordinates(jdbc);
         List<Location> unapprovedLocations = jdbcTemp.getFullUnapprovedLocations(jdbc);
+        List<Location> allLocations = jdbcTemp.getFullListLocations(jdbc);
+
         PlacesCoordinatesRepositoryJDBC jbdcsecond = new PlacesCoordinatesRepositoryJDBC(jdbc);
         List<TownWithTrails> allTowns = jbdcsecond.getAllTownCoords();
-        int unapporvedLocationsListIndex;
+        int unapporvedLocationsListIndex=99;  // initialiose variable to allow after if statement to run todo fix this
         for (int i=0; i<unapprovedLocations.size();i++){ // check if location exists
             if (Objects.equals(unapprovedLocations.get(i).getLocationName(), locationsName)){
                 unapporvedLocationsListIndex =i;
@@ -107,9 +142,21 @@ public class PlacesCoordinatesRepositoryJDBC implements PlacesCoordinatesReposit
 
             } else if(!Objects.equals(unapprovedLocations.get(i).getLocationPlace(), locationsName)){
                 System.out.println("Error, location is not valid, please check your spelling or locations table.");
+
                 return;
             }
-//            String toBeApprovedLocationTown=unapprovedLocations.get(unapporvedLocationsListIndex).getLocationPlace();
+            String toBeApprovedLocationTown=unapprovedLocations.get(unapporvedLocationsListIndex).getLocationPlace();
+            int tableLocationIDOfInputtedLocation= getLocationTableIDValue(allLocations, locationsName);
+            LocationsCoordinates unapprovedLocation= new LocationsCoordinates(tableLocationIDOfInputtedLocation,latCoords, longCoords);
+            boolean locationWithinTownBoundaries= checkInputtedCoordsMatchTown(latCoords ,longCoords, toBeApprovedLocationTown);
+            if (locationWithinTownBoundaries){
+                addLocationCoord(unapprovedLocation);
+                return;
+
+
+            } else {
+                return;}
+
 //            for (TownWithTrails town : allTowns){
 //                if (Objects.equals(toBeApprovedLocationTown, town.getTownName())){
 
diff --git a/src/main/java/Team5/SmartTowns/placeswithcoordinates/TownWithTrails.java b/src/main/java/Team5/SmartTowns/placeswithcoordinates/TownWithTrails.java
index fe7048686f74dec095f92f9df50d5bb1c27cdb2a..b1049ffb389b893401af7e199fc771478f4317d2 100644
--- a/src/main/java/Team5/SmartTowns/placeswithcoordinates/TownWithTrails.java
+++ b/src/main/java/Team5/SmartTowns/placeswithcoordinates/TownWithTrails.java
@@ -5,10 +5,10 @@ public class TownWithTrails {
     private String townName;
     private String townCentreCoordsLat;
     private String townCentreCoordsLong;
-    private String townLeftmostCoordsLat;
-    private String townRightmostCoordsLat;
-    private String townUppermostCoordsLong;
-    private String townLowermostCoordsLong;
+    private String townUppermostCoordsLat;
+    private String townLowermostCoordsLat;
+    private String townLeftmostCoordsLong;
+    private String townRightmostCoordsLong;
 
     public String getTownName() {
         return townName;
@@ -22,29 +22,30 @@ public class TownWithTrails {
         return townCentreCoordsLong;
     }
 
-    public String getTownLeftmostCoordsLat() {
-        return townLeftmostCoordsLat;
+    public String getTownUppermostCoordsLat() {
+        return townUppermostCoordsLat;
     }
 
-    public String getTownRightmostCoordsLat() {
-        return townRightmostCoordsLat;
+    public String getTownLowermostCoordsLat() {
+        return townLowermostCoordsLat;
     }
 
-    public String getTownUppermostCoordsLong() {
-        return townUppermostCoordsLong;
+    public String getTownLeftmostCoordsLong() {
+        return townLeftmostCoordsLong;
     }
 
-    public String getTownLowermostCoordsLong() {
-        return townLowermostCoordsLong;
+    public String getTownRightmostCoordsLong() {
+        return townRightmostCoordsLong;
     }
 
-    public TownWithTrails(String townName, String townCentreCoordsLat, String townCentreCoordsLong, String townLeftmostCoordsLat, String townRightmostCoordsLat, String townUppermostCoordsLong, String townLowermostCoordsLong) {
+
+    public TownWithTrails(String townName, String townCentreCoordsLat, String townCentreCoordsLong, String townUppermostCoordsLat, String townLowermostCoordsLat, String townLeftmostCoordsLong, String townRightmostCoordsLong) {
         this.townName = townName;
         this.townCentreCoordsLat = townCentreCoordsLat;
         this.townCentreCoordsLong = townCentreCoordsLong;
-        this.townLeftmostCoordsLat = townLeftmostCoordsLat;
-        this.townRightmostCoordsLat = townRightmostCoordsLat;
-        this.townUppermostCoordsLong = townUppermostCoordsLong;
-        this.townLowermostCoordsLong = townLowermostCoordsLong;
+        this.townUppermostCoordsLat = townUppermostCoordsLat;
+        this.townLowermostCoordsLat = townLowermostCoordsLat;
+        this.townLeftmostCoordsLong = townLeftmostCoordsLong;
+        this.townRightmostCoordsLong = townRightmostCoordsLong;
     }
 }
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index 35cf5a7027b49fd346bfc3c71a1769eb64a8f44d..b75dec946a5539e434d1e98afd1ad47be2b2d3bb 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -78,8 +78,17 @@ insert into locationCoordinates(locationID, locationCoordsLat, locationCoordsLon
 # insert into stickerprogress (userID, packID, stickerID) value (1, 2, 1);
 # insert into stickerprogress (userID, packID, stickerID) value (1, 2, 3);
 
-delete from townsWithTrails;
-#                                                                                                                                                                                                                                          LAT=X LONG=Y
-insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townLeftmostCoordsLat, townRightmostCoordsLat, townUppermostCoordsLong, townLowermostCoordsLong) value ('Caerphilly', '51.57903','-3.22075','51.57224','51.58856','-3.24597','-3.22496');
-insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townLeftmostCoordsLat, townRightmostCoordsLat, townUppermostCoordsLong, townLowermostCoordsLong) value ('Risca','51.61195','-3.09648','51.61483','51.60566','-3.09853','-3.09377');
-insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townLeftmostCoordsLat, townRightmostCoordsLat, townUppermostCoordsLong, townLowermostCoordsLong) value ('Penarth','51.43893','-3.17354','51.34750','51.44365','-3.18830','-3.18187');
\ No newline at end of file
+delete from townsWithTrails;                                                                                                                                                              'Caerphilly', '-3.22075','51.57903',,'-3.24597','-3.22496','51.57224','51.58856');
+
+# insert into townsWithTrails (townName, townCentreCoordsLong, townCentreCoordsLat, townLeftmostCoordsLong, townRightmostCoordsLong, townUppermostCoordsLat, townLowermostCoordsLat) value ('Caerphilly', '51.57903','-3.22075','51.57224','51.58856','-3.24597','-3.22496');
+# insert into townsWithTrails (townName, townCentreCoordsLong, townCentreCoordsLat, townLeftmostCoordsLong, townRightmostCoordsLong, townUppermostCoordsLat, townLowermostCoordsLat) value ('Risca','51.61155','-3.10170','51.61483','51.60566','-3.09853','-3.09377');
+# insert into townsWithTrails (townName, townCentreCoordsLong, townCentreCoordsLat, townLeftmostCoordsLong, townRightmostCoordsLong, townUppermostCoordsLat, townLowermostCoordsLat) value ('Penarth','51.43893','-3.17354','51.34750','51.44365','-3.18830','-3.18187');
+#
+#
+# insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townLeftmostCoordsLat, townRightmostCoordsLat, townUppermostCoordsLong, townLowermostCoordsLong) value ('Caerphilly', '51.57903','-3. ','51.57224','51.58856','-3.24597','-3.22496');
+# insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townLeftmostCoordsLat, townRightmostCoordsLat, townUppermostCoordsLong, townLowermostCoordsLong) value ('Risca','51.61195','-3.09648','51.61483','51.60566','-3.09853','-3.09377');
+# insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townLeftmostCoordsLat, townRightmostCoordsLat, townUppermostCoordsLong, townLowermostCoordsLong) value ('Penarth','51.43893','-3.17354','51.34750','51.44365','-3.18830','-3.18187');
+#                                                                                                                                                                                     lat=y=50s long=x=-3.0s
+insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townUppermostCoordsLat, townLowermostCoordsLat, townLeftmostCoordsLong, townRightmostCoordsLong) value ('Caerphilly', '51.57903','-3.22075 ','51.60418','51.55093','-3.25222','-3.17696');
+insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townUppermostCoordsLat, townLowermostCoordsLat, townLeftmostCoordsLong, townRightmostCoordsLong) value ('Risca','51.61195','-3.09648','51.63039','51.59175','-3.12129','-3.06438');
+insert into townsWithTrails (townName, townCentreCoordsLat, townCentreCoordsLong, townUppermostCoordsLat, townLowermostCoordsLat, townLeftmostCoordsLong, townRightmostCoordsLong) value ('Penarth','51.43893','-3.17354','51.44878','51.41233','-3.20271','-3.16005');
\ No newline at end of file