-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/StubberG3/stubberg3.githu…
…b.io into master
- Loading branch information
Showing
104 changed files
with
43,673 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
{ | ||
"env": { | ||
"browser": true, | ||
"commonjs": true, | ||
"es2021": true, | ||
"node": true | ||
}, | ||
"extends": "eslint:recommended", | ||
"parserOptions": { | ||
"ecmaVersion": "latest" | ||
}, | ||
"rules": { | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
node_modules | ||
.DS_Store | ||
*.env |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
{ | ||
/* | ||
* ENVIRONMENTS | ||
* ================= | ||
*/ | ||
|
||
// Define globals exposed by modern browsers. | ||
"browser": true, | ||
|
||
// Define globals exposed by jQuery. | ||
"jquery": true, | ||
|
||
// Define globals exposed by Node.js. | ||
"node": true, | ||
|
||
// Allow ES6. | ||
"esversion": 6, | ||
|
||
/* | ||
* ENFORCING OPTIONS | ||
* ================= | ||
*/ | ||
|
||
// Force all variable names to use either camelCase style or UPPER_CASE | ||
// with underscores. | ||
"camelcase": true, | ||
|
||
// Prohibit use of == and != in favor of === and !==. | ||
"eqeqeq": true, | ||
|
||
// Enforce tab width of 4 spaces. | ||
"indent": 4, | ||
|
||
// Prohibit use of a variable before it is defined. | ||
"latedef": true, | ||
|
||
// Enforce line length to 100 characters | ||
"maxlen": 100, | ||
|
||
// Require capitalized names for constructor functions. | ||
"newcap": true, | ||
|
||
// Enforce use of single quotation marks for strings. | ||
"quotmark": "single", | ||
|
||
// Enforce placing 'use strict' at the top function scope | ||
"strict": true, | ||
|
||
// Prohibit use of explicitly undeclared variables. | ||
"undef": true, | ||
|
||
// Warn when variables are defined but never used. | ||
"unused": true, | ||
|
||
/* | ||
* RELAXING OPTIONS | ||
* ================= | ||
*/ | ||
|
||
// Suppress warnings about == null comparisons. | ||
"eqnull": true, | ||
|
||
// Supress warnings about specific globals | ||
"globals": { | ||
"L": true, | ||
"M": true, | ||
"Chart": true | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
const express = require('express'); | ||
const bodyParser = require('body-parser'); | ||
const path = require('path'); | ||
const axios = require('axios'); | ||
require('dotenv').config(); | ||
|
||
const port = process.env.PORT || 8080; | ||
const public = path.join(__dirname, '/public'); | ||
const app = express(); | ||
|
||
app.use(express.static(public)); | ||
app.use(bodyParser.urlencoded({ extended: true })); | ||
|
||
app.get('/', (req, res) => { | ||
try { | ||
res.sendFile(path.join(public, '/pages', 'index.html')); | ||
} catch (err) { | ||
console.log('app.get: ', err); | ||
} | ||
}); | ||
|
||
var jsonParser = bodyParser.json(); | ||
|
||
app.post('/pages/weather.html', jsonParser, function (req, res) { | ||
const body = req.body; | ||
console.log('BODY', body); | ||
|
||
let defaultZip = '19019'; // philly | ||
let zip = !body.zip ? defaultZip : body.zip; | ||
let zipApiKey = process.env.ZIPCODESTACK_API_KEY; | ||
let weatherApiKey = process.env.OPENWEATHERMAP_API_KEY; | ||
let city = ''; | ||
let state = ''; | ||
|
||
axios | ||
.get(`https://api.zipcodestack.com/v1/search?codes=${zip}&country=us&apikey=${zipApiKey}`) | ||
.then(response => { | ||
let data = response['data']['results'][zip][0]; | ||
console.log(data); | ||
let lat = data.latitude; | ||
let lon = data.longitude; | ||
city = data.city; | ||
state = data.state; | ||
let units = 'metric'; | ||
let lang = 'en'; | ||
return axios.get(`https://api.openweathermap.org/data/3.0/onecall?lat=${lat}&lon=${lon}&exclude=${weatherApiKey}&appid=${weatherApiKey}&units=${units}&lang=${lang}`); | ||
}) | ||
.then(response => { | ||
res.send({ | ||
zipResults: { | ||
city: city, | ||
state: state | ||
}, | ||
weatherResults: response.data, | ||
}); | ||
}) | ||
.catch(error => { | ||
if (error.response) { | ||
// The request was made and the server responded with a status code | ||
// that falls out of the range of 2xx | ||
console.log(error.response.data); | ||
console.log(error.response.status); | ||
console.log(error.response.headers); | ||
} else if (error.request) { | ||
// The request was made but no response was received | ||
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of | ||
// http.ClientRequest in node.js | ||
console.log(error.request); | ||
} else { | ||
// Something happened in setting up the request that triggered an Error | ||
console.log('Error', error.message); | ||
} | ||
console.log(error.config); | ||
res.send({ | ||
data: error.data, | ||
error: error.message, | ||
errThrown: error.request | ||
}); | ||
}); | ||
}); | ||
|
||
const server = app.listen(port, (err) => { | ||
try { | ||
console.log(`Server listening on port ${port}...`); | ||
} catch (err) { | ||
console.log(`Error: ${err}`); | ||
} | ||
}); | ||
|
||
server.keepAliveTimeout = 120 * 1000; | ||
server.headersTimeout = 120 * 1000; |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
<!DOCTYPE html> | ||
<html lang='en'> | ||
|
||
<head> | ||
<title>Gregg Stubberfield • Front-end Web Developer</title> | ||
<meta name="description" content="Web Developer portfolio for Gregg Stubberfield"> | ||
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'> | ||
<meta content='Front-end Web Developer working remotely from Yardley, Pennsylvania.' name='description'> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<link rel="icon" type="image/png" sizes="192x192" href="images/favicon/favicon-192x192.png"> | ||
<link rel="apple-touch-icon" sizes="180x180" href="images/favicon/apple-touch-icon.png"> | ||
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon/favicon-32x32.png"> | ||
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon/favicon-16x16.png"> | ||
<link href="https://fonts.googleapis.com/css2?family=Material+Icons&Roboto:wght@300;400;700&display=swap" | ||
rel="stylesheet"> | ||
<link href='css/materialize.css' rel='stylesheet'> | ||
<link href='css/rain.css' rel='stylesheet'> | ||
<link href='css/index.css' rel='stylesheet'> | ||
|
||
<style> | ||
nav { | ||
padding: 0 2rem; | ||
} | ||
</style> | ||
</head> | ||
|
||
<body> | ||
<header> | ||
<ul class="sidenav" id="mobile-demo"> | ||
<!-- <li> | ||
<a target='_blank' href='#projects'>Projects</a> | ||
</li> --> | ||
<li> | ||
<a target='_blank' href='docs/Gregg_Stubberfield_Resume.pdf'>Resume</a> | ||
</li> | ||
<li> | ||
<a target='_blank' href='https://www.linkedin.com/in/stubberg3/' | ||
rel='noreferrer noopener nofollow'>LinkedIn</a> | ||
</li> | ||
<li> | ||
<a target='_blank' href='https://github.com/StubberG3' rel='noreferrer noopener nofollow'>Github</a> | ||
</li> | ||
<li> | ||
<a target='_blank' href='mailto:[email protected]'>Email</a> | ||
</li> | ||
</ul> | ||
<div class="navbar-fixed"> | ||
<nav> | ||
<div class="nav-wrapper"> | ||
<a href="#!" class="brand-logo">GS</a> | ||
<a href="#" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a> | ||
<ul class="right hide-on-med-and-down"> | ||
<li> | ||
<a target='_blank' href='docs/Gregg_Stubberfield_Resume.pdf'>Resume</a> | ||
</li> | ||
<li> | ||
<a target='_blank' href='https://www.linkedin.com/in/stubberg3/' | ||
rel='noreferrer noopener nofollow'>LinkedIn</a> | ||
</li> | ||
<li> | ||
<a target='_blank' href='https://github.com/StubberG3' | ||
rel='noreferrer noopener nofollow'>Github</a> | ||
</li> | ||
<li> | ||
<a target='_blank' href='mailto:[email protected]'>Email</a> | ||
</li> | ||
</ul> | ||
</div> | ||
</nav> | ||
</div> | ||
</header> | ||
<main> | ||
<!-- check the Comments for more info --> | ||
|
||
<div class="rain-container"> | ||
<div class="back-row-toggle splat-toggle"> | ||
<div class="rain front-row"></div> | ||
<div class="rain back-row"></div> | ||
<div class="toggles"> | ||
<div class="splat-toggle toggle active">SPLAT</div> | ||
<div class="back-row-toggle toggle active">BACK<br>ROW</div> | ||
<div class="single-toggle toggle">SINGLE</div> | ||
</div> | ||
</div> | ||
</div> | ||
<section class='welcome'> | ||
<h4><b>Gregg Stubberfield</b></h4> | ||
<h6>wahay!</h6> | ||
</section> | ||
<section class="roles primary-color-light"> | ||
<div class="container"> | ||
<section class='experience section'> | ||
<h5>Experience</h2> | ||
<ul> | ||
<li class='role'> | ||
<div class='role-header'> | ||
<a href='https://www.bridgewaybentech.com/' target='_blank' | ||
rel='noreferrer noopener nofollow' class='role-logo'> | ||
<img src='images/uwf-logo.png' alt='UWF Logo' class='role-logo' /> | ||
</a> | ||
<div> | ||
<div class='role-title'>Bridgeway Benefit Technologies</div> | ||
<div class='role-subtitle'>Systems Analyst II</div> | ||
</div> | ||
</div> | ||
<ul class='role-key-points'> | ||
<li>Build responsive, accessible static websites using Javascript, HTML5, CSS3, | ||
Sass, | ||
MaterializeCSS, and Bootstrap.</li> | ||
<li>Develop login portals with realtime API data and features such as | ||
Enrollment forms and Stripe Credit Card Payments using REST APIs, JSON, and | ||
Node.js | ||
</li> | ||
<li>Act as liason between product, IT, and sales teams during project lifecycle and | ||
support | ||
</li> | ||
<li>Lead discussions to enhance design of websites and add new features</li> | ||
<li class='role-tenure'>Feb 2017 - Present</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</section> | ||
<section class='education section'> | ||
<h5>Education</h5> | ||
<ul> | ||
<li class='role'> | ||
<div class='role-header'> | ||
<a href='https://uwf.edu/' target='_blank' rel='noreferrer noopener nofollow' | ||
class='role-logo'> | ||
<img src='images/uwf-logo.png' alt='UWF Logo' class='role-logo' /> | ||
</a> | ||
<div> | ||
<div class='role-title'>B.S. Mathematical Sciences | Minor: Computer Science</div> | ||
<div class='role-subtitle'>University of West Florida</div> | ||
</div> | ||
</div> | ||
<ul class='role-key-points'> | ||
<li>Vice President - Mathematical Association</li> | ||
<li class='role-tenure'>2014 - 2015</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</section> | ||
</div> | ||
</section> | ||
</main> | ||
|
||
<script src="https://code.jquery.com/jquery-3.7.1.min.js" | ||
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script> | ||
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script> | ||
<script src="https://kit.fontawesome.com/1b2c37e814.js" crossorigin="anonymous"></script> | ||
<script type="text/javascript" src="js/index.js"></script> | ||
</body> | ||
|
||
</html> |
Oops, something went wrong.