diff --git a/src/assets/additem.png b/src/assets/additem.png
new file mode 100644
index 0000000000000000000000000000000000000000..6eed86737785b8a2425d33de3c613cfb7832b041
Binary files /dev/null and b/src/assets/additem.png differ
diff --git a/src/components/AddNewItem.vue b/src/components/AddNewItem.vue
index cfe5ea645bcbfd2cff19a9a68d46499547f45e4c..86e7cf484ee05781a2cac3ba36f5f7dd8aacde6d 100644
--- a/src/components/AddNewItem.vue
+++ b/src/components/AddNewItem.vue
@@ -68,6 +68,41 @@
       </div>
     </div>
 
+
+    <!-- Select Group -->
+    <div class="mb-6">
+      <label
+          class="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-400"
+      >Gruppe</label
+      >
+      <select
+          v-model="v$.item.selectGroup.$model"
+          class="bg-gray-200 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
+      >
+        <option class="text-gray-400" value="" disabled selected>
+          Select a Group
+        </option>
+        <option
+            v-for="group in groups"
+            :key="group"
+            class="text-gray-900 text-sm"
+        >
+          {{ group }}
+        </option>
+      </select>
+
+      <!-- error message for select box -->
+      <div
+          class="text-red"
+          v-for="(error, index) of v$.item.selectGroup.$errors"
+          :key="index"
+      >
+        <div class="text-red-600 text-sm">
+          {{ error.$message }}
+        </div>
+      </div>
+    </div>
+
     <!-- price -->
     <div class="mb-6" :class="{ error: v$.item.price.$errors.length }">
       <label
@@ -122,6 +157,33 @@
       </div>
     </div>
 
+
+    <!-- Address -->
+    <div class="mb-6" :class="{ error: v$.item.address.$errors.length }">
+      <label
+          class="block mb-2 text-sm font-medium text-gray-900 dark:text-gray-300"
+      >Adresse</label>
+      <input
+          type="text"
+          class="bg-gray-200 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
+          v-model="v$.item.address.$model"
+          id="adress"
+          required
+      />
+
+      <!-- error message for address-->
+      <div
+          class="text-red"
+          v-for="(error, index) of v$.item.address.$errors"
+          :key="index"
+      >
+        <div class="text-red-600 text-sm">
+          {{ error.$message }}
+        </div>
+      </div>
+    </div>
+
+
     <!-- Images -->
     <div>
       <label
@@ -167,6 +229,9 @@
 
 <script>
 import useVuelidate from "@vuelidate/core";
+import { parseUserFromToken } from "@/utils/token-utils";
+import { postNewItem } from "@/utils/apiutil";
+
 import {
   required,
   helpers,
@@ -186,14 +251,20 @@ export default {
     return {
       item: {
         title: {
-          required,
+          required: helpers.withMessage(
+              () => "Tittelen kan ikke være tom",
+              required
+          ),
           max: helpers.withMessage(
             () => `Tittelen kan inneholde max 50 tegn`,
             maxLength(50)
           ),
         },
         description: {
-          required,
+          required: helpers.withMessage(
+              () => "Beskrivelsen kan ikke være tom",
+              required
+          ),
           max: helpers.withMessage(
             () => `Beskrivelsen kan inneholde max 200 tegn`,
             maxLength(200)
@@ -213,6 +284,19 @@ export default {
         select: {
           required: helpers.withMessage(() => `Velg en kategori`, required),
         },
+        selectGroup: {
+          required: helpers.withMessage(() => `Velg en gruppe`, required),
+        },
+        address: {
+          required: helpers.withMessage(
+              () => "Addressen kan ikke være tom",
+              required
+          ),
+          max: helpers.withMessage(
+              () => `Addressen kan inneholde max 50 tegn`,
+              maxLength(50)
+          ),
+        },
       },
     };
   },
@@ -222,14 +306,18 @@ export default {
       item: {
         title: "",
         description: "",
+        address: "",
         price: "",
         category: "",
         select: null,
         type: "",
         images: [],
+        userId: -1,
+        selectGroup: null,
       },
       //Kategorier skal legges inn ved api/hente fra db, her må det endres etterhvert
       categories: ["Hage", "Kjøkken", "Musikk", "Annet"],
+      groups: [4040, 4041],
     };
   },
   methods: {
@@ -251,19 +339,47 @@ export default {
 
       if (this.checkValidation()) {
         console.log("validert, videre...");
+
+        this.checkUser();
+
         console.log("Tittel: " + this.item.title);
         console.log("Kategori: " + this.item.select);
         console.log("Beskrivelse: " + this.item.description);
+        console.log("Addressen: " + this.item.address);
         console.log("Pris: " + this.item.price);
         console.log("bilder: " + this.item.images);
+        console.log("gruppe: " + this.item.selectGroup);
+
+        const itemInfo = {
+          title: this.item.title,
+          description: this.item.description,
+          pricePerDay: this.item.price,
+          address: this.item.address,
+          userID: this.item.userId,
+          categoryNames: [],
+          communityIDs: [this.item.selectGroup],
+        };
+
+        console.log(itemInfo);
+
+        const postRequest = await postNewItem(itemInfo);
+
+        console.log("posted: " + postRequest);
+
       }
     },
 
+    checkUser: async function (){
+      let user = parseUserFromToken(this.$store.state.user.token);
+      this.item.userId = parseInt(user.accountId);
+      console.log("id: " + this.item.userId);
+    },
+
     addImage: function (event) {
       console.log(event.target.files);
       this.item.images.push(URL.createObjectURL(event.target.files[0]));
       console.log("antall bilder: " + this.item.images.length);
     },
-  },
+  }
 };
 </script>
diff --git a/src/components/NavBar.vue b/src/components/NavBar.vue
index 69c304cbea1ad4ea1ba1d784fda380d43a71240e..507c2ab4f30dccb71032c8c0d94fffc34cef5b97 100644
--- a/src/components/NavBar.vue
+++ b/src/components/NavBar.vue
@@ -10,20 +10,10 @@
     </div>
     <ul class="flex">
       <li>
-        <img
-          class="m-6 cursor-pointer h-8"
-          src="../assets/messages.png"
-          alt="Meldinger"
-          @click="$router.push('/messages')"
-        />
+        <img class="m-6 cursor-pointer h-8 " src="../assets/additem.png" alt="Legg til" @click="$router.push('/addNewItem')"/>
       </li>
       <li>
-        <img
-          class="m-6 cursor-pointer h-8"
-          src="../assets/notifications.png"
-          alt="Varlser"
-          @click="$router.push('/notifications')"
-        />
+        <img class="m-6 cursor-pointer h-8 " src="../assets/messages.png" alt="Meldinger" @click="$router.push('/messages')"/>
       </li>
       <li>
         <img
diff --git a/src/utils/apiutil.js b/src/utils/apiutil.js
index 86a32d21c659866fe184b9c3fd25db76da30cb46..94d14a9052f5b5e1b199a17b3acfc2d4d8803be3 100644
--- a/src/utils/apiutil.js
+++ b/src/utils/apiutil.js
@@ -82,3 +82,16 @@ export function doNewPassword() {
   //.catch((error) => {console.log(error);return auth;});
   return auth; //remove after axios is added
 }
+
+export function postNewItem(itemInfo){
+    return axios
+        .post(API_URL + "listing", itemInfo)
+        .then((response) => {
+            console.log("prøver: " + response.data);
+            return response;
+        })
+        .catch((error) => {
+            console.log(error.response);
+            return error;
+        });
+}