merge-requests/1/head
Matthew Ess 2018-02-08 16:21:28 -05:00
parent a0724bee57
commit 25fdd95389
21 changed files with 6493 additions and 122 deletions

6
.babelrc Normal file
View File

@ -0,0 +1,6 @@
{
"presets": [
["env", { "modules": false }],
"stage-3"
]
}

9
.editorconfig Normal file
View File

@ -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

3
.eslintrc.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = {
"extends": ["airbnb-base", "plugin:vue/recommended"]
};

13
.gitignore vendored
View File

@ -1 +1,12 @@
venv/
.DS_Store
node_modules/
dist/
npm-debug.log
yarn-error.log
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"eslint.enable": true
}

View File

@ -1,3 +1,18 @@
# matthewess.github.io
My personal site.
> My personal site.
## 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).

BIN
css/.DS_Store vendored

Binary file not shown.

View File

@ -1,85 +0,0 @@
.title {
font-family: 'Raleway', sans-serif;
font-weight: 600;
display: inline-block;
float: left;
margin: 0;
}
.text {
font-family: 'Open Sans', sans-serif;
font-weight: 300;
}
.tiny {
font-size: 10pt;
margin-top: 40;
}
#content {
text-align: center;
font-size: 14pt;
}
body {
background-color: #f1f1f1;
}
nav {
padding: 50;
padding-bottom: 100;
font-size: 14pt;
}
ul {
list-style: none;
margin: 0;
padding: 0;
display: inline-block;
float: right;
}
li a {
padding-left: 20;
color: black;
text-decoration: none;
}
li a:hover {
color: #e08283;
-o-transition:.2s;
-ms-transition:.2s;
-moz-transition:.2s;
-webkit-transition:.2s;
transition:.2s;
}
li a.active {
color: #e08283;
}
@media (min-width: 1000px) {
body {
margin-left: 200px;
margin-right: 200px;
}
li {
display: inline;
}
nav {
font-size: 20pt;
}
}
@media (max-width: 1000px) and (min-width: 340px) {
body {
margin-left: 20px;
margin-right: 20px;
}
li {
margin-top: 2px;
}
}

View File

@ -1,35 +0,0 @@
<!DOCTYPE html />
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>matthew ess</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link href='https://fonts.googleapis.com/css?family=Raleway:600' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300' rel='stylesheet' type='text/css'>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-79548115-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<nav id="navbar">
<p class="title">matthew ess</p>
<ul class="text">
<li><a class="active" href="index.htm">home</a></li>
<li><a href="http://github.com/matthewess">github</a></li>
<li><a href="resume.pdf">resume</a></li>
</ul>
</nav>
<div id="content" class="text">
<p>developer with a passion for social justice, ethics, and helping people. ☭</p>
<p>currently a software engineer @ yelp</p>
<p class="tiny">if you need to contact me, my email is</br>mess [at] yelp [dot] com</p>
</div>
</body>
</html>

15
index.html Normal file
View File

@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>matthew ess</title>
<meta name="author" content="Matthew Ess">
<meta name="description" content="My personal site">
</head>
<body>
<div id="app"></div>
<script src="/dist/build.js"></script>
</body>
</html>

42
package.json Normal file
View File

@ -0,0 +1,42 @@
{
"name": "matthewess.github.io",
"description": "My personal site.",
"version": "1.0.0",
"author": "Matthew Ess <mess@yelp.com>",
"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": {
"bulma": "^0.6.2",
"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",
"eslint": "^4.17.0",
"eslint-config-airbnb-base": "^12.1.0",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-vue": "^3.14.0",
"file-loader": "^1.1.4",
"node-sass": "^4.5.3",
"pug": "^2.0.0-rc.4",
"pug-loader": "^2.3.0",
"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"
}
}

Binary file not shown.

53
src/App.vue Normal file
View File

@ -0,0 +1,53 @@
<template lang="pug">
#app
Hero(@setActive='tab => active = tab')
.container
component(:is='active')
footer.footer.white
</template>
<script>
import Hero from './components/Hero.vue';
import Home from './containers/Home.vue';
import Projects from './containers/Projects.vue';
import Resume from './containers/Resume.vue';
import Blog from './containers/Blog.vue';
export default {
name: 'App',
components: {
Hero,
Home,
Projects,
Resume,
Blog,
},
data() {
return { active: 'Home' };
},
};
</script>
<style lang="sass">
@import '~bulma/sass/utilities/initial-variables'
@import '~bulma/sass/utilities/functions'
$pink: #ffa69e
$pink-invert: findColorInvert($pink)
$mint: #a5ffd6
$mint-invert: findColorInvert($mint)
$red: #ff686b
$red-invert: findColorInvert($red)
$primary: $pink
$primary-invert: $pink-invert
$info: $mint
$info-invert: $mint-invert
$danger: $red
$danger-invert: $red-invert
@import '~bulma/bulma'
.white
background: white
</style>

31
src/components/Hero.vue Normal file
View File

