diff --git a/resources/.browserslistrc b/resources/.browserslistrc
new file mode 100644
index 0000000..dc3bc09
--- /dev/null
+++ b/resources/.browserslistrc
@@ -0,0 +1,4 @@
+> 1%
+last 2 versions
+not dead
+not ie 11
diff --git a/resources/.dockerignore b/resources/.dockerignore
new file mode 100644
index 0000000..93f1361
--- /dev/null
+++ b/resources/.dockerignore
@@ -0,0 +1,2 @@
+node_modules
+npm-debug.log
diff --git a/resources/.editorconfig b/resources/.editorconfig
new file mode 100644
index 0000000..7053c49
--- /dev/null
+++ b/resources/.editorconfig
@@ -0,0 +1,5 @@
+[*.{js,jsx,ts,tsx,vue}]
+indent_style = space
+indent_size = 2
+trim_trailing_whitespace = true
+insert_final_newline = true
diff --git a/resources/.env.dev b/resources/.env.dev
new file mode 100644
index 0000000..41fe281
--- /dev/null
+++ b/resources/.env.dev
@@ -0,0 +1,10 @@
+
+
+# Firebase 🔥
+VITE_FIREBASE_API_KEY=
+VITE_FIREBASE_AUTH_DOMAIN=
+VITE_FIREBASE_PROJECT_ID=
+VITE_FIREBASE_STORAGE_BUCKET=
+VITE_FIREBASE_MESSAGING_SENDER_ID=
+VITE_FIREBASE_APP_ID=
+VITE_FIREBASE_MEASUREMENT_ID=
\ No newline at end of file
diff --git a/resources/.env.pro b/resources/.env.pro
new file mode 100644
index 0000000..4c54fb0
--- /dev/null
+++ b/resources/.env.pro
@@ -0,0 +1 @@
+VITE_API_BASE_URL=https://api.example.com
diff --git a/resources/.env.template b/resources/.env.template
new file mode 100644
index 0000000..5a8490c
--- /dev/null
+++ b/resources/.env.template
@@ -0,0 +1,7 @@
+VITE_OPENAI_API_KEY = XXXXXXXXXXXX
+VITE_UNSPLASH_ACCESS_KEY = XXXXXXXXXXXX
+VITE_GITHUB_CLIENT_ID = XXXXXXXXXXXX
+# Aruze TextToSpeech Key (required for tts)
+VITE_TTS_KEY=XXXXXXXXXXXX
+# Aruze TextToSpeech Region
+VITE_TTS_REGION = XXXXXXXXXXXX
\ No newline at end of file
diff --git a/resources/.gitattributes b/resources/.gitattributes
new file mode 100644
index 0000000..dfe0770
--- /dev/null
+++ b/resources/.gitattributes
@@ -0,0 +1,2 @@
+# Auto detect text files and perform LF normalization
+* text=auto
diff --git a/resources/.gitignore b/resources/.gitignore
new file mode 100644
index 0000000..cdfc022
--- /dev/null
+++ b/resources/.gitignore
@@ -0,0 +1,32 @@
+.DS_Store
+node_modules
+/dist
+/.vite_cache
+
+
+# local env files
+.env
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+# Local Netlify folder
+.netlify
+.env
+
+# yarn.lock
+yarn.lock
diff --git a/resources/Dockerfile b/resources/Dockerfile
new file mode 100644
index 0000000..cc6f4af
--- /dev/null
+++ b/resources/Dockerfile
@@ -0,0 +1,13 @@
+# 构建阶段
+FROM node:lts-alpine as build-stage
+WORKDIR /app
+COPY package*.json ./
+RUN npm install
+COPY . .
+RUN npm run build
+
+# 生产阶段
+FROM nginx:stable-alpine as production-stage
+COPY --from=build-stage /app/dist /usr/share/nginx/html
+EXPOSE 80
+CMD ["nginx", "-g", "daemon off;"]
diff --git a/resources/Dockerfile.dev b/resources/Dockerfile.dev
new file mode 100644
index 0000000..09a00c1
--- /dev/null
+++ b/resources/Dockerfile.dev
@@ -0,0 +1,6 @@
+FROM node:lts-alpine
+WORKDIR /app
+COPY package*.json ./
+RUN npm install
+EXPOSE 8080
+CMD ["npm", "run", "dev"]
diff --git a/resources/LICENSE b/resources/LICENSE
new file mode 100644
index 0000000..bb0f0da
--- /dev/null
+++ b/resources/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 jk.yang
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/resources/README.jp.md b/resources/README.jp.md
new file mode 100644
index 0000000..0981202
--- /dev/null
+++ b/resources/README.jp.md
@@ -0,0 +1,169 @@
+
+
+
+
+