From e85b4488b303f84a655c9672284b5307bec357cb Mon Sep 17 00:00:00 2001 From: Triston Armstrong Date: Sun, 24 Dec 2023 00:13:29 -0600 Subject: [PATCH] work on getting things to look right --- pages/index.html | 360 +++++++++++++++++++++++++++++++++++++ pages/{ => note}/index.js | 3 +- public/index.html | 70 ++++++++ public/scripts/jobs.js | 78 ++++++++ public/scripts/projects.js | 52 ++++++ public/scripts/skills.js | 30 ++++ 6 files changed, 591 insertions(+), 2 deletions(-) create mode 100644 pages/index.html rename pages/{ => note}/index.js (92%) create mode 100644 public/index.html create mode 100644 public/scripts/jobs.js create mode 100644 public/scripts/projects.js create mode 100644 public/scripts/skills.js diff --git a/pages/index.html b/pages/index.html new file mode 100644 index 0000000..8939e23 --- /dev/null +++ b/pages/index.html @@ -0,0 +1,360 @@ + + + + + + + Triston Armstrong Portfolio + + + + + + +
+ +
+ + +
+
+
+ +

Triston Armstrong

+
+

Full Stack Software Developer @ VentraHealth

+
+

I am a self taught Full Stack Software Developer with an unhealthy addiction to solving + problems using code.

+
+
+
+ + +
+

Skills

+
+ +
+
+ + +
+

Jobs

+
+ +
+
+ + +
+

Personal Projects

+
+ + +
+
+ + +
+

Notes

+

An endless trail of links to my personal notes

+ note +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pages/index.js b/pages/note/index.js similarity index 92% rename from pages/index.js rename to pages/note/index.js index 5b66f0d..6c768df 100644 --- a/pages/index.js +++ b/pages/note/index.js @@ -8,12 +8,11 @@ import { constructGraphData } from "../lib/utils"; import FolderTree from "../components/FolderTree"; -import dynamic from 'next/dynamic' import MDContent from "../components/MDContent"; // This trick is to dynamically load component that interact with window object (browser only) -export default function Home({ graphData, content, tree, flattenNodes, backLinks }) { +export default function Home({ content, tree, flattenNodes, backLinks }) { return (
diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..3e55c02 --- /dev/null +++ b/public/index.html @@ -0,0 +1,70 @@ + + + + + + + Triston Armstrong Portfolio + + + + + + +
+ +
+ + +
+
+
+ +

Triston Armstrong

+
+

Full Stack Software Developer @ VentraHealth

+
+

I am a self taught Full Stack Software Developer with an unhealthy addiction to solving + problems using code.

+
+
+
+ + +
+

Skills

+
+ +
+
+ + +
+

Jobs

+
+ +
+
+ + +
+

Personal Projects

+
+ + +
+
+ + +
+

Notes

+

An endless trail of links to my personal notes

+ note + NOTES +
+ + + diff --git a/public/scripts/jobs.js b/public/scripts/jobs.js new file mode 100644 index 0000000..6263d4f --- /dev/null +++ b/public/scripts/jobs.js @@ -0,0 +1,78 @@ +(() => { + 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 ` + +
+
+ ${this.name} + ${this.dateFrom} - ${this.dateTo} +
+ ${this.details} +
+ ` + } + + 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()) + }) +})() diff --git a/public/scripts/projects.js b/public/scripts/projects.js new file mode 100644 index 0000000..be34936 --- /dev/null +++ b/public/scripts/projects.js @@ -0,0 +1,52 @@ +(() => { + class Project { + label; date; url; + constructor(label, date, url) { + this.label = label; + this.date = date; + this.url = url; + } + + _build() { + return ` +

${this.label}

+ +
+ ${this.date} + + + + + +
+ ` + } + 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()) + ) +})() diff --git a/public/scripts/skills.js b/public/scripts/skills.js new file mode 100644 index 0000000..9f6e8c6 --- /dev/null +++ b/public/scripts/skills.js @@ -0,0 +1,30 @@ +(() => { + 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())) +})()