Add first version of the frontend

As of now the only usable functionality is signin in/out and managing
authorized users, and even then there is much room for improvement.

Change-Id: Ib87fc6866f69113a230187710de8644b78391917
diff --git a/frontend/src/GsiButton.vue b/frontend/src/GsiButton.vue
new file mode 100644
index 0000000..01cd924
--- /dev/null
+++ b/frontend/src/GsiButton.vue
@@ -0,0 +1,31 @@
+<script>
+import config from './config.json5';
+
+export default {
+  mounted() {
+    if (document.readyState == 'complete')
+      this.init();
+    else
+      window.addEventListener('load', () => this.init());
+  },
+  methods: {
+    init() {
+      window.google.accounts.id.initialize({
+        client_id: config.google.clientId,
+        callback: this.onSignIn,
+      });
+      window.google.accounts.id.renderButton(document.getElementById('gsi-button'), {
+        theme: 'outline',
+        size: 'large',
+      });
+    },
+    onSignIn(response) {
+      this.$emit('on-signin', response);
+    },
+  },
+};
+</script>
+
+<template>
+  <div id="gsi-button"></div>
+</template>