remove a bunch of public bloat and scripts files
scripts files are no longer needed
@ -1 +0,0 @@
|
|||||||
google-site-verification: googledf0aa69dfc57e671.html
|
|
Before Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 2.2 MiB |
Before Width: | Height: | Size: 4.9 MiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 46 KiB |
@ -1,70 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en-US">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>Triston Armstrong Portfolio</title>
|
|
||||||
<script src="https://cdn.tailwindcss.com"></script>
|
|
||||||
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css"> -->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body
|
|
||||||
class="bg-gradient-to-b from-gray-300 to-blue-200 container max-w-xl mx-auto text-gray-800 py-24 px-8 w-full font-mono">
|
|
||||||
<!-- Header section -->
|
|
||||||
<header><!-- put nav stuff here --></header>
|
|
||||||
<!-- Main Content Section -->
|
|
||||||
<main class="flex gap-6 flex-col">
|
|
||||||
|
|
||||||
<!-- ABOUT -->
|
|
||||||
<section>
|
|
||||||
<div class="flex flex-col gap-2">
|
|
||||||
<div class="flex gap-4 items-center">
|
|
||||||
<img class="inline-block h-10 w-10 rounded-full ring-2 ring-white"
|
|
||||||
src="https://gitlab.com/uploads/-/system/user/avatar/5083849/avatar.png?width=400" alt="">
|
|
||||||
<h1 class="text-2xl text-gray-900 font-bold">Triston Armstrong</h1>
|
|
||||||
</div>
|
|
||||||
<p class="text-sm">Full Stack Software Developer @ <a href="ventrahealth.com"
|
|
||||||
class="text-blue-500">VentraHealth</a></p>
|
|
||||||
<div class="w-full border-dashed border-gray-700 border-opacity-10 my-4 border "></div>
|
|
||||||
<p class="text-sm">I am a self taught Full Stack Software Developer with an unhealthy addiction to solving
|
|
||||||
problems using code.</p>
|
|
||||||
<div class="w-full border-dashed border-gray-700 border-opacity-10 my-4 border "></div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- SKILLS -->
|
|
||||||
<section>
|
|
||||||
<h2 class="text-1xl text-gray-900 font-bold uppercase">Skills</h2>
|
|
||||||
<div class="flex gap-2 py-4" id="skills">
|
|
||||||
<script type="text/Javascript" src="scripts/skills.js"></script>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- JOBS -->
|
|
||||||
<section>
|
|
||||||
<h2 class="text-1xl text-gray-900 font-bold uppercase">Jobs</h2>
|
|
||||||
<div class="flex flex-col gap-3 py-4" id="jobs">
|
|
||||||
<script type="text/Javascript" src="scripts/jobs.js"></script>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- PERSONAL PROJECTS -->
|
|
||||||
<section>
|
|
||||||
<h2 class="text-1xl text-gray-900 font-bold uppercase">Personal Projects</h2>
|
|
||||||
<div class="flex flex-col gap-3 py-4" id="projects">
|
|
||||||
<script type="text/Javascript" src="scripts/projects.js"></script>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- NOTES -->
|
|
||||||
<section>
|
|
||||||
<h2 class="text-1xl text-gray-900 font-bold uppercase">Notes</h2>
|
|
||||||
<p>An endless trail of links to my personal notes</p>
|
|
||||||
<a href="?id=banana">note</a>
|
|
||||||
<a href="./notes">NOTES</a>
|
|
||||||
</section>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
@ -1,78 +0,0 @@
|
|||||||
(() => {
|
|
||||||
class Job {
|
|
||||||
logo;
|
|
||||||
name;
|
|
||||||
details;
|
|
||||||
code;
|
|
||||||
dateFrom;
|
|
||||||
dateTo;
|
|
||||||
|
|
||||||
constructor(logo, name, details, dateFrom, dateTo) {
|
|
||||||
this.logo = logo
|
|
||||||
this.name = name
|
|
||||||
this.details = details
|
|
||||||
this.dateFrom = dateFrom
|
|
||||||
this.dateTo = dateTo
|
|
||||||
}
|
|
||||||
|
|
||||||
_build() {
|
|
||||||
return `
|
|
||||||
<img src="${this.logo}" class="w-10 h-10 rounded-full" />
|
|
||||||
<div class="flex flex-col flex-1">
|
|
||||||
<div class="flex justify-between">
|
|
||||||
<span class="block text-sm font-bold text-gray-900">${this.name}</span>
|
|
||||||
<span class="block text-xs font-bold text-gray-500">${this.dateFrom} - ${this.dateTo}</span>
|
|
||||||
</div>
|
|
||||||
<span class="block text-xs text-gray-700">${this.details}</span>
|
|
||||||
</div>
|
|
||||||
`
|
|
||||||
}
|
|
||||||
|
|
||||||
show() {
|
|
||||||
const container = document.createElement('div')
|
|
||||||
container.classList = "flex items-center gap-x-3 border rounded-xl w-full p-2 bg-gray-200"
|
|
||||||
container.innerHTML = this._build()
|
|
||||||
return container
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// details
|
|
||||||
const data = [
|
|
||||||
{
|
|
||||||
logo: 'https://ventrahealth.com/wp-content/uploads/2023/08/cropped-Ventra-Health-favicon-circle-192x192.png',
|
|
||||||
name: 'Ventra Health',
|
|
||||||
details: 'Maintaining and iterating on an internal web application',
|
|
||||||
dateFrom: "May 2023",
|
|
||||||
dateTo: "Present"
|
|
||||||
}, {
|
|
||||||
logo: 'https://www.randstadusa.com/themes/custom/bluex/favicon.ico',
|
|
||||||
name: 'Randstad Technologies',
|
|
||||||
details: 'Built Web Applications for external clients',
|
|
||||||
dateFrom: "May 2022",
|
|
||||||
dateTo: "May 2023"
|
|
||||||
|
|
||||||
}, {
|
|
||||||
logo: 'https://img1.wsimg.com/isteam/ip/9ba626a3-41c9-4092-90b5-cb351983b726/favicon/a8beec51-e35d-4cca-8e88-befa12f687b0.png/:/rs=w:64,h:64,m',
|
|
||||||
name: 'Damiano Global Corporation',
|
|
||||||
details: 'Built Web Applications for external clients',
|
|
||||||
dateFrom: "July 2020",
|
|
||||||
dateTo: "Nov 2021"
|
|
||||||
|
|
||||||
}, {
|
|
||||||
logo: '#',
|
|
||||||
name: 'Makers Ladder LLC',
|
|
||||||
details: 'Did some thangs',
|
|
||||||
dateFrom: "Dec 2019",
|
|
||||||
dateTo: "Apr 2022"
|
|
||||||
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
// Showings
|
|
||||||
const jobsSection = document.getElementById('jobs')
|
|
||||||
|
|
||||||
data.forEach(job => {
|
|
||||||
const j = new Job(job.logo, job.name, job.details, job.dateFrom, job.dateTo)
|
|
||||||
jobsSection.appendChild(j.show())
|
|
||||||
})
|
|
||||||
})()
|
|
@ -1,52 +0,0 @@
|
|||||||
(() => {
|
|
||||||
class Project {
|
|
||||||
label; date; url;
|
|
||||||
constructor(label, date, url) {
|
|
||||||
this.label = label;
|
|
||||||
this.date = date;
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
_build() {
|
|
||||||
return `
|
|
||||||
<p class="text-gray-900 text-sm ">${this.label}</p>
|
|
||||||
<div class="border border-dashed flex-1 border-gray-500 h-0"></div>
|
|
||||||
<div class="flex gap-1 items-baseline">
|
|
||||||
<i class="text-xs text-gray-800">${this.date}</i>
|
|
||||||
<a href="${this.url}">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
|
|
||||||
stroke="currentColor" class="w-5 h-5 cursor-pointer text-blue-500 hover:text-blue-600">
|
|
||||||
<path stroke-linecap="round" stroke-linejoin="round"
|
|
||||||
d="M13.5 6H5.25A2.25 2.25 0 0 0 3 8.25v10.5A2.25 2.25 0 0 0 5.25 21h10.5A2.25 2.25 0 0 0 18 18.75V10.5m-10.5 6L21 3m0 0h-5.25M21 3v5.25" />
|
|
||||||
</svg>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
`
|
|
||||||
}
|
|
||||||
show() {
|
|
||||||
const container = document.createElement('div')
|
|
||||||
container.classList = `flex flex-row items-baseline justify-between gap-2`
|
|
||||||
container.innerHTML = this._build()
|
|
||||||
return container
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = [
|
|
||||||
{ label: "Web Window Manager", date: new Date("9/18/2022"), url: "https://github.com/tristonarmstrong/web-window-manager" },
|
|
||||||
{ label: "Component Test Helper", date: new Date("6/18/2022"), url: "https://github.com/tristonarmstrong/component-test-helper" },
|
|
||||||
{ label: "Hive DAPP", date: new Date("3/8/2022"), url: "https://github.com/tristonarmstrong/hive-dapp" },
|
|
||||||
{ label: "Kivy Twisted Input Capture", date: new Date("6/27/2021"), url: "https://github.com/tristonarmstrong/KivyTwistedInputCapture" },
|
|
||||||
{ label: "Plant Monitor Node MCU", date: new Date("6/27/2021"), url: "https://github.com/tristonarmstrong/PlantMonitorNodeMCU" },
|
|
||||||
{ label: "Oppo BDP 103 CLI", date: new Date("4/10/2021"), url: "https://github.com/tristonarmstrong/oppo_bdp_103_CLI" },
|
|
||||||
{ label: "Sony Bravia Pro Server", date: new Date("4/10/2021"), url: "https://github.com/tristonarmstrong/sony_bravia_pro_display_mock_server" },
|
|
||||||
{ label: "Chat IO", date: new Date("6/10/2020"), url: "https://github.com/tristonarmstrong/chat.io" },
|
|
||||||
{ label: "Solar Battery Monitor API", date: new Date("7/18/2023"), url: "https://github.com/tristonarmstrong/SolarBatteryMonitorApi" },
|
|
||||||
{ label: "Zip Code Distance App", date: new Date("1/28/2020"), url: "https://github.com/tristonarmstrong/zipapp" },
|
|
||||||
{ label: "Armstrong Editor", date: new Date("12/14/2022"), url: "https://github.com/tristonarmstrong/armstrong-editor" },
|
|
||||||
]
|
|
||||||
|
|
||||||
const container = document.getElementById('projects')
|
|
||||||
data.sort((a, b) => b.date - a.date).forEach(
|
|
||||||
p => container.appendChild(new Project(p.label, p.date.toDateString(), p.url).show())
|
|
||||||
)
|
|
||||||
})()
|
|
@ -1,30 +0,0 @@
|
|||||||
(() => {
|
|
||||||
class Skill {
|
|
||||||
label;
|
|
||||||
color;
|
|
||||||
constructor(label, color) {
|
|
||||||
this.label = label
|
|
||||||
this.color = color
|
|
||||||
}
|
|
||||||
|
|
||||||
_build() {
|
|
||||||
return `${this.label}`
|
|
||||||
}
|
|
||||||
show() {
|
|
||||||
const container = document.createElement('div')
|
|
||||||
container.classList = `bg-${this.color} text-white rounded-xl px-2 py-1 text-xs`
|
|
||||||
container.innerHTML = this._build()
|
|
||||||
return container
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = [
|
|
||||||
{ label: "Typescript", color: "blue-500" },
|
|
||||||
{ label: "Python", color: "green-800" },
|
|
||||||
{ label: "Rust", color: "yellow-800" },
|
|
||||||
{ label: "Javascript", color: "yellow-500" },
|
|
||||||
]
|
|
||||||
|
|
||||||
const container = document.getElementById('skills')
|
|
||||||
data.forEach(skill => container.appendChild(new Skill(skill.label, skill.color).show()))
|
|
||||||
})()
|
|