diff --git a/class_registration_vue/.babelrc b/class_registration_vue/.babelrc
new file mode 100644
index 0000000..e812394
--- /dev/null
+++ b/class_registration_vue/.babelrc
@@ -0,0 +1,6 @@
+{
+ "presets": [
+ ["env", { "modules": false }],
+ "stage-3"
+ ]
+}
diff --git a/class_registration_vue/.editorconfig b/class_registration_vue/.editorconfig
new file mode 100644
index 0000000..9d08a1a
--- /dev/null
+++ b/class_registration_vue/.editorconfig
@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/class_registration_vue/.gitignore b/class_registration_vue/.gitignore
new file mode 100644
index 0000000..a0446a5
--- /dev/null
+++ b/class_registration_vue/.gitignore
@@ -0,0 +1,12 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log
+yarn-error.log
+
+# Editor directories and files
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
diff --git a/class_registration_vue/README.md b/class_registration_vue/README.md
new file mode 100644
index 0000000..68a4ea7
--- /dev/null
+++ b/class_registration_vue/README.md
@@ -0,0 +1,18 @@
+# class_registration_vue
+
+> Class registration interface
+
+## Build Setup
+
+``` bash
+# install dependencies
+npm install
+
+# serve with hot reload at localhost:8080
+npm run dev
+
+# build for production with minification
+npm run build
+```
+
+For detailed explanation on how things work, consult the [docs for vue-loader](http://vuejs.github.io/vue-loader).
diff --git a/class_registration_vue/index.html b/class_registration_vue/index.html
new file mode 100644
index 0000000..707160a
--- /dev/null
+++ b/class_registration_vue/index.html
@@ -0,0 +1,11 @@
+
+
+
+
+ class_registration_vue
+
+
+
+
+
+
diff --git a/class_registration_vue/package.json b/class_registration_vue/package.json
new file mode 100644
index 0000000..e495805
--- /dev/null
+++ b/class_registration_vue/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "class_registration_vue",
+ "description": "Class registration interface",
+ "version": "1.0.0",
+ "author": "Zach Florian ",
+ "license": "MIT",
+ "private": true,
+ "scripts": {
+ "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
+ "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
+ },
+ "dependencies": {
+ "vue": "^2.5.11"
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions",
+ "not ie <= 8"
+ ],
+ "devDependencies": {
+ "babel-core": "^6.26.0",
+ "babel-loader": "^7.1.2",
+ "babel-preset-env": "^1.6.0",
+ "babel-preset-stage-3": "^6.24.1",
+ "cross-env": "^5.0.5",
+ "css-loader": "^0.28.7",
+ "file-loader": "^1.1.4",
+ "node-sass": "^4.5.3",
+ "sass-loader": "^6.0.6",
+ "vue-loader": "^13.0.5",
+ "vue-template-compiler": "^2.4.4",
+ "webpack": "^3.6.0",
+ "webpack-dev-server": "^2.9.1"
+ }
+}
diff --git a/class_registration_vue/src/App.vue b/class_registration_vue/src/App.vue
new file mode 100644
index 0000000..5c78eff
--- /dev/null
+++ b/class_registration_vue/src/App.vue
@@ -0,0 +1,60 @@
+
+
+

+
{{ msg }}
+
Essential Links
+
+
Ecosystem
+
+
+
+
+
+
+
diff --git a/class_registration_vue/src/assets/logo.png b/class_registration_vue/src/assets/logo.png
new file mode 100644
index 0000000..f3d2503
Binary files /dev/null and b/class_registration_vue/src/assets/logo.png differ
diff --git a/class_registration_vue/src/main.js b/class_registration_vue/src/main.js
new file mode 100644
index 0000000..385fcfe
--- /dev/null
+++ b/class_registration_vue/src/main.js
@@ -0,0 +1,7 @@
+import Vue from 'vue'
+import App from './App.vue'
+
+new Vue({
+ el: '#app',
+ render: h => h(App)
+})
diff --git a/class_registration_vue/webpack.config.js b/class_registration_vue/webpack.config.js
new file mode 100644
index 0000000..75a7461
--- /dev/null
+++ b/class_registration_vue/webpack.config.js
@@ -0,0 +1,108 @@
+var path = require('path')
+var webpack = require('webpack')
+
+module.exports = {
+ entry: './src/main.js',
+ output: {
+ path: path.resolve(__dirname, './dist'),
+ publicPath: '/dist/',
+ filename: 'build.js'
+ },
+ module: {
+ rules: [
+ {
+ test: /\.css$/,
+ use: [
+ 'vue-style-loader',
+ 'css-loader'
+ ],
+ },
+ {
+ test: /\.scss$/,
+ use: [
+ 'vue-style-loader',
+ 'css-loader',
+ 'sass-loader'
+ ],
+ },
+ {
+ test: /\.sass$/,
+ use: [
+ 'vue-style-loader',
+ 'css-loader',
+ 'sass-loader?indentedSyntax'
+ ],
+ },
+ {
+ test: /\.vue$/,
+ loader: 'vue-loader',
+ options: {
+ loaders: {
+ // Since sass-loader (weirdly) has SCSS as its default parse mode, we map
+ // the "scss" and "sass" values for the lang attribute to the right configs here.
+ // other preprocessors should work out of the box, no loader config like this necessary.
+ 'scss': [
+ 'vue-style-loader',
+ 'css-loader',
+ 'sass-loader'
+ ],
+ 'sass': [
+ 'vue-style-loader',
+ 'css-loader',
+ 'sass-loader?indentedSyntax'
+ ]
+ }
+ // other vue-loader options go here
+ }
+ },
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ exclude: /node_modules/
+ },
+ {
+ test: /\.(png|jpg|gif|svg)$/,
+ loader: 'file-loader',
+ options: {
+ name: '[name].[ext]?[hash]'
+ }
+ }
+ ]
+ },
+ resolve: {
+ alias: {
+ 'vue$': 'vue/dist/vue.esm.js'
+ },
+ extensions: ['*', '.js', '.vue', '.json']
+ },
+ devServer: {
+ historyApiFallback: true,
+ noInfo: true,
+ overlay: true
+ },
+ performance: {
+ hints: false
+ },
+ devtool: '#eval-source-map'
+}
+
+if (process.env.NODE_ENV === 'production') {
+ module.exports.devtool = '#source-map'
+ // http://vue-loader.vuejs.org/en/workflow/production.html
+ module.exports.plugins = (module.exports.plugins || []).concat([
+ new webpack.DefinePlugin({
+ 'process.env': {
+ NODE_ENV: '"production"'
+ }
+ }),
+ new webpack.optimize.UglifyJsPlugin({
+ sourceMap: true,
+ compress: {
+ warnings: false
+ }
+ }),
+ new webpack.LoaderOptionsPlugin({
+ minimize: true
+ })
+ ])
+}