diff --git a/public/react/public/css/iconfont/FontAwesome.otf b/public/react/public/css/iconfont/FontAwesome.otf
new file mode 100755
index 000000000..401ec0f36
Binary files /dev/null and b/public/react/public/css/iconfont/FontAwesome.otf differ
diff --git a/public/react/public/css/iconfont/fontawesome-webfont.eot b/public/react/public/css/iconfont/fontawesome-webfont.eot
new file mode 100755
index 000000000..e9f60ca95
Binary files /dev/null and b/public/react/public/css/iconfont/fontawesome-webfont.eot differ
diff --git a/public/react/public/css/iconfont/fontawesome-webfont.svg b/public/react/public/css/iconfont/fontawesome-webfont.svg
new file mode 100755
index 000000000..855c845e5
--- /dev/null
+++ b/public/react/public/css/iconfont/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/public/react/public/css/iconfont/fontawesome-webfont.ttf b/public/react/public/css/iconfont/fontawesome-webfont.ttf
new file mode 100755
index 000000000..35acda2fa
Binary files /dev/null and b/public/react/public/css/iconfont/fontawesome-webfont.ttf differ
diff --git a/public/react/public/css/iconfont/fontawesome-webfont.woff b/public/react/public/css/iconfont/fontawesome-webfont.woff
new file mode 100755
index 000000000..400014a4b
Binary files /dev/null and b/public/react/public/css/iconfont/fontawesome-webfont.woff differ
diff --git a/public/react/public/css/iconfont/fontawesome-webfont.woff2 b/public/react/public/css/iconfont/fontawesome-webfont.woff2
new file mode 100755
index 000000000..4d13fc604
Binary files /dev/null and b/public/react/public/css/iconfont/fontawesome-webfont.woff2 differ
diff --git a/public/react/public/css/iconfont/package.json b/public/react/public/css/iconfont/package.json
new file mode 100644
index 000000000..9f6dabce5
--- /dev/null
+++ b/public/react/public/css/iconfont/package.json
@@ -0,0 +1,170 @@
+{
+ "name": "educoder",
+ "version": "0.1.0",
+ "private": true,
+ "dependencies": {
+ "@icedesign/base": "^0.2.5",
+ "@novnc/novnc": "^1.1.0",
+ "antd": "^3.20.1",
+ "array-flatten": "^2.1.2",
+ "autoprefixer": "7.1.6",
+ "axios": "^0.18.0",
+ "babel-core": "6.26.0",
+ "babel-eslint": "7.2.3",
+ "babel-jest": "20.0.3",
+ "babel-loader": "7.1.2",
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
+ "babel-preset-react-app": "^3.1.1",
+ "babel-runtime": "6.26.0",
+ "bundle-loader": "^0.5.6",
+ "case-sensitive-paths-webpack-plugin": "2.1.1",
+ "chalk": "1.1.3",
+ "classnames": "^2.2.5",
+ "clipboard": "^2.0.4",
+ "codemirror": "^5.46.0",
+ "connected-react-router": "4.4.1",
+ "css-loader": "0.28.7",
+ "dotenv": "4.0.0",
+ "dotenv-expand": "4.2.0",
+ "echarts": "^4.2.0-rc.2",
+ "eslint": "4.10.0",
+ "eslint-config-react-app": "^2.1.0",
+ "eslint-loader": "1.9.0",
+ "eslint-plugin-flowtype": "2.39.1",
+ "eslint-plugin-import": "2.8.0",
+ "eslint-plugin-jsx-a11y": "5.1.1",
+ "eslint-plugin-react": "7.4.0",
+ "extract-text-webpack-plugin": "3.0.2",
+ "file-loader": "1.1.5",
+ "fs-extra": "3.0.1",
+ "html-webpack-plugin": "2.29.0",
+ "immutability-helper": "^2.6.6",
+ "install": "^0.12.2",
+ "jest": "20.0.4",
+ "lodash": "^4.17.5",
+ "loglevel": "^1.6.1",
+ "material-ui": "^1.0.0-beta.40",
+ "moment": "^2.23.0",
+ "monaco-editor": "^0.15.6",
+ "monaco-editor-webpack-plugin": "^1.7.0",
+ "npm": "^6.10.1",
+ "object-assign": "4.1.1",
+ "postcss-flexbugs-fixes": "3.2.0",
+ "postcss-loader": "2.0.8",
+ "promise": "8.0.1",
+ "prop-types": "^15.6.1",
+ "qs": "^6.6.0",
+ "raf": "3.4.0",
+ "rc-form": "^2.1.7",
+ "rc-pagination": "^1.16.2",
+ "rc-rate": "^2.4.0",
+ "rc-select": "^8.0.12",
+ "rc-tree": "^1.7.11",
+ "rc-upload": "^2.5.1",
+ "react": "^16.9.0",
+ "react-beautiful-dnd": "^10.0.4",
+ "react-codemirror": "^1.0.0",
+ "react-codemirror2": "^6.0.0",
+ "react-content-loader": "^3.1.1",
+ "react-dev-utils": "^5.0.0",
+ "react-dom": "^16.9.0",
+ "react-hot-loader": "^4.0.0",
+ "react-infinite-scroller": "^1.2.4",
+ "react-loadable": "^5.3.1",
+ "react-monaco-editor": "^0.25.1",
+ "react-player": "^1.11.1",
+ "react-redux": "5.0.7",
+ "react-router": "^4.2.0",
+ "react-router-dom": "^4.2.2",
+ "react-url-query": "^1.4.0",
+ "redux": "^4.0.0",
+ "redux-thunk": "2.3.0",
+ "showdown": "^1.8.6",
+ "store": "^2.0.12",
+ "style-loader": "0.19.0",
+ "styled-components": "^4.1.3",
+ "sw-precache-webpack-plugin": "0.11.4",
+ "url-loader": "0.6.2",
+ "webpack": "3.8.1",
+ "webpack-dev-server": "2.9.4",
+ "webpack-manifest-plugin": "1.3.2",
+ "webpack-parallel-uglify-plugin": "^1.1.0",
+ "whatwg-fetch": "2.0.3",
+ "wrap-md-editor": "^0.2.20"
+ },
+ "scripts": {
+ "start": "node --max_old_space_size=15360 scripts/start.js",
+ "build": "node --max_old_space_size=15360 scripts/build.js",
+ "concat": "node scripts/concat.js",
+ "gen_stats": "NODE_ENV=production webpack --profile --config=./config/webpack.config.prod.js --json > stats.json",
+ "ana": "webpack-bundle-analyzer ./stats.json",
+ "analyze": "npm run build -- --stats && webpack-bundle-analyzer build/bundle-stats.json",
+ "analyz": "NODE_ENV=production npm_config_report=true npm run build"
+ },
+ "jest": {
+ "collectCoverageFrom": [
+ "src/**/*.{js,jsx,mjs}"
+ ],
+ "setupFiles": [
+ "/config/polyfills.js"
+ ],
+ "testMatch": [
+ "/src/**/__tests__/**/*.{js,jsx,mjs}",
+ "/src/**/?(*.)(spec|test).{js,jsx,mjs}"
+ ],
+ "testEnvironment": "node",
+ "testURL": "http://localhost",
+ "transform": {
+ "^.+\\.(js|jsx|mjs)$": "/node_modules/babel-jest",
+ "^.+\\.css$": "/config/jest/cssTransform.js",
+ "^(?!.*\\.(js|jsx|mjs|css|json)$)": "/config/jest/fileTransform.js"
+ },
+ "transformIgnorePatterns": [
+ "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
+ ],
+ "moduleNameMapper": {
+ "^react-native$": "react-native-web"
+ },
+ "moduleFileExtensions": [
+ "web.js",
+ "mjs",
+ "js",
+ "json",
+ "web.jsx",
+ "jsx",
+ "node"
+ ]
+ },
+ "babel": {
+ "presets": [
+ "react",
+ "react-app"
+ ],
+ "plugins": [
+ [
+ "import",
+ {
+ "libraryName": "antd",
+ "libraryDirectory": "lib",
+ "style": "css"
+ },
+ "ant"
+ ],
+ "syntax-dynamic-import"
+ ]
+ },
+ "eslintConfig": {
+ "extends": "react-app"
+ },
+ "proxy": "http://localhost:3000",
+ "port": "3007",
+ "devDependencies": {
+ "@babel/runtime": "7.0.0-beta.51",
+ "babel-plugin-import": "^1.11.0",
+ "concat": "^1.0.3",
+ "happypack": "^5.0.1",
+ "ice-plugin-css-assets-local": "^0.1.2",
+ "webpack-bundle-analyzer": "^3.0.3",
+ "webpack-parallel-uglify-plugin": "^1.1.0"
+ }
+}