2023-12-30 01:17:02 +00:00
|
|
|
import Job, { type JobProps } from "../components/Job";
|
|
|
|
import Skill, { type SkillProps } from "../components/Skill";
|
|
|
|
import Project, { type ProjectProps } from "../components/Project";
|
2023-12-26 01:25:55 +00:00
|
|
|
import Head from "next/head";
|
2023-12-30 01:17:02 +00:00
|
|
|
import { UsefulLinksList } from '../components/UsefulLinks/index'
|
|
|
|
import { SocialLinksList } from '../components/SocialLinks/SocialLinks'
|
|
|
|
import type { InferGetStaticPropsType, GetStaticProps } from 'next'
|
|
|
|
|
|
|
|
interface LandingProps {
|
|
|
|
jobs: JobsType[]
|
|
|
|
skills: SkillsType[]
|
|
|
|
projects: ProjectsType[]
|
|
|
|
}
|
2023-12-26 01:25:55 +00:00
|
|
|
|
2023-12-30 01:17:02 +00:00
|
|
|
export default function Landing({ jobs, skills, projects }: LandingProps) {
|
2023-12-26 01:25:55 +00:00
|
|
|
return (
|
|
|
|
<div>
|
|
|
|
<Head>
|
2023-12-28 05:06:32 +00:00
|
|
|
<body className="bg-gradient-to-b from-slate-900 to-slate-950 container max-w-full mx-auto text-gray-300 py-24 px-8 w-full " />
|
2023-12-26 01:25:55 +00:00
|
|
|
</Head>
|
|
|
|
|
2023-12-29 23:20:43 +00:00
|
|
|
<main className="flex flex-col-reverse gap-8">
|
|
|
|
<aside className="flex flex-col gap-4">
|
|
|
|
<section className="md:sticky md:top-10 p-2 bg-slate-500 bg-opacity-10 rounded-xl row-span-1 col-span-6" >
|
2023-12-28 05:06:32 +00:00
|
|
|
<h3 className="mt-1">Useful Links</h3>
|
2023-12-29 06:03:35 +00:00
|
|
|
<UsefulLinksList />
|
2023-12-28 05:06:32 +00:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section className="grid grid-rows-3 col-start-1 col-span-6 sticky top-72 row-span-1" >
|
|
|
|
<div className="row-span-1 p-2 bg-slate-500 bg-opacity-10 rounded-xl ">
|
2023-12-29 23:22:20 +00:00
|
|
|
<SocialLinksList />
|
2023-12-26 01:25:55 +00:00
|
|
|
</div>
|
2023-12-28 05:06:32 +00:00
|
|
|
</section>
|
|
|
|
</aside>
|
2023-12-26 01:25:55 +00:00
|
|
|
|
2023-12-29 23:20:43 +00:00
|
|
|
<section className=" flex gap-1 flex-col ">
|
2023-12-28 05:06:32 +00:00
|
|
|
<article>
|
|
|
|
<div className="flex flex-col gap-2">
|
|
|
|
<div className="flex gap-4 items-center">
|
|
|
|
<img className="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 className="text-2xl font-bold">Triston Armstrong</h1>
|
|
|
|
</div>
|
|
|
|
<p className="text-sm">Full Stack Software Developer @ <a href="ventrahealth.com"
|
|
|
|
className="text-blue-500">VentraHealth</a></p>
|
|
|
|
<div className="w-full border-dashed border-slate-500 my-4 border "></div>
|
|
|
|
<p className="text-sm">I am a self taught Full Stack Software Developer with an unhealthy addiction to solving
|
|
|
|
problems using code.</p>
|
|
|
|
<div className="w-full border-dashed border-gray-700 border-opacity-10 my-4 border "></div>
|
|
|
|
</div>
|
|
|
|
</article>
|
2023-12-26 01:25:55 +00:00
|
|
|
|
2023-12-28 05:06:32 +00:00
|
|
|
<article>
|
|
|
|
<h2 className="text-1xl font-bold uppercase">Skills</h2>
|
|
|
|
<div className="flex gap-2 py-4" id="skills">
|
2023-12-30 01:17:02 +00:00
|
|
|
{skills.map(skill => <Skill key={skill.label} label={skill.label} />)}
|
2023-12-28 05:06:32 +00:00
|
|
|
</div>
|
|
|
|
</article>
|
2023-12-26 01:25:55 +00:00
|
|
|
|
2023-12-28 05:06:32 +00:00
|
|
|
<article>
|
|
|
|
<h2 className="text-1xl font-bold uppercase">Jobs</h2>
|
|
|
|
<div className="flex flex-col gap-3 py-4" id="jobs">
|
|
|
|
{jobs.map(job => <Job key={job.name} logo={job.logo} name={job.name} details={job.details} dateFrom={job.dateFrom} dateTo={job.dateTo} />)}
|
|
|
|
</div>
|
|
|
|
</article>
|
|
|
|
|
|
|
|
<article>
|
|
|
|
<h2 className="text-1xl font-bold uppercase">Personal Projects</h2>
|
|
|
|
<div className="flex flex-col gap-3 py-4" id="projects">
|
|
|
|
{projects.map(project => <Project key={project.label} label={project.label} date={project.date} url={project.url} />)}
|
|
|
|
</div>
|
|
|
|
</article>
|
2023-12-26 01:25:55 +00:00
|
|
|
|
2023-12-28 05:06:32 +00:00
|
|
|
<article>
|
|
|
|
<h2 className="text-1xl font-bold uppercase">Notes</h2>
|
|
|
|
<p>An endless trail of links to my personal notes</p>
|
2023-12-29 06:03:35 +00:00
|
|
|
<a href="/notes" target="_blank">Go To Notes {"->"}</a>
|
2023-12-28 05:06:32 +00:00
|
|
|
</article>
|
2023-12-26 01:25:55 +00:00
|
|
|
</section>
|
|
|
|
</main>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-12-30 01:17:02 +00:00
|
|
|
export function getStaticProps(): ReturnType<GetStaticProps<{
|
|
|
|
projects: ProjectsType[],
|
|
|
|
skills: SkillsType[],
|
|
|
|
jobs: JobsType[]
|
|
|
|
}>> {
|
2023-12-26 01:25:55 +00:00
|
|
|
return {
|
|
|
|
props: {
|
|
|
|
projects: [
|
|
|
|
{ label: "Web Window Manager", date: "9/18/2022", url: "https://github.com/tristonarmstrong/web-window-manager" },
|
|
|
|
{ label: "Component Test Helper", date: "6/18/2022", url: "https://github.com/tristonarmstrong/component-test-helper" },
|
|
|
|
{ label: "Hive DAPP", date: "3/8/2022", url: "https://github.com/tristonarmstrong/hive-dapp" },
|
|
|
|
{ label: "Kivy Twisted Input Capture", date: "6/27/2021", url: "https://github.com/tristonarmstrong/KivyTwistedInputCapture" },
|
|
|
|
{ label: "Plant Monitor Node MCU", date: "6/27/2021", url: "https://github.com/tristonarmstrong/PlantMonitorNodeMCU" },
|
|
|
|
{ label: "Oppo BDP 103 CLI", date: "4/10/2021", url: "https://github.com/tristonarmstrong/oppo_bdp_103_CLI" },
|
|
|
|
{ label: "Sony Bravia Pro Server", date: "4/10/2021", url: "https://github.com/tristonarmstrong/sony_bravia_pro_display_mock_server" },
|
|
|
|
{ label: "Chat IO", date: "6/10/2020", url: "https://github.com/tristonarmstrong/chat.io" },
|
|
|
|
{ label: "Solar Battery Monitor API", date: "7/18/2023", url: "https://github.com/tristonarmstrong/SolarBatteryMonitorApi" },
|
|
|
|
{ label: "Zip Code Distance App", date: "1/28/2020", url: "https://github.com/tristonarmstrong/zipapp" },
|
|
|
|
{ label: "Armstrong Editor", date: "12/14/2022", url: "https://github.com/tristonarmstrong/armstrong-editor" },
|
|
|
|
],
|
|
|
|
skills: [
|
2023-12-30 01:17:02 +00:00
|
|
|
{ label: "Typescript" },
|
|
|
|
{ label: "Python" },
|
|
|
|
{ label: "Rust" },
|
|
|
|
{ label: "Javascript" },
|
2023-12-26 01:25:55 +00:00
|
|
|
],
|
|
|
|
jobs: [
|
|
|
|
{
|
|
|
|
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"
|
|
|
|
|
|
|
|
},
|
|
|
|
]
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-12-30 01:17:02 +00:00
|
|
|
type SkillsType = SkillProps
|
|
|
|
type JobsType = JobProps
|
|
|
|
type ProjectsType = ProjectProps
|