Redesign and content changes. Added Experience screen.

This commit is contained in:
mitchelljfs 2018-05-15 17:12:23 -07:00
parent 22276f6dea
commit 7bc8e8b7ca
19 changed files with 220 additions and 53 deletions

View File

@ -3,6 +3,9 @@
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@fortawesome/fontawesome": "^1.1.8",
"@fortawesome/fontawesome-free-solid": "^5.0.13",
"@fortawesome/react-fontawesome": "^0.0.19",
"prop-types": "^15.6.1", "prop-types": "^15.6.1",
"react": "^16.3.2", "react": "^16.3.2",
"react-dom": "^16.3.2", "react-dom": "^16.3.2",

View File

@ -1,5 +1,5 @@
{ {
"short_name": "mitchell-website", "short_name": "Mitchell's Website",
"name": "Mitchell J. F. Simon's Website", "name": "Mitchell J. F. Simon's Website",
"icons": [ "icons": [
{ {

View File

@ -7,14 +7,16 @@
.main-container { .main-container {
margin: auto; margin: auto;
margin-bottom: 50px; margin-top: 50px;
max-width: 700px; max-width: 500px;
min-width: 60%; min-width: 60%;
text-align: center; text-align: center;
} }
@media screen and ( max-width: 500px ) { @media screen and ( max-width: 500px ) {
.main-container { .main-container {
margin-bottom: 50px;
margin-top: auto;
width: 100%; width: 100%;
} }
} }

View File

@ -5,6 +5,7 @@ import Header from './components/Header'
import Navbar from './components/Navbar' import Navbar from './components/Navbar'
import Home from './screens/Home' import Home from './screens/Home'
import Projects from './screens/Projects' import Projects from './screens/Projects'
import Experience from './screens/Experience'
import './Website.css' import './Website.css'
@ -17,7 +18,7 @@ class Website extends React.Component {
<Switch> <Switch>
<Route exact path='/' component={Home} /> <Route exact path='/' component={Home} />
<Route path='/projects' component={Projects} /> <Route path='/projects' component={Projects} />
<Route path='/experience' component={null} /> <Route path='/experience' component={Experience} />
<Route path='/contact' component={null} /> <Route path='/contact' component={null} />
</Switch> </Switch>
<Navbar /> <Navbar />

View File

@ -3,7 +3,7 @@
border-radius: 2px; border-radius: 2px;
color: white; color: white;
margin: 5px; margin: 5px;
padding: 5px; padding: 8px 10px;
text-decoration: none; text-decoration: none;
transition: background-color 0.2s, box-shadow 0.1s; transition: background-color 0.2s, box-shadow 0.1s;
} }

View File

@ -1,5 +1,5 @@
.header-container { .header-container {
border-bottom: 2px solid rgb(22, 26, 40); border-bottom: 2px solid rgb(130, 160, 196);
margin: auto; margin: auto;
margin-bottom: -5px; margin-bottom: -5px;
width: 65%; width: 65%;
@ -7,3 +7,7 @@
.header-container h2 { .header-container h2 {
margin-bottom: -5px; margin-bottom: -5px;
} }
.header-container div {
margin: 2%;
}

View File

@ -9,7 +9,7 @@ class Header extends React.PureComponent {
return ( return (
<div className='header-container'> <div className='header-container'>
<h2>Mitchell J. F. Simon</h2> <h2>Mitchell J. F. Simon</h2>
<SmallText>DevOps & Software Engineer, Hypremium.</SmallText> <SmallText>Lead Backend Engineer, Hypremium.</SmallText>
</div> </div>
) )
} }

View File

@ -1,26 +1,22 @@
.navbar { .navbar {
background-color: rgb(59, 65, 82); background-color: rgb(59, 65, 83);
bottom: 0;
box-shadow: -1px -1px 1px rgb(42, 46, 60); box-shadow: -1px -1px 1px rgb(42, 46, 60);
left: 0; left: 0;
position: fixed; position: fixed;
right: 0; right: 0;
top: 0;
} }
.navbar-button { .navbar-button {
background-color: rgb(126, 161, 187); background-color: rgb(139, 191, 209);
border-radius: 2px; border-radius: 2px;
color: white; color: white;
float: right; float: right;
margin: 5px; margin: 5px;
padding: 2px 5px; padding: 5px 10px;
transition: background-color 0.2s, box-shadow 0.1s; transition: background-color 0.2s, box-shadow 0.1s;
} }
.navbar-button:hover {
background-color: rgb(176, 211, 237);
}
.navbar-button:active { .navbar-button:active {
box-shadow: 0 0 5px black inset; box-shadow: 0 0 5px black inset;
} }
@ -34,26 +30,12 @@
border-radius: 3px; border-radius: 3px;
color: white; color: white;
float: left; float: left;
margin: 1% 1%; margin: 1% 2.5%;
overflow: hidden; overflow: hidden;
padding: 5px 0; padding: 5px 0;
text-overflow: ellipsis; text-overflow: ellipsis;
transition: background-color 0.2s, box-shadow 0.1s; transition: background-color 0.2s, box-shadow 0.1s;
width: 23%; width: 20%;
}
@media screen and ( max-width: 500px ) {
.navbar {
padding-bottom: 5px;
}
.navbar-menu {
margin: 5%;
width: 90%;
}
.navbar-menu div {
margin: 5px 0;
width: 100%;
}
} }
.navbar-menu div:hover { .navbar-menu div:hover {
@ -61,5 +43,35 @@
} }
.active-button div { .active-button div {
box-shadow: 0 0 5px rgb(22, 26, 40) inset; background-color: rgb(130, 160, 196);
box-shadow: 0 0 5px rgb(59, 64, 83) inset;
}
.active-button div:hover {
background-color: rgb(139, 191, 209);
}
@media screen and ( max-width: 500px ) {
.navbar {
bottom: 0;
padding-bottom: 5px;
top: auto;
}
.navbar-menu {
margin: 10%;
width: 80%;
}
.navbar-menu div {
margin: 5px 0;
width: 100%;
}
.navbar-menu div:hover {
background-color: inherit;
}
.active-button div:hover {
background-color: rgb(130, 160, 196);
}
} }

View File

@ -1,6 +1,8 @@
import React from 'react' import React from 'react'
import ResponsiveMenu from 'react-responsive-navbar' import ResponsiveMenu from 'react-responsive-navbar'
import { NavLink } from 'react-router-dom' import { NavLink } from 'react-router-dom'
import FontAwesomeIcon from '@fortawesome/react-fontawesome'
import faBars from '@fortawesome/fontawesome-free-solid/faBars'
import './index.css' import './index.css'
@ -8,8 +10,8 @@ class Navbar extends React.Component {
render () { render () {
return ( return (
<ResponsiveMenu <ResponsiveMenu
menuOpenButton={<div className='navbar-button'>Menu</div>} menuOpenButton={<div className='navbar-button'><FontAwesomeIcon icon={faBars} /></div>}
menuCloseButton={<div className='navbar-button'>Close</div>} menuCloseButton={<div className='navbar-button'><FontAwesomeIcon icon={faBars} /></div>}
changeMenuOn='500px' changeMenuOn='500px'
largeMenuClassName='navbar' largeMenuClassName='navbar'
smallMenuClassName='navbar' smallMenuClassName='navbar'

View File

@ -1,5 +1,5 @@
.small-text { .small-text {
color: lightgrey; color: rgb(216, 221, 234);
font-size: 0.8rem; font-size: 0.8rem;
font-style: italic; font-style: italic;
} }

View File

@ -6,7 +6,7 @@ import './index.css'
class SmallText extends React.PureComponent { class SmallText extends React.PureComponent {
render () { render () {
return ( return (
<p className='small-text'>{this.props.children}</p> <div className='small-text'>{this.props.children}</div>
) )
} }
} }

View File

@ -1,5 +1,6 @@
body { body {
background-color: rgb(46, 51, 64); background-color: rgb(46, 51, 65);
color: rgb(254, 255, 254);
font-family: 'Gothic A1', sans-serif; font-family: 'Gothic A1', sans-serif;
font-size: 100%; font-size: 100%;
} }

View File

@ -0,0 +1,37 @@
.experience-container {
display: flex;
flex-flow: row wrap;
margin: 2% 0;
}
.experience-container > div {
border-bottom: 2px solid rgb(139, 191, 209);
flex: 1 0 90%;
font-size: 0.9rem;
margin: auto 5%;
text-align: left;
}
.experience-company {
color: rgb(216, 221, 234);
}
.experience-title {
font-size: 1.2rem;
margin-top: 2%;
}
.small-text {
margin-bottom: 1%;
}
.experience-container ul {
margin-top: 0;
}
@media screen and ( max-width: 500px ) {
.experience-container>div {
flex: 1 0 100%;
margin: auto;
}
}

View File

@ -0,0 +1,65 @@
import React from 'react'
import SmallText from '../../components/SmallText'
import './index.css'
class Experience extends React.PureComponent {
render () {
return (
<div className='experience-container'>
<div>
<div className='experience-title'>Lead Backend Engineer</div>
<div className='experience-company'>Hypremium.</div>
<SmallText className='experience-smalltext'>May 2018 - Present</SmallText>
<ul>
<li>Architect all new backend microservices, using Serverless, AWS API Gateway/Lambda, and Golang.</li>
<li>Lead backend development team.</li>
<li>Monitor and maintain all stages of hosted microservices.</li>
</ul>
</div>
<div>
<div className='experience-title'>DevOps Engineer</div>
<div className='experience-company'>Hypremium.</div>
<SmallText className='experience-smalltext'>January 2018 - May 2018, 5 Months</SmallText>
<ul>
<li>Maintain & migrate Ruby on Rails API and backend application.</li>
<li>Oversee and assist with continuous integration for backend development.</li>
</ul>
</div>
<div>
<div className='experience-title'>Sales Associate</div>
<div className='experience-company'>J. Crew</div>
<SmallText className='experience-smalltext'>October 2015 - January 2017, 1 Year 5 Months</SmallText>
<ul>
<li>Knowing the products and what products best suit the customers needs.</li>
<li>Helping the customer with any manner of purchase, exchange, or return.</li>
</ul>
</div>
<div>
<div className='experience-title'>Intern</div>
<div className='experience-company'>Zumasys</div>
<SmallText className='experience-smalltext'>June 2015 - August 2015, 3 Months</SmallText>
<ul>
<li>Main goal was to learn as much about the business and their technology as possible</li>
<li>Management and organization of customer correspondence.</li>
<li>Auditing of server space.</li>
<li>Dispatching and filtering ticketing system and office computer assistance.</li>
</ul>
</div>
<div>
<div className='experience-title'>User Support Technician</div>
<div className='experience-company'>Point Loma Nazarene University, ITS Deptarment</div>
<SmallText className='experience-smalltext'>Jan 2015 - May 2015, 5 Months</SmallText>
<ul>
<li>First in contact for email hotline, second in contact for phones.</li>
<li>Work with customers via email, phone, remote control, and in person.</li>
<li>Computer diagnosis, repair, and preparation for customer.</li>
<li>Special projects.</li>
</ul>
</div>
</div>
)
}
}
export default Experience

View File

@ -7,13 +7,13 @@
display: block; display: block;
float: left; float: left;
margin-right: 1%; margin-right: 1%;
width: 39%; width: 37%;
} }
.signature { .signature {
float: right; float: right;
font-style: italic; font-style: italic;
margin-right: 10%; margin-right: 3%;
} }
@media screen and ( max-width: 500px ) { @media screen and ( max-width: 500px ) {

View File

@ -10,21 +10,22 @@ class Home extends React.PureComponent {
<img src={profile} alt='Profile' /> <img src={profile} alt='Profile' />
<p>Hello and welcome,</p> <p>Hello and welcome,</p>
<p> <p>
My name is Mitchell Simon. I am a DevOps & Software Engineer at My name is Mitchell Simon. I am the Lead Backend Engineer at
Hypremium, Computer Science major at Loyola Marymount University, and Hypremium, where I architect and maintain our servlerless arcitecture,
I offer my skills as a consulting web & software developer. Golang backend. I also offer my skills as a consulting/independent
web & software developer.
</p> </p>
<p> <p>
My professional interests include full-stack web development (with an My professional interests include web development (with an
emphasis on backend), system administration, network architecture, emphasis on backend), system administration, network architecture,
software engineering, cybersecurity, and business administration. My software engineering, cybersecurity, and business administration. My
personal interests include music performance, skiing, and politics. personal interests include music performance, skiing, and politics.
</p> </p>
<p> <p>
Thank you for reading my quick bio. If you would like to contact me Thank you for reading my quick bio. If you would like to contact me
visit the contact page for all of the options. visit the contact page for all of your options.
</p> </p>
<p className='signature'>-- Mitchell J. F. Simon, III</p> <p className='signature'>- Mitchell J. F. Simon, III</p>
</div> </div>
) )
} }

View File

@ -4,11 +4,22 @@
} }
.projects-container div { .projects-container div {
border-bottom: 2px solid rgb(139, 191, 209);
flex: 1 0 45%; flex: 1 0 45%;
margin: 2.5%; margin: 2.5%;
padding-bottom: 20px;
text-align: center; text-align: center;
} }
.projects-container h4 {
margin-bottom: 0;
}
.projects-container p {
margin-top: 3%;
}
@media screen and ( max-width: 500px ) { @media screen and ( max-width: 500px ) {
.projects-container div { .projects-container div {
flex: 1 0 95%; flex: 1 0 95%;

View File

@ -14,19 +14,20 @@ class Projects extends React.PureComponent {
This website has taken many forms over the years, as my frontend This website has taken many forms over the years, as my frontend
and design skills increase. It has been simple HTML, CSS, and JS, and design skills increase. It has been simple HTML, CSS, and JS,
and a Ruby Sinatra web app. Currently it takes the form of a and a Ruby Sinatra web app. Currently it takes the form of a
React.js app. I enjoy React.js (and other similar frontend frameworks) React.js app. I enjoy React.js (and similar frontend frameworks)
can be used to make even the simplest projects modular and extensible. as they can be used to make even the simplest projects modular and
extensible.
</p> </p>
<ClearButton href='https://github.com/mitchelljfs/react-website'>Repository</ClearButton> <ClearButton href='https://github.com/mitchelljfs/react-website'>Repository</ClearButton>
</div> </div>
<div> <div>
<h4>destinate</h4> <h4>destinate</h4>
<p> <p>
Destinate is react-native, iOS and Android app. Its main objective Destinate is a react-native, iOS (and Android) app. Its main objective
is to suggest places or activities to the user based on there past is to suggest places or activities to the user based on their past
choices. It utilizes a Serverless Framework backend, written in Go choices. It utilizes a serverless backend, written in Go and hosted
and hosted on AWS. It is still under-development, as a side-project on AWS API Gateway/Lambda. It is still under development, as a side
of Arash Lari and I. project of Arash Lari and I.
</p> </p>
<ClearButton href='https://github.com/mitchelljfs/destinate'>Repository</ClearButton> <ClearButton href='https://github.com/mitchelljfs/destinate'>Repository</ClearButton>
</div> </div>

View File

@ -2,6 +2,29 @@
# yarn lockfile v1 # yarn lockfile v1
"@fortawesome/fontawesome-common-types@^0.1.7":
version "0.1.7"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.1.7.tgz#4336c4b06d0b5608ff1215464b66fcf9f4795284"
"@fortawesome/fontawesome-free-solid@^5.0.13":
version "5.0.13"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-solid/-/fontawesome-free-solid-5.0.13.tgz#24b61aaf471a9d34a5364b052d64a516285ba894"
dependencies:
"@fortawesome/fontawesome-common-types" "^0.1.7"
"@fortawesome/fontawesome@^1.1.8":
version "1.1.8"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome/-/fontawesome-1.1.8.tgz#75fe66a60f95508160bb16bd781ad7d89b280f5b"
dependencies:
"@fortawesome/fontawesome-common-types" "^0.1.7"
"@fortawesome/react-fontawesome@^0.0.19":
version "0.0.19"
resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.0.19.tgz#9c90c1aac0984687fffbea44aa4ad817c6f4356e"
dependencies:
humps "^2.0.1"
prop-types "^15.5.7"
abab@^1.0.3: abab@^1.0.3:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
@ -3437,6 +3460,10 @@ https-browserify@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
humps@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/humps/-/humps-2.0.1.tgz#dd02ea6081bd0568dc5d073184463957ba9ef9aa"
iconv-lite@0.4.19: iconv-lite@0.4.19:
version "0.4.19" version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
@ -5615,7 +5642,7 @@ promise@^7.1.1:
dependencies: dependencies:
asap "~2.0.3" asap "~2.0.3"
prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.0, prop-types@^15.6.1: prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.1:
version "15.6.1" version "15.6.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca"
dependencies: dependencies: