homepage/resume/main.js
2020-04-13 06:41:28 -04:00

217 lines
6.9 KiB
JavaScript
Executable File

var titleInfo = {
name: "Kenneth Jao",
caption: "Engineer and Developer",
image: null
};
var sidebarInfo = [
{
name: "Info",
subsections: [
{
name: "Name",
value: "Kenneth Jao",
icon: "fas fa-user"
},
{
name: "Address",
value: ["Lansing", "Michigan USA"],
icon: "fas fa-map-marker-alt"
},
{
name: "Phone",
value: "+1-(248)-749-3439",
icon: "fas fa-phone"
},
{
name: "Email",
value: ["kennethjao01 at gmail.com", "jaokenne at msu.edu"],
icon: "fas fa-envelope"
}
]
},
{
name: "Social",
subsections: [
{
name: "GitHub",
value: "https://github.com/ksjdragon",
icon: "fab fa-github"
},
{
name: "LinkedIn",
value: "https://linkedin.com/in/kjao",
icon: "fab fa-linkedin"
}
]
}
];
var mainContInfo = [
{
name: "Education",
icon: "fa-book-open",
values: [
{
name: "Michigan State University (MSU), East Lansing",
caption: "Majoring in Computational Mathematics, Mathematics.\nMinoring in Computer Science",
date: "2018-2022",
desc: "Cumulative GPA: 3.9401"
},
{
name: "Dean's List",
caption: "Michigan State University",
date: "2018-2021",
desc: "Cumulative GPA higher than 3.5 for the year. Achieved for 3 years."
}
]
},
{
name: "Work Experience",
icon: "fa-briefcase",
values: [
{
name: "Undergraduate Learning Assistant (ULA)",
caption: "Assistant to the professor (10 hours per week)",
date: "Fall 2021",
desc: "For the class 'CMSE/MTH 314 Matrix Algebra with Computational Applications', I aided in facilitating an interactive classroom, alongside grading assignments and hosting office hours."
},
{
name: "Undergraduate Researcher in Mathematics",
caption: "Researched with Keith Promislow, chairperson of the Mathematics Department at MSU.",
date: "2021-2022",
desc: "Conducted theoretical mathematical research into soft packing problems, modeling with Partial Differential Equations.\n Wrote programs for all of the numerical simulations and analysis, along with a Python package. [https://github.com/ksjdragon/squish]"
}
]
},
{
name: "Skills",
icon: "fa-wrench",
values: [
{
name: "Programming",
caption: "Software engineering",
date: "Since 2014",
desc: "Fluent in Python, C, C++, HTML, CSS, and JavaScript. Can pick up languages and libraries with ease. Full-stack web app developer, experience in bash scripting, and deep learning."
},
{
name: "System Administrator",
caption: "Server setup and maintenance.",
date: "Since 2014",
desc: "Proficient in maintaining and configuring up servers, and organizing network systems. Can secure implementations of server applications with industry standard cybersecurity."
} ]
},
{
name: "Projects",
icon: "fa-list-ol",
values: [
{
name: "Google FooBar Challenge",
caption: "Coding challenge hosted by Google.",
date: "Summer 2020",
desc: "Completed all 5 levels of Google Foobar challenge."
},
{
name: "Virtual Synthesizer",
caption: "Designed custom synthesizer programs for self-use in music production",
date: "Fall 2020",
desc: "Using signal processing concepts and studying historical circuits, recreated virtual synthesizers."
},
{
name: "VR Arm Tracking Device",
caption: "Virtual reality hardware development",
date: "2016",
desc: "Arm tracking done through gyroscope IMUs, with 9 degrees of freedom. A testing game was created to demonstrate tracking capabilities."
},
{
name: "Haptic Feedback Through Wave Interference",
caption: "Mathematical investigation of applications of wave interference",
date: "2017",
desc: "Investigated more complex haptic feedback through wave interference using linear resonant actuators."
},
{
name: "Cloud Storage Web Application",
caption: "Server side programming and account management with file security",
date: "2016",
desc: "Cloud database web app created to ease file downloading and storage for servers, with accounts and sharing systems. [https://github.com/ksjdragon/binbin]"
},
{
name: "Collaborative Online Planner",
caption: "Database management and responsive and reactive web design",
date: "2017",
desc: "Online planning web app designed for academic use. Enabled users to have a collaborative planner specific to individual classes and teachers. [https://github.com/ksjdragon/hourglass]"
}
]
}
];
var sidebarTop = document.querySelectorAll("#sidebar .topCont")[0];
var sidebarMid = document.querySelectorAll("#sidebar .midCont")[0];
var mainTop = document.querySelectorAll("#mainCont .topCont")[0];
var mainMid = document.querySelectorAll("#mainCont .midCont")[0];
function titleItems() {
var name = el("h1", titleInfo.name.toUpperCase());
mainTop.appendChild(name);
var caption = el("h2", titleInfo.caption.toUpperCase());
mainTop.appendChild(caption);
}
function mainItems() {
mainContInfo.forEach(function(ele) {
var subsection = el("div", "", "", "subsection");
var circle = el("div", "", "", "subCircle");
circle.appendChild(el("i", "", "", "fas " + ele.icon));
subsection.appendChild(circle);
subsection.appendChild(el("h2", ele.name.toUpperCase(), "", "subTitle"));
ele.values.forEach(function(item) {
var subValue = el("div", "", "", "subValue");
subValue.appendChild(el("h3", item.date, "", ""));
subValue.appendChild(el("h3", item.name, "", ""));
subValue.appendChild(el("h3", item.caption, "", ""));
subValue.appendChild(el("h3", item.desc, "", ""));
subsection.appendChild(subValue);
});
mainMid.appendChild(subsection);
});
}
function sidebarItems() {
sidebarInfo.forEach(function(ele) {
var subsection = el("div", "", "", "subsection");
subsection.appendChild(el("h2", ele.name.toUpperCase(), "", "subTitle"));
ele.subsections.forEach(function(item) {
var subValue = el("div", "", "", "subValue");
subValue.appendChild(el("i", "", "", item.icon));
subValue.appendChild(el("h3", item.name, "", ""));
if(Array.isArray(item.value)) {
item.value.forEach(function(val, index) {
subValue.appendChild(el("h3", val, "", ""));
if(item.value.length != index+1) subValue.appendChild(el("br"));
});
} else {
subValue.appendChild(el("h3", item.value, "", ""));
}
subsection.appendChild(subValue);
});
sidebarMid.appendChild(subsection);
});
}
function el(DOM, textNode, id, className) {
id = id || "";
className = className || "";
textNode = textNode || "";
var element = document.createElement(DOM);
if(id.length != 0) element.id = id;
if(className.length != 0) element.className = className;
if(textNode.length != 0) element.appendChild(document.createTextNode(textNode));
return element;
}
titleItems();
sidebarItems();
mainItems();