diff --git a/backend/core/serializers.py b/backend/core/serializers.py
index 40e6f2c484f6f8f266ed91964e316f3557c22e44..76801c874c65ae70b245d3f22c5b20fe8b5381da 100644
--- a/backend/core/serializers.py
+++ b/backend/core/serializers.py
@@ -4,27 +4,24 @@ from rest_framework import serializers
 from core.models import Student, Submission, Feedback
 
 
-class StudentSerializer(serializers.ModelSerializer):
-    user = serializers.ReadOnlyField(source='user.username')
-
+class FeedbackSerializer(serializers.ModelSerializer):
     class Meta:
-        model = Student
-        fields = ('name', 'user', 'exam', 'submissions')
+        model = Feedback
+        fields = ('text', 'score')
 
 
 class SubmissionSerializer(serializers.ModelSerializer):
+    feedback = FeedbackSerializer()
+
     class Meta:
         model = Submission
         fields = ('seen_by_student', 'text', 'type', 'student', 'feedback')
 
 
-class FeedbackSerializer(serializers.ModelSerializer):
-    class Meta:
-        model = Feedback
-        fields = ('text', 'score')
-
+class StudentSerializer(serializers.ModelSerializer):
+    user = serializers.ReadOnlyField(source='user.username')
+    submissions = SubmissionSerializer(many=True)
 
-class UserSerializer(serializers.ModelSerializer):
     class Meta:
-        model = User
-        fields = ()
+        model = Student
+        fields = ('name', 'user', 'exam', 'submissions')
diff --git a/backend/core/urls.py b/backend/core/urls.py
index 8dab3821c11496d43053d714cd94b52f49d52c33..035834813224f49645ba55c1a4321003deea8709 100644
--- a/backend/core/urls.py
+++ b/backend/core/urls.py
@@ -26,9 +26,9 @@ urlpatterns = [
 
     url(r'^csv/$', views.export_csv, name='export'),
 
-    url(r'^api/student/(?P<pk>[0-9]+)$', views.StudentApiView.as_view()),
-    url(r'^api/submission/(?P<pk>[0-9]+)$', views.SubmissionApiView.as_view()),
-    url(r'^api/feedback/(?P<pk>[0-9]+)$', views.FeedbackApiView.as_view()),
+    url(r'^api/student/$', views.StudentApiView.as_view()),
+    url(r'^api/submission/$', views.SubmissionApiView.as_view()),
+    url(r'^api/feedback/$', views.FeedbackApiView.as_view()),
 ]
 
 urlpatterns += staticfiles_urlpatterns()
diff --git a/backend/core/views/api.py b/backend/core/views/api.py
index 7722ebc4349c0fe18767f01f1681ec33cf31a6f0..bf64153f9560136adb8da2879a3af3500ec748ca 100644
--- a/backend/core/views/api.py
+++ b/backend/core/views/api.py
@@ -1,24 +1,28 @@
 
 from core.models import Student, Submission, Feedback
 from core.serializers import SubmissionSerializer, StudentSerializer, FeedbackSerializer
-from core.permissions import StudentRequestOwnData
 from rest_framework.generics import RetrieveAPIView
 
 
 class StudentApiView(RetrieveAPIView):
-    permission_classes = (StudentRequestOwnData, )
-    queryset = Student.objects.all()
+    def get_object(self):
+        return self.request.user.student
     serializer_class = StudentSerializer
 
 
 class SubmissionApiView(RetrieveAPIView):
-    permission_classes = (StudentRequestOwnData, )
-    queryset = Submission.objects.all()
+    def get_object(self):
+        return self.request.user.student.submissions
     serializer_class = SubmissionSerializer
 
 
 class FeedbackApiView(RetrieveAPIView):
-    permission_classes = (StudentRequestOwnData, )
-    queryset = Feedback.objects.all()
+    def get_queryset(self):
+        return [submission.feedback for submission in self.request.user.submissions]
     serializer_class = FeedbackSerializer
 
+
+class StudentPageView(RetrieveAPIView):
+    queryset = Student.objects.all()
+
+
diff --git a/backend/grady/settings/default.py b/backend/grady/settings/default.py
index c7b4c1a52893fbd2325087e3e4d80fa2d5d1ce4a..839caa89fb8fb1fae739864256e29b9fd18fbbda 100644
--- a/backend/grady/settings/default.py
+++ b/backend/grady/settings/default.py
@@ -41,9 +41,12 @@ INSTALLED_APPS = [
     'django_extensions',
     'core',
     'rest_framework',
+    'corsheaders',
 ]
 
 MIDDLEWARE = [
+    'corsheaders.middleware.CorsMiddleware',
+    'django.middleware.common.CommonMiddleware',
     'django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
@@ -71,11 +74,6 @@ TEMPLATES = [
     },
 ]
 
