Index: trip-planner-front/src/app/explore/explore-result/explore-result.component.css
===================================================================
--- trip-planner-front/src/app/explore/explore-result/explore-result.component.css	(revision b73803523f0488ec52498c2ba88889f1642ad263)
+++ trip-planner-front/src/app/explore/explore-result/explore-result.component.css	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -0,0 +1,3 @@
+.container {
+    background-color: #F9F2E8;
+}
Index: trip-planner-front/src/app/explore/explore-result/explore-result.component.html
===================================================================
--- trip-planner-front/src/app/explore/explore-result/explore-result.component.html	(revision b73803523f0488ec52498c2ba88889f1642ad263)
+++ trip-planner-front/src/app/explore/explore-result/explore-result.component.html	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -14,5 +14,20 @@
   </header>
 
-  <main role="main" style="background-color: #F9F2E8;">
+  <main role="main">
+    <h1 style="color: #F77D62; display: inline; ">Explore </h1>
+    <h1 style=" display: inline;">{{place}}</h1>
+    <div class="lightbox" *ngFor="let l of allLocation">
+      <div class="row">
+        <div class="col-lg-6">
+          <img src="data:image/png;base64,{{l.photo}}"
+          class="w-100 mb-2 mb-md-4 shadow-1-strong rounded"/>
+      </div>
+      </div>
+    </div>
+    <div class="container">
+      <li *ngFor="let location of allLocation">
+        <ol>{{location.name}}</ol>
+      </li>
+    </div>
   </main>
   <br>
Index: trip-planner-front/src/app/explore/explore-result/explore-result.component.ts
===================================================================
--- trip-planner-front/src/app/explore/explore-result/explore-result.component.ts	(revision b73803523f0488ec52498c2ba88889f1642ad263)
+++ trip-planner-front/src/app/explore/explore-result/explore-result.component.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -1,3 +1,5 @@
 import { Component, OnInit } from '@angular/core';
+import { ActivatedRoute } from '@angular/router';
+import { LocationService } from 'src/app/_services/location.service';
 
 @Component({
@@ -8,7 +10,23 @@
 export class ExploreResultComponent implements OnInit {
 
-  constructor() { }
+  place: string;
+  allLocation: any[] = [];
+
+  constructor(private route: ActivatedRoute, private locationService : LocationService) {
+    this.place = '';
+  }
 
   ngOnInit(): void {
+    this.route.queryParams
+      .subscribe(params => {
+        this.place = params.place;
+      }
+    );
+
+      this.locationService.getAllLocationsSearch(this.place).subscribe(
+        data => {
+          this.allLocation = data;
+        }
+    )
   }
 
Index: trip-planner-front/src/app/explore/explore.component.html
===================================================================
--- trip-planner-front/src/app/explore/explore.component.html	(revision b73803523f0488ec52498c2ba88889f1642ad263)
+++ trip-planner-front/src/app/explore/explore.component.html	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -14,17 +14,24 @@
       <ul class="navbar-nav ml-auto">
         <li class="nav-item">
-          <p-autoComplete [(ngModel)]="text" [suggestions]="filteredCountries" (completeMethod)="search($event)"
-            field="name" [minLength]="1">
-            <mat-option *ngFor="let cityName of cities" 
-            [value]="cityName.name">
-                {{cityName.name}}
-            </mat-option></p-autoComplete>
-          <p-button label="Search" icon="pi pi-search" [loading]="loading[0]" (click)="load(0)" id="button"></p-button>
-        </li>
-        <li class="nav-item">
+
+          <form class="example-form">
+            <mat-form-field class="example-full-width" appearance="fill">
+              <input type="text" matInput [formControl]="myControl" [matAutocomplete]="auto"
+                [(ngModel)]="selectedPlace">
+              <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn">
+                <mat-option *ngFor="let option of filteredOptions | async" [value]="option"
+                  (click)="onPlaceSelected(selectedPlace)">
+                  {{option}}
+                </mat-option>
+              </mat-autocomplete>
+            </mat-form-field>
+            <p-button label="Search" icon="pi pi-search" [loading]="loading[0]" (click)="load(0)" id="button">
+            </p-button>
+          </form>
         </li>
       </ul>
     </nav>
   </header>
+
 </body>
 
Index: trip-planner-front/src/app/explore/explore.component.ts
===================================================================
--- trip-planner-front/src/app/explore/explore.component.ts	(revision b73803523f0488ec52498c2ba88889f1642ad263)
+++ trip-planner-front/src/app/explore/explore.component.ts	(revision 76712b2bf7daeb245c9ca388ce322e0b98098d99)
@@ -1,5 +1,9 @@
 import { Component, OnInit } from '@angular/core';
-import { City } from '../_models/city';
-import { CityService } from '../_services/city.service';
+import { FormControl } from '@angular/forms';
+import { Router } from '@angular/router';
+import { Observable, Subscription } from 'rxjs';
+import { map, startWith } from 'rxjs/operators';
+import { LocationService } from '../_services/location.service';
+import { RegionService } from '../_services/region.service';
 
 
@@ -11,33 +15,40 @@
 export class ExploreComponent implements OnInit {
 
-  cities: City[];
-  filteredCountries: any[];
   text: string;
   loading = [false, false, false, false];
+  regions: string[] = [];
+  filteredOptions: Observable<any[]> = new Observable<any[]>();
+  myControl = new FormControl();
+  cityName: string = '';
+  selectedPlace: string = '';
+  thirdSubscription: Subscription = new Subscription;
 
-  constructor(private cityService: CityService) {
-    this.cities = [];
-    this.filteredCountries = [];
+  constructor(private locationService: LocationService,
+    private regionService: RegionService, private router: Router) {
     this.text = '';
   }
 
   ngOnInit(): void {
-    this.cityService.getAllCities().subscribe(
-      cities => {
-        this.cities = cities;
+
+    this.regionService.getAllCitiesAndRegions().subscribe(
+      data => {
+        this.regions = data;
       }
+    );
+
+    this.filteredOptions = this.myControl.valueChanges.pipe(
+      startWith(''),
+      map(value => (typeof value === 'string' ? value : value.name)),
+      map(name => (name ? this._filter(name) : this.regions.slice())),
     );
   }
 
-  search(event) {
-    let filtered: any[] = [];
-    let query = event.query;
-    for (let i = 0; i < this.cities.length; i++) {
-      let city = this.cities[i];
-      if (city.name.toLowerCase().indexOf(query.toLowerCase()) == 0) {
-        filtered.push(city);
-      }
-    }
-    this.filteredCountries = filtered;
+  displayFn(city: string): string {
+    return city && city ? city : '';
+  }
+
+  private _filter(name: string): any[] {
+    const filterValue = name.toLowerCase();
+    return this.regions.filter(option => option.toLowerCase().includes(filterValue));
   }
 
@@ -45,4 +56,13 @@
     this.loading[index] = true;
     setTimeout(() => this.loading[index] = false, 1000);
+    this.locationService.getAllLocationsSearch(this.selectedPlace).subscribe(
+      data => {
+        this.router.navigate(['results'], { queryParams: { place: this.selectedPlace } });
+      }
+    );
+  }
+
+  onPlaceSelected(selectedPlace) {
+    console.log(this.selectedPlace); // get from view 
   }
 }
