diff --git a/frontend/src/components/BaseLayout.vue b/frontend/src/components/BaseLayout.vue
index 2680ed5..74f83ca 100644
--- a/frontend/src/components/BaseLayout.vue
+++ b/frontend/src/components/BaseLayout.vue
@@ -6,14 +6,7 @@
                 <a class="sidebar-toggle d-flex" @click="toggleSidebar">
                     <i class="hamburger align-self-center"></i>
                 </a>
-                <form class="d-none d-sm-inline-block">
-                    <div class="input-group input-group-navbar">
-                        <input type="text" class="form-control" placeholder="Search…" aria-label="Search">
-                        <button class="btn" type="button">
-                            <b-icon-search class="bi-valign-middle"></b-icon-search>
-                        </button>
-                    </div>
-                </form>
+                <SearchBox/>
                 <div class="navbar-collapse collapse">
                     <ul class="navbar-nav navbar-align">
                         <Notifications :notifications="notifications"/>
@@ -38,16 +31,17 @@ import Messages from "@/components/Messages.vue";
 import Footer from "@/components/Footer.vue";
 import Sidebar from "@/components/Sidebar.vue";
 import UserDropdown from "@/components/UserDropdown.vue";
+import SearchBox from "@/components/SearchBox.vue";
 
 export default {
     name: 'BaseLayout',
     components: {
+        SearchBox,
         UserDropdown,
         Sidebar,
         Footer,
         Messages,
-        Notifications,
-        ...BIcons
+        Notifications
     },
     props: {
         hideSearch: {
diff --git a/frontend/src/components/Messages.vue b/frontend/src/components/Messages.vue
index 52be31e..f259b84 100644
--- a/frontend/src/components/Messages.vue
+++ b/frontend/src/components/Messages.vue
@@ -82,7 +82,6 @@
 </template>
 
 <script>
-import {mapGetters, mapMutations} from 'vuex';
 import * as BIcons from "bootstrap-icons-vue";
 
 export default {
diff --git a/frontend/src/components/SearchBox.vue b/frontend/src/components/SearchBox.vue
new file mode 100644
index 0000000..ab15e36
--- /dev/null
+++ b/frontend/src/components/SearchBox.vue
@@ -0,0 +1,44 @@
+<template>
+    <form class="d-none d-sm-inline-block">
+        <div class="input-group input-group-navbar">
+            <input type="text" class="form-control" placeholder="Search…" aria-label="Search" v-model="query" id="searchText">
+            <button class="btn" type="button" @click.prevent="search">
+                <b-icon-search class="bi-valign-middle"></b-icon-search>
+            </button>
+        </div>
+    </form>
+</template>
+
+<script>
+
+import * as BIcons from "bootstrap-icons-vue";
+
+export default {
+    name: "SearchBox",
+    components: {
+        ...BIcons
+    },
+    data() {
+        return {
+            query: ""
+        }
+    },
+    methods: {
+        search() {
+            if(this.query.length > 0)
+                this.$router.push("/search/" + encodeURIComponent(this.query));
+            else
+                document.getElementById("searchText").focus();
+        }
+    },
+    mounted() {
+        console.log(this.$route)
+        console.log(this.$route.params.query)
+        this.query = decodeURIComponent(this.$route.params.query || encodeURIComponent(""));
+    }
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/frontend/src/components/UserDropdown.vue b/frontend/src/components/UserDropdown.vue
index c3ea17c..4b631b5 100644
--- a/frontend/src/components/UserDropdown.vue
+++ b/frontend/src/components/UserDropdown.vue
@@ -6,6 +6,8 @@
         </a>
 
         <a class="nav-link dropdown-toggle d-none d-sm-inline-block" href="#" @click="toggleDropdown">
+            <img src="/assets/img/avatars/avatar.png" class="avatar img-fluid rounded mr-1"
+                 alt="Charles Hall"/>
             <span class="text-dark">
                 {{ username }}
             </span>
diff --git a/frontend/src/router.js b/frontend/src/router.js
index 6459e53..a62284a 100644
--- a/frontend/src/router.js
+++ b/frontend/src/router.js
@@ -3,8 +3,11 @@ import Dashboard from '@/views/Dashboard.vue';
 import Login from '@/views/Login.vue';
 import Register from '@/views/Register.vue';
 import store from '@/store';
+import Profile from '@/views/Profile.vue';
+import Settings from '@/views/Settings.vue';
 import Friends from '@/views/Friends.vue';
 import Inventory from '@/views/Inventory.vue';
+import Search from '@/views/Search.vue';
 import InventoryDetail from '@/views/InventoryDetail.vue';
 import InventoryNew from '@/views/InventoryNew.vue';
 import InventoryEdit from '@/views/InventoryEdit.vue';
@@ -17,6 +20,7 @@ const routes = [
     {path: '/inventory/:id/edit', component: InventoryEdit, meta: {requiresAuth: true}, props: true},
     {path: '/inventory/new', component: InventoryNew, meta: {requiresAuth: true}},
     {path: '/friends', component: Friends, meta: {requiresAuth: true}},
+    {path: '/search/:query', component: Search, meta: {requiresAuth: true}},
     {path: '/login', component: Login, meta: {requiresAuth: false}},
     {path: '/register', component: Register, meta: {requiresAuth: false}},
     {path: '/:pathMatch(.*)*', redirect: '/'}
diff --git a/frontend/src/views/Search.vue b/frontend/src/views/Search.vue
new file mode 100644
index 0000000..7d522db
--- /dev/null
+++ b/frontend/src/views/Search.vue
@@ -0,0 +1,41 @@
+<template>
+    <BaseLayout>
+        <main class="content">
+            <div class="container-fluid p-0">
+                <h1 class="h3 mb-3">Blank Page</h1>
+                <div class="row">
+                    <div class="col-12">
+                        <div class="card">
+                            <div class="card-header">
+                                <h5 class="card-title mb-0">Empty card</h5>
+                            </div>
+                            <div class="card-body">
+                                <div class="logo">
+                                    <img src="/src/assets/icons/toolshed-48x48.png" alt="Toolshed logo">
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </main>
+    </BaseLayout>
+</template>
+
+<script>
+import {mapGetters, mapMutations} from 'vuex';
+import * as BIcons from "bootstrap-icons-vue";
+import BaseLayout from "@/components/BaseLayout.vue";
+
+export default {
+    name: 'Search',
+    components: {
+        ...BIcons,
+        BaseLayout
+    },
+}
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file