-REST_FRAMEWORK = {
-    'DEFAULT_PERMISSION_CLASSES': (
-        'rest_framework.permissions.IsAuthenticated',
-    )
-}
 
 WSGI_APPLICATION = 'grady.wsgi.application'
 
@@ -142,3 +140,6 @@ STATICFILES_FINDERS = (
 
 AUTH_USER_MODEL = 'core.UserAccount'
 AUTH_PASSWORD_VALIDATORS = []
+CORS_ORIGIN_WHITELIST = (
+    'localhost:8080'
+)
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 029fb96ac1f7fe1ab0cfd4f4b508829a46b9fe30..20f09c82af20a098c0be0fb79cafbf8247199cc9 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -6,8 +6,8 @@
 </template>
 
 <script>
-export default {
-  name: 'app'
+  export default {
+    name: 'app'
 }
 </script>
 
diff --git a/frontend/src/components/HelloWorld.vue b/frontend/src/components/HelloWorld.vue
index 4c7db115401016b2d3364e0bb9c18096e42d929b..7a4afec5d46561236a571fef2ce5996b47a0d192 100644
--- a/frontend/src/components/HelloWorld.vue
+++ b/frontend/src/components/HelloWorld.vue
@@ -1,23 +1,5 @@
 <template>
-  <div class="hello">
-    <h1>{{ msg }}</h1>
-    <h2>Essential Links</h2>
-    <ul>
-      <li><a href="https://vuejs.org" target="_blank">Core Docs</a></li>
-      <li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li>
-      <li><a href="https://chat.vuejs.org" target="_blank">Community Chat</a></li>
-      <li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li>
-      <br>
-      <li><a href="http://vuejs-templates.github.io/webpack/" target="_blank">Docs for This Template</a></li>
-    </ul>
-    <h2>Ecosystem</h2>
-    <ul>
-      <li><a href="http://router.vuejs.org/" target="_blank">vue-router</a></li>
-      <li><a href="http://vuex.vuejs.org/" target="_blank">vuex</a></li>
-      <li><a href="http://vue-loader.vuejs.org/" target="_blank">vue-loader</a></li>
-      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank">awesome-vue</a></li>
-    </ul>
-  </div>
+  <span>{{msg}}</span>
 </template>
 
 <script>
@@ -30,24 +12,3 @@ export default {
   }
 }
 </script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style scoped>
-h1, h2 {
-  font-weight: normal;
-}
-
-ul {
-  list-style-type: none;
-  padding: 0;
-}
-
-li {
-  display: inline-block;
-  margin: 0 10px;
-}
-
-a {
-  color: #42b983;
-}
-</style>
diff --git a/frontend/src/components/student/Base.vue b/frontend/src/components/student/Base.vue
new file mode 100644
index 0000000000000000000000000000000000000000..346f7ee00047d77a67a8a0a7b45cd62f64fe524b
--- /dev/null
+++ b/frontend/src/components/student/Base.vue
@@ -0,0 +1,13 @@
+<template>
+
+</template>
+
+
+<script>
+
+</script>
+
+
+<style>
+
+</style>
diff --git a/frontend/src/components/student/SubmissionDetail.vue b/frontend/src/components/student/SubmissionDetail.vue
new file mode 100644
index 0000000000000000000000000000000000000000..9a7264b44cb929ad25331ddf73d47ce87fedce95
--- /dev/null
+++ b/frontend/src/components/student/SubmissionDetail.vue
@@ -0,0 +1,12 @@
+<template>
+
+</template>
+
+
+<script>
+  export default {
+    computed: {
+
+    }
+  }
+</script>
diff --git a/frontend/src/components/student/SubmissionList.vue b/frontend/src/components/student/SubmissionList.vue
new file mode 100644
index 0000000000000000000000000000000000000000..f4cf766fd04a72f6b2565a5a11f7d872eb802c34
--- /dev/null
+++ b/frontend/src/components/student/SubmissionList.vue
@@ -0,0 +1,34 @@
+<template>
+  <ul>
+    <li v-for="sub in submissions">
+      <span>{{sub.type}}</span>
+      <span>{{sub.text}}</span>
+      <span>{{sub.feedback}}</span>
+    </li>
+  </ul>
+</template>
+
+<script>
+  export default {
+    data: function () {
+      return {
+        submissions: []
+      }
+    },
+    created: function () {
+      this.getSubmissions()
+    },
+    methods: {
+      getSubmissions () {
+        this.$http.get('http://localhost:8000/api/student/1').then(student => {
+          return Promise.all(student.body.submissions.map(id => {
+            return this.$http.get(`http://localhost:8000/api/submission/${id}`)
+          }))
+        }).then(response => {
+          console.log(response)
+          this.submissions = response.map(item => { return item.body })
+        }).catch(console.log.bind(console))
+      }
+    }
+  }
+</script>
diff --git a/frontend/src/main.js b/frontend/src/main.js
index ec109714369ba35b7771c1a97329187be7b96cf8..6dca5db2a7163800fa1b10a60694825bc3eb7a21 100644
--- a/frontend/src/main.js
+++ b/frontend/src/main.js
@@ -3,6 +3,9 @@
 import Vue from 'vue'
 import App from './App'
 import router from './router'
+import VueResource from 'vue-resource'
+
+Vue.use(VueResource)
 
 Vue.config.productionTip = false
 
diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js
index 7731b77562b403fb67ef1d0794c624d2739fc1f5..b00e372a7bc73b2775a2daa1caf317a10b337709 100644
--- a/frontend/src/router/index.js
+++ b/frontend/src/router/index.js
@@ -1,6 +1,6 @@
 import Vue from 'vue'
 import Router from 'vue-router'
-import HelloWorld from '@/components/HelloWorld'
+import SubmissionList from '@/components/student/SubmissionList'
 
 Vue.use(Router)
 
@@ -8,8 +8,8 @@ export default new Router({
   routes: [
     {
       path: '/',
-      name: 'Hello',
-      component: HelloWorld
+      name: 'Submissions',
+      component: SubmissionList
     }
   ]
 })
diff --git a/frontend/src/store/api.js b/frontend/src/store/api.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd2c9786c5d2ecd567f4fcc253ece0423aed7153
--- /dev/null
+++ b/frontend/src/store/api.js
@@ -0,0 +1,27 @@
+import Vue from 'vue'
+import VueResource from 'vue-resource'
+
+Vue.use(VueResource)
+
+export default {
+  get (url, request) {
+    return Vue.http.get(url, request)
+      .then((response) => Promise.resolve(response))
+      .catch((error) => Promise.reject(error))
+  },
+  post (url, request) {
+    return Vue.http.post(url, request)
+      .then((response) => Promise.resolve(response))
+      .catch((error) => Promise.reject(error))
+  },
+  patch (url, request) {
+    return Vue.http.patch(url, request)
+      .then((response) => Promise.resolve(response))
+      .catch((error) => Promise.reject(error))
+  },
+  delete (url, request) {
+    return Vue.http.delete(url, request)
+      .then((response) => Promise.resolve(response))
+      .catch((error) => Promise.reject(error))
+  }
+}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 695eb95f217998753e965f31018628b87611f970..e96d4143b7d515c3ddf002b6e8e53f7b28d526f9 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -950,6 +950,16 @@ boom@5.x.x:
   dependencies:
     hoek "4.x.x"
 
+bootstrap-vue@^1.0.0-beta.9:
+  version "1.0.0-beta.9"
+  resolved "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-1.0.0-beta.9.tgz#4e0bc5bcb95a90dc3bec7124ea3ddf5cc4c6ffa6"
+  dependencies:
+    bootstrap "^4.0.0-beta"
+
+bootstrap@^4.0.0-beta:
+  version "4.0.0-beta.2"
+  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.0.0-beta.2.tgz#4d67d2aa2219f062cd90bc1247e6747b9e8fd051"
+
 brace-expansion@^1.1.7:
   version "1.1.8"
   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
@@ -1673,6 +1683,12 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
 
+decompress-response@^3.2.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+  dependencies:
+    mimic-response "^1.0.0"
+
 deep-eql@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
@@ -1836,6 +1852,10 @@ domutils@^1.5.1:
     dom-serializer "0"
     domelementtype "1"
 
+duplexer3@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+
 duplexer@^0.1.1:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
@@ -2665,6 +2685,25 @@ globby@^5.0.0:
     pify "^2.0.0"
     pinkie-promise "^2.0.0"
 
+got@^7.0.0:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a"
+  dependencies:
+    decompress-response "^3.2.0"
+    duplexer3 "^0.1.4"
+    get-stream "^3.0.0"
+    is-plain-obj "^1.1.0"
+    is-retry-allowed "^1.0.0"
+    is-stream "^1.0.0"
+    isurl "^1.0.0-alpha5"
+    lowercase-keys "^1.0.0"
+    p-cancelable "^0.3.0"
+    p-timeout "^1.1.1"
+    safe-buffer "^5.0.1"
+    timed-out "^4.0.0"
+    url-parse-lax "^1.0.0"
+    url-to-options "^1.0.1"
+
 graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
   version "4.1.11"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
@@ -2739,6 +2778,16 @@ has-flag@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
 
+has-symbol-support-x@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.1.tgz#66ec2e377e0c7d7ccedb07a3a84d77510ff1bc4c"
+
+has-to-string-tag-x@^1.2.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d"
+  dependencies:
+    has-symbol-support-x "^1.4.1"
+
 has-unicode@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
@@ -3136,6 +3185,10 @@ is-number@^3.0.0:
   dependencies:
     kind-of "^3.0.2"
 
+is-object@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
+
 is-path-cwd@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
@@ -3152,7 +3205,7 @@ is-path-inside@^1.0.0:
   dependencies:
     path-is-inside "^1.0.1"
 
-is-plain-obj@^1.0.0:
+is-plain-obj@^1.0.0, is-plain-obj@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
 
@@ -3174,7 +3227,11 @@ is-resolvable@^1.0.0:
   dependencies:
     tryit "^1.0.1"
 
-is-stream@^1.0.1, is-stream@^1.1.0:
+is-retry-allowed@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34"
+
+is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
 
@@ -3261,6 +3318,13 @@ istanbul@^0.4.0:
     which "^1.1.1"
     wordwrap "^1.0.0"
 
+isurl@^1.0.0-alpha5:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67"
+  dependencies:
+    has-to-string-tag-x "^1.2.0"
+    is-object "^1.0.1"
+
 js-base64@^2.1.9:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.2.tgz#a79a923666372b580f8e27f51845c6f7e8fbfbaf"
@@ -3662,6 +3726,10 @@ lower-case@^1.1.1:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
 
+lowercase-keys@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
+
 lru-cache@2.2.x:
   version "2.2.4"
   resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d"
@@ -3785,6 +3853,10 @@ mimic-fn@^1.0.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
 
+mimic-response@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e"
+
 minimalistic-assert@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3"
@@ -4134,6 +4206,10 @@ osenv@^0.1.4:
     os-homedir "^1.0.0"
     os-tmpdir "^1.0.0"
 
+p-cancelable@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa"
+
 p-finally@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
@@ -4148,6 +4224,12 @@ p-locate@^2.0.0:
   dependencies:
     p-limit "^1.1.0"
 
+p-timeout@^1.1.1:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.0.tgz#9820f99434c5817868b4f34809ee5291660d5b6c"
+  dependencies:
+    p-finally "^1.0.0"
+
 pako@~0.2.0:
   version "0.2.9"
   resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75"
@@ -4614,7 +4696,7 @@ prelude-ls@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
 
-prepend-http@^1.0.0:
+prepend-http@^1.0.0, prepend-http@^1.0.1:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
 
@@ -5542,6 +5624,10 @@ time-stamp@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357"
 
+timed-out@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f"
+
 timers-browserify@^2.0.2:
   version "2.0.4"
   resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6"
@@ -5702,6 +5788,16 @@ url-loader@^0.5.8:
     loader-utils "^1.0.2"
     mime "1.3.x"
 
+url-parse-lax@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73"
+  dependencies:
+    prepend-http "^1.0.1"
+
+url-to-options@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9"
+
 url@^0.11.0:
   version "0.11.0"
   resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
@@ -5803,6 +5899,12 @@ vue-loader@^13.3.0:
     vue-style-loader "^3.0.0"
     vue-template-es2015-compiler "^1.6.0"
 
+vue-resource@^1.3.4:
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/vue-resource/-/vue-resource-1.3.4.tgz#9fc0bdf6a2f5cab430129fc99d347b3deae7b099"
+  dependencies:
+    got "^7.0.0"
+
 vue-router@^3.0.1:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9"
@@ -5829,6 +5931,10 @@ vue@^2.5.2:
   version "2.5.2"
   resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.2.tgz#fd367a87bae7535e47f9dc5c9ec3b496e5feb5a4"
 
+vuex@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.0.1.tgz#e761352ebe0af537d4bb755a9b9dc4be3df7efd2"
+
 watchpack@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac"