+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+
+
+ Annotation Guideline
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+
+
+
+
+
+
diff --git a/frontend/jest.config.js b/frontend/jest.config.js
new file mode 100644
index 00000000..ac587076
--- /dev/null
+++ b/frontend/jest.config.js
@@ -0,0 +1,17 @@
+module.exports = {
+ moduleNameMapper: {
+ '^@/(.*)$': '/$1',
+ '^~/(.*)$': '/$1',
+ '^vue$': 'vue/dist/vue.common.js'
+ },
+ moduleFileExtensions: ['js', 'vue', 'json'],
+ transform: {
+ '^.+\\.js$': 'babel-jest',
+ '.*\\.(vue)$': 'vue-jest'
+ },
+ collectCoverage: true,
+ collectCoverageFrom: [
+ '/components/**/*.vue',
+ '/pages/**/*.vue'
+ ]
+}
diff --git a/frontend/layouts/BaseLayout.vue b/frontend/layouts/BaseLayout.vue
new file mode 100644
index 00000000..0e66c909
--- /dev/null
+++ b/frontend/layouts/BaseLayout.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+ doccano
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/layouts/README.md b/frontend/layouts/README.md
new file mode 100644
index 00000000..cad1ad57
--- /dev/null
+++ b/frontend/layouts/README.md
@@ -0,0 +1,7 @@
+# LAYOUTS
+
+**This directory is not required, you can delete it if you don't want to use it.**
+
+This directory contains your Application Layouts.
+
+More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts).
diff --git a/frontend/layouts/annotation.vue b/frontend/layouts/annotation.vue
new file mode 100644
index 00000000..4347f0f3
--- /dev/null
+++ b/frontend/layouts/annotation.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/layouts/default.vue b/frontend/layouts/default.vue
new file mode 100644
index 00000000..9a06060b
--- /dev/null
+++ b/frontend/layouts/default.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+ {{ new Date().getFullYear() }} — Vuetify
+
+
+
+
+
+
+
diff --git a/frontend/layouts/error.vue b/frontend/layouts/error.vue
new file mode 100644
index 00000000..15976f94
--- /dev/null
+++ b/frontend/layouts/error.vue
@@ -0,0 +1,44 @@
+
+
+
+ {{ pageNotFound }}
+
+
+ {{ otherError }}
+
+
+ Home page
+
+
+
+
+
+
+
diff --git a/frontend/layouts/project.vue b/frontend/layouts/project.vue
new file mode 100644
index 00000000..6b61eac8
--- /dev/null
+++ b/frontend/layouts/project.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/layouts/projectList.vue b/frontend/layouts/projectList.vue
new file mode 100644
index 00000000..58b41f3e
--- /dev/null
+++ b/frontend/layouts/projectList.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/frontend/middleware/README.md b/frontend/middleware/README.md
new file mode 100644
index 00000000..01595ded
--- /dev/null
+++ b/frontend/middleware/README.md
@@ -0,0 +1,8 @@
+# MIDDLEWARE
+
+**This directory is not required, you can delete it if you don't want to use it.**
+
+This directory contains your application middleware.
+Middleware let you define custom functions that can be run before rendering either a page or a group of pages.
+
+More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware).
diff --git a/frontend/nuxt.config.js b/frontend/nuxt.config.js
new file mode 100644
index 00000000..c3936034
--- /dev/null
+++ b/frontend/nuxt.config.js
@@ -0,0 +1,90 @@
+import colors from 'vuetify/es5/util/colors'
+
+export default {
+ mode: 'spa',
+ /*
+ ** Headers of the page
+ */
+ head: {
+ titleTemplate: '%s - ' + process.env.npm_package_name,
+ title: process.env.npm_package_name || '',
+ meta: [
+ { charset: 'utf-8' },
+ { name: 'viewport', content: 'width=device-width, initial-scale=1' },
+ { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
+ ],
+ script: [
+ { src: 'https://use.fontawesome.com/releases/v5.0.6/js/all.js' }
+ ],
+ link: [
+ { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
+ {
+ rel: 'stylesheet',
+ href:
+ 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons'
+ }
+ ]
+ },
+ /*
+ ** Customize the progress-bar color
+ */
+ loading: { color: '#fff' },
+ /*
+ ** Global CSS
+ */
+ css: [
+ ],
+ /*
+ ** Plugins to load before mounting the App
+ */
+ plugins: [
+ '~/plugins/filters.js'
+ ],
+ /*
+ ** Nuxt.js modules
+ */
+ modules: [
+ '@nuxtjs/vuetify',
+ // Doc: https://axios.nuxtjs.org/usage
+ '@nuxtjs/axios',
+ '@nuxtjs/eslint-module'
+ ],
+ /*
+ ** Axios module configuration
+ ** See https://axios.nuxtjs.org/options
+ */
+ axios: {
+ },
+ /*
+ ** vuetify module configuration
+ ** https://github.com/nuxt-community/vuetify-module
+ */
+ vuetify: {
+ theme: {
+ primary: colors.blue.darken2,
+ accent: colors.grey.darken3,
+ secondary: colors.amber.darken3,
+ info: colors.teal.lighten1,
+ warning: colors.amber.base,
+ error: colors.deepOrange.accent4,
+ success: colors.green.accent3
+ }
+ },
+ /*
+ ** Build configuration
+ */
+ build: {
+ /*
+ ** You can extend webpack config here
+ */
+ extend(config, ctx) {
+ config.module.rules.push({
+ test: /\.(txt|csv|conll|jsonl)$/i,
+ loader: 'file-loader',
+ options: {
+ name: '[path][name].[ext]'
+ }
+ })
+ }
+ }
+}
diff --git a/frontend/package.json b/frontend/package.json
new file mode 100644
index 00000000..add472b4
--- /dev/null
+++ b/frontend/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "doccano-client",
+ "version": "1.0.0",
+ "description": "doccano client",
+ "author": "Hironsan",
+ "private": true,
+ "scripts": {
+ "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
+ "precommit": "yarn lint",
+ "test": "jest",
+ "dev": "nuxt",
+ "build": "nuxt build",
+ "start": "nuxt start",
+ "generate": "nuxt generate"
+ },
+ "dependencies": {
+ "@nuxtjs/axios": "^5.3.6",
+ "@nuxtjs/vuetify": "^1.0.2",
+ "@toast-ui/vue-editor": "^1.1.1",
+ "codemirror": "^5.48.2",
+ "nuxt": "^2.0.0",
+ "tui-editor": "^1.4.5",
+ "vuetify": "^2.0.2"
+ },
+ "devDependencies": {
+ "@nuxtjs/eslint-config": "^0.0.1",
+ "@nuxtjs/eslint-module": "^0.0.1",
+ "@vue/test-utils": "^1.0.0-beta.27",
+ "babel-core": "7.0.0-bridge.0",
+ "babel-eslint": "^10.0.1",
+ "babel-jest": "^24.1.0",
+ "eslint": "^5.15.1",
+ "eslint-config-standard": ">=12.0.0",
+ "eslint-plugin-import": ">=2.16.0",
+ "eslint-plugin-jest": ">=22.3.0",
+ "eslint-plugin-node": ">=8.0.1",
+ "eslint-plugin-nuxt": ">=0.4.2",
+ "eslint-plugin-promise": ">=4.0.1",
+ "eslint-plugin-standard": ">=4.0.0",
+ "eslint-plugin-vue": "^5.2.2",
+ "jest": "^24.1.0",
+ "nodemon": "^1.18.9",
+ "stylus": "^0.54.5",
+ "stylus-loader": "^3.0.2",
+ "vue-jest": "^3.0.3"
+ }
+}
diff --git a/frontend/pages/README.md b/frontend/pages/README.md
new file mode 100644
index 00000000..1d5d48b2
--- /dev/null
+++ b/frontend/pages/README.md
@@ -0,0 +1,6 @@
+# PAGES
+
+This directory contains your Application Views and Routes.
+The framework reads all the `*.vue` files inside this directory and creates the router of your application.
+
+More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing).
diff --git a/frontend/pages/index.vue b/frontend/pages/index.vue
new file mode 100644
index 00000000..f10bfe19
--- /dev/null
+++ b/frontend/pages/index.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+ Text Annotation for Human
+
+
+ Just create project, upload data and start annotation. You can build dataset in hours.
+
+
+ Get Started
+
+
+
+
+
+
+
+
+
+ The best features
+
+
+
+
+
+
+
+
+
+
+ color_lens
+
+
+
+
+ Team Collaboration
+
+
+
+ Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+ Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
+
+
+
+
+
+
+
+ flash_on
+
+
+
+
+ Multi Language
+
+
+
+ Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+ Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
+
+
+
+
+
+
+
+ build
+
+
+
+
+ Completely Open Sourced
+
+
+
+ Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+ Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/pages/inspire.vue b/frontend/pages/inspire.vue
new file mode 100644
index 00000000..86e70a0b
--- /dev/null
+++ b/frontend/pages/inspire.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+ “First, solve the problem. Then, write the code.”
+
+
+ Just create project, upload data and start annotation. You can build dataset in hours.
+
+
+ Get Started
+
+
+
+
+
+
+
+
+
+ The best features
+
+
+
+
+
+
+
+
+
+
+ color_lens
+
+
+
+
+ Team Collaboration
+
+
+
+ Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+ Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
+
+
+
+
+
+
+
+ flash_on
+
+
+
+
+ Multi Language
+
+
+
+ Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+ Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
+
+
+
+
+
+
+
+ build
+
+
+
+
+ Completely Open Sourced
+
+
+
+ Cras facilisis mi vitae nunc lobortis pharetra. Nulla volutpat tincidunt ornare.
+ Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
+ Nullam in aliquet odio. Aliquam eu est vitae tellus bibendum tincidunt. Suspendisse potenti.
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/pages/projects/_id/labels/index.vue b/frontend/pages/projects/_id/labels/index.vue
new file mode 100644
index 00000000..0da1b134
--- /dev/null
+++ b/frontend/pages/projects/_id/labels/index.vue
@@ -0,0 +1,253 @@
+
+
+
+
+
+
+
+
+ Add Label
+
+
+
+
+
+
+
+ Remove
+
+
+ Are you sure you want to remove these labels from this project?
+
+
+
+ {{ label.name }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
+