@ -0,0 +1,31 @@
<template lang="pug">
section.hero.is-primary.is-bold.is-medium(v-once)
.hero-body
.container
h1.title matthew ess
h2.subtitle software developer, social justice warrior, wannabe artist
.hero-foot
.tabs.is-boxed.is-fullwidth.is-three-quarters
ul.has-text-weight-semibold
li
a(@click='$emit("setActive", "home")') home
li
a(@click='$emit("setActive", "projects")') projects
li
a(@click='$emit("setActive", "resume")') resume
li
a(@click='$emit("setActive", "blog")') blog
</template>
<script>
export default {
name: 'Hero',
};
</script>
<style lang="sass" scoped>
section
margin-bottom: 2rem
.is-three-quarters
width: 75%
</style>

10
src/containers/Blog.vue Normal file
View File

@ -0,0 +1,10 @@
<template lang="pug">
#blog
h1.title coming soon!
</template>
<script>
export default {
name: 'Blog',
};
</script>

36
src/containers/Home.vue Normal file
View File

@ -0,0 +1,36 @@
<template lang="pug">
#home
.tile.is-ancestor
.tile.is-vertical.is-3
.tile.is-9
.notification.is-primary
h1.title.is-4 me
p.content.
i'm a communist, a
#[a(href='https://mattandmack.website' target='_blank') spouse-to-be],
a recently graduated student, and a software developer at yelp.
.tile.is-9
.notification.is-info
h1.title.is-4 what's inspiring me now
.content
p david lynch's twin peaks
p the musical stylings of #[a(href='https://mitski.com/' target='_blank') mitski]
p jeff vandermeer's southern reach trilogy
.tile.is-3
.notification.is-danger
h1.title.is-4 what i care about
p.content.
as a communist, i'm passionate about anti-imperialism and decolonization.
i believe that software can be a tool for liberation, and those are the tools
i want to develop. feel free to get in touch with
me at mess [at] yelp [dot] com if you have similar goals.
p.content.
"the philosophers have only interpreted the world, in various ways.
the point, however, is to change it."
</template>
<script>
export default {
name: 'Home',
};
</script>

View File

@ -0,0 +1,39 @@
<template lang="pug">
#projects
p.content check out my #[a(href='https://github.com/matthewess') github account]!
h1.title #[a(href='https://github.com/matthewess/boilertalk-frontend') Boilertalk]
p.content.
Boilertalk is a project I'm working on with my fiancée to enable social
psychology researchers to easily simulate a social media platform to
garner realistic interactions and behaviors from students for the purpose
of research studies.
h1.title #[a(href='https://github.com/purdue-csusb/openideas') OpenIdeas]
p.content.
OpenIdeas is a platform I'm working on with Jay Hankins for
#[a(href='https://purdueusb.com') Purdue USB] and the Purdue
Undergraduate CS Community. We hope to implement it this year
to give students a way to voice concerns or improvements for
the department, then vote on and discuss them.
h1.title #[a(href='https://github.com/lemming-online/mischief') Mischief/Lemming]
p.content.
Mischief is the backend component of the lemming project, a group
project for Purdue's senior design class that was meant as a queuing
system to help lab TAs or group leaders manage large groups of students
or members who need help with an assignment or project.
h1.title #[a(href='https://github.com/projectkuva/kuva-frontend') Kuva]
p.content.
Kuva was a small iOS app meant as a regional, location centric clone
of Instagram that would allow you to see and interact with popular photos
taken by users nearby you.
</template>
<script>
export default {
name: 'Projects',
};
</script>
<style lang="sass" scoped>
#projects
width: 50%
</style>

59
src/containers/Resume.vue Normal file
View File

@ -0,0 +1,59 @@
<template lang="pug">
#resume
.content
h1.title matthew ess
h2.subtitle software developer
hr
h2.subtitle education
p.
purdue university, west lafayette, IN #[br]
B.S. in computer science, minor in political science #[br]
may 2018 #[br]
3.90 gpa
hr
h2.subtitle experience
p.has-text-weight-semibold software engineer @ yelp: summer 2018 - present
p.
transactions backend engineer.
p.has-text-weight-semibold software engineer intern @ yelp: summer 2017
p.
i joined the transactions team and worked on restructuring ordering data
to make it more efficient to query.
p.has-text-weight-semibold developer intern @ school datebooks: summer 2016 - winter 2016
p.
i worked on a very small team of talented engineers writing backend
PHP and javascript microservices for an athletic and educational
scheduling web app.
hr
h2.subtitle skills
.columns
.column
p python 2 and 3
p flask, django, pyramid
p java, junit testing, ruby on rails
.column
p html5, css, javascript
p vue.js, react
p single page apps, components, flux
.column
p c, unix programming
p macOS, linux, windows
p source control, git
</template>
<script>
export default {
name: 'Resume',
};
</script>
<style lang="sass" scoped>
$pink: #ffa69e
hr
width: 75%
height: 0.5rem
background: $pink
.content
width: 50%
</style>

7
src/main.js Normal file
View File

@ -0,0 +1,7 @@
import Vue from 'vue'
import App from './App.vue'
new Vue({
el: '#app',
render: h => h(App)
})

113
webpack.config.js Normal file
View File

@ -0,0 +1,113 @@
const path = require('path');
const webpack = require('webpack');
function resolve(dir) {
return path.join(__dirname, '..', dir);
}
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: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': resolve('src'),
vue$: 'vue/dist/vue.esm.js',
},
},
devServer: {
historyApiFallback: true,
noInfo: true,
overlay: true,
},
performance: {
hints: false,
},
devtool: '#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,
}),
]);
}

6039
yarn.lock Normal file

File diff suppressed because it is too large Load Diff