-
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.
commit 459031c8f7dfb4541112904aa26d13cb3802f1d7 Author: Samuel Ping <sam.ping@mongodb.com> Date: Fri Dec 29 18:13:45 2023 -0500 Some cleanup commit 2cfe444 Author: Samuel Ping <sam.ping@mongodb.com> Date: Fri Dec 29 04:15:34 2023 -0500 Add hamburger menu commit 9f01492 Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 23:29:30 2023 -0500 Add about me page commit 1b47aae Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 23:00:35 2023 -0500 Add 404 commit 687dcb5 Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 22:37:42 2023 -0500 Implement icon buttons commit 5a27343 Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 17:57:21 2023 -0500 Update ui commit 6235b7f Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 12:42:38 2023 -0500 Cleanup dates formatting commit 56e83df Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 04:29:42 2023 -0500 Add project cards to home page and date formatting commit b69ba1f Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 03:14:02 2023 -0500 Get mdx and projects page working commit 9cf362b Author: Samuel Ping <sam.ping@mongodb.com> Date: Thu Dec 28 00:30:09 2023 -0500 Remove work; Add project carousel commit 11e489d Author: Samuel Ping <sam.ping@mongodb.com> Date: Wed Dec 27 21:14:56 2023 -0500 Update footer commit 7c727ba Author: Samuel Ping <sam.ping@mongodb.com> Date: Wed Dec 27 03:22:46 2023 -0500 Finish footer commit 34c45d8 Author: Samuel Ping <sam.ping@mongodb.com> Date: Wed Dec 27 02:20:38 2023 -0500 Standardize file naming conventions commit ff73096 Author: Samuel Ping <sam.ping@mongodb.com> Date: Wed Dec 27 02:05:52 2023 -0500 Add project cards commit 4099219 Author: Samuel Ping <sam.ping@mongodb.com> Date: Wed Dec 27 01:30:56 2023 -0500 Touchups; Back in stable state commit 035bdc3 Author: Samuel Ping <sam.ping@mongodb.com> Date: Wed Dec 27 01:03:18 2023 -0500 Migrate to Next 14 commit aa24c77 Author: Samuel Ping <sam.ping@mongodb.com> Date: Wed Dec 27 00:02:34 2023 -0500 Add work buttons commit 89bc724 Author: Samuel Ping <sam.ping@mongodb.com> Date: Tue Dec 26 20:08:46 2023 -0500 Home page progress: Finish mvp for about section, start work section commit 0681aab Author: Samuel Ping <sam.ping@mongodb.com> Date: Mon Dec 25 14:53:57 2023 -0500 update packages commit f031dee Author: Samuel Ping <sam.ping@mongodb.com> Date: Mon Dec 25 14:45:27 2023 -0500 Update pic; remove resume
- Loading branch information
1 parent
52df418
commit 98a155b
Showing
104 changed files
with
7,670 additions
and
5,294 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
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,17 @@ | ||
import { getMDXComponent } from 'mdx-bundler/client'; | ||
|
||
import { Components as MDXComponents } from '@components/mdx/components'; | ||
|
||
import { GetAboutMDX } from '@utils/mdxUtils'; | ||
|
||
export default async function Page() { | ||
const { code } = await GetAboutMDX('about'); | ||
const Component = getMDXComponent(code); | ||
|
||
return ( | ||
<div className="flex flex-col gap-y-2"> | ||
<span className="text-4xl font-medium">About me</span> | ||
<Component components={MDXComponents} /> | ||
</div> | ||
); | ||
} |
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,7 @@ | ||
'use client'; | ||
|
||
import NotFound from '@components/notFound'; | ||
|
||
export default function Error() { | ||
return <NotFound />; | ||
} |
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,26 @@ | ||
import Navbar from '@components/navbar'; | ||
import Footer from '@components/footer'; | ||
|
||
import NavbarButtons from '@config/navbarButtons.config'; | ||
|
||
import './styles/globals.css'; | ||
|
||
export const metadata = { | ||
title: { | ||
default: 'Samuel Ping', | ||
template: '%s | Sam Ping', | ||
}, | ||
description: 'Welcome to Next.js', | ||
}; | ||
|
||
export default function RootLayout({ children }) { | ||
return ( | ||
<html lang="en"> | ||
<body className="min-h-screen max-w-screen-lg flex flex-col gap-y-32 px-5 py-12 mx-auto bg-green-100"> | ||
<Navbar navbarButtons={NavbarButtons} /> | ||
<main className="flex flex-col flex-grow gap-y-14">{children}</main> | ||
<Footer navbarButtons={NavbarButtons} /> | ||
</body> | ||
</html> | ||
); | ||
} |
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,5 @@ | ||
import NotFound from '@components/notFound'; | ||
|
||
export default function Error() { | ||
return <NotFound />; | ||
} |
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,56 @@ | ||
import Image from 'next/image'; | ||
import Link from 'next/link'; | ||
|
||
import Button from '@components/rightArrowButton'; | ||
import { ProjectCardCarousel } from '@components/projectCardCarousel'; | ||
|
||
import profilePic from '@public/assets/sam.jpg'; | ||
|
||
import { GetProjectDetails } from '@utils/mdxUtils'; | ||
|
||
export default async function Page() { | ||
const projects = await GetProjectDetails(4); | ||
|
||
return ( | ||
<> | ||
{/* about me section */} | ||
<div className="pb-16 flex flex-col-reverse items-center gap-y-4 md:flex-row md:justify-between md:pb-32"> | ||
<div className="max-w-md flex flex-col space-y-5"> | ||
<span className="text-4xl font-medium"> | ||
Hey! I'm Sam Ping, a... | ||
</span> | ||
<span className="text-2xl font-light"> | ||
... software engineer at MongoDB, Rutgers University graduate, avid | ||
tennis player, budding boulderer, occasional theater performer, and | ||
neglectful plant dad. I'm currently based out of NYC. | ||
</span> | ||
<Button text={'more about me'} url={'/about'} /> | ||
</div> | ||
|
||
<Image | ||
src={profilePic} | ||
alt="Photo of Sam" | ||
placeholder="blur" | ||
priority | ||
className="w-48 h-48 md:w-64 md:h-64 rounded-full object-cover" | ||
/> | ||
</div> | ||
|
||
{/* projects section */} | ||
<div className="flex flex-col gap-y-8"> | ||
<div className="flex flex-col gap-y-2"> | ||
<span className="text-4xl font-medium">Projects</span> | ||
<span className="text-base font-light"> | ||
Here are some of my recent projects that I've been working on! | ||
Or,{' '} | ||
<Link href="/projects" className="underline"> | ||
see all my projects | ||
</Link> | ||
. | ||
</span> | ||
</div> | ||
<ProjectCardCarousel projects={projects} /> | ||
</div> | ||
</> | ||
); | ||
} |
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,65 @@ | ||
import { getMDXComponent } from 'mdx-bundler/client'; | ||
|
||
import { CodeBracketsIcon, ExternalLinkIcon } from '@components/icons'; | ||
import Chip from '@components/chip'; | ||
import BackButton from '@components/leftArrowButton'; | ||
import { Components as MDXComponents } from '@components/mdx/components'; | ||
import IconButton from '@components/iconButton'; | ||
|
||
import { GetProject, GetProjectDetails } from '@utils/mdxUtils'; | ||
|
||
export async function generateStaticParams() { | ||
const projects = await GetProjectDetails(); | ||
|
||
return projects.props.projects.map((project) => ({ | ||
slug: project.title, | ||
})); | ||
} | ||
|
||
export default async function Page({ params }) { | ||
const { code, details } = await GetProject(`projects/${params.slug}`); | ||
const Component = getMDXComponent(code); | ||
|
||
const tags = details.tags; | ||
|
||
return ( | ||
<div className="flex flex-col gap-y-10"> | ||
<div className="flex flex-col gap-y-2"> | ||
<BackButton text="all projects" url="/projects" /> | ||
<span className="text-4xl font-medium">{details.title}</span> | ||
<span className="text-xl font-light italic">{details.dates}</span> | ||
<div className="flex flex-row gap-1"> | ||
{details.repo ? ( | ||
<IconButton | ||
text="view code" | ||
icon={<CodeBracketsIcon className={''} />} | ||
url={details.repo} | ||
/> | ||
) : ( | ||
<></> | ||
)} | ||
|
||
{details.website ? ( | ||
<IconButton | ||
text="view site" | ||
icon={<ExternalLinkIcon className={''} />} | ||
url={details.website} | ||
/> | ||
) : ( | ||
<></> | ||
)} | ||
</div> | ||
</div> | ||
<Component components={MDXComponents} /> | ||
{/* tags */} | ||
<div className="w-full flex flex-row flex-wrap gap-1"> | ||
<span>tags:</span> | ||
{tags === undefined || tags.length == 0 ? ( | ||
<></> | ||
) : ( | ||
tags.map((tag) => <Chip text={tag} key={tag} />) | ||
)} | ||
</div> | ||
</div> | ||
); | ||
} |
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,26 @@ | ||
import ProjectCard from '@components/projectCard'; | ||
|
||
import { GetProjectDetails } from '@utils/mdxUtils'; | ||
|
||
export default async function Page() { | ||
const projects = await GetProjectDetails(); | ||
|
||
return ( | ||
<div className="flex flex-col gap-y-4"> | ||
<span className="text-4xl font-medium">Projects</span> | ||
<div className="grid grid-cols-1 gap-3 justify-items-center md:justify-items-start sm:grid-cols-2 md:-mx-6 md:grid-cols-3 lg:grid-cols-4"> | ||
{projects.props.projects.map((project) => { | ||
return ( | ||
<ProjectCard | ||
key={project.details.title} | ||
title={project.details.title} | ||
dates={project.details.dates} | ||
gist={project.details.gist} | ||
tags={project.details.tags} | ||
/> | ||
); | ||
})} | ||
</div> | ||
</div> | ||
); | ||
} |
File renamed without changes.
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,13 @@ | ||
'use client'; | ||
|
||
const Chip = ({ text }) => { | ||
return ( | ||
<div className="flex justify-center items-center py-1 px-2 rounded-full text-green-100 group-hover:text-green-500 bg-green-500 group-hover:bg-green-100"> | ||
<div className="text-sm font-normal leading-none max-w-full flex-initial"> | ||
{text} | ||
</div> | ||
</div> | ||
); | ||
}; | ||
|
||
export default Chip; |
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,53 @@ | ||
'use client'; | ||
|
||
import Link from 'next/link'; | ||
|
||
import NavbarButton from '@components/navbarButton'; | ||
import { EnvelopeIcon, GitHubIcon, LinkedInIcon } from '@components/icons'; | ||
|
||
const Footer = ({ navbarButtons }) => ( | ||
<footer className="flex flex-col space-y-5"> | ||
<div className="flex flex-row justify-center md:justify-end space-x-4"> | ||
{navbarButtons.map((navButton) => ( | ||
<NavbarButton | ||
title={navButton.title} | ||
route={navButton.route} | ||
key={navButton.route} | ||
/> | ||
))} | ||
</div> | ||
<div className="w-full flex flex-row justify-center md:justify-end items-center"> | ||
<div className="flex flex-row space-x-5 items-center"> | ||
<Link | ||
href="https://github.com/samuel-ping" | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
> | ||
<button className="flex items-center"> | ||
<GitHubIcon className="h-10 w-10 text-black hover:text-green-500 transition-colors" /> | ||
</button> | ||
</Link> | ||
<Link | ||
href="https://linkedin.com/in/samuelping" | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
> | ||
<button className="flex items-center"> | ||
<LinkedInIcon className="h-10 w-10 text-black hover:text-green-500 transition-colors" /> | ||
</button> | ||
</Link> | ||
<Link | ||
href="mailto:samuel.y.ping@gmail.com" | ||
target="_blank" | ||
rel="noopener noreferrer" | ||
> | ||
<button className="flex items-center"> | ||
<EnvelopeIcon className="h-10 w-10 text-black hover:text-green-500 transition-colors" /> | ||
</button> | ||
</Link> | ||
</div> | ||
</div> | ||
</footer> | ||
); | ||
|
||
export default Footer; |
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
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,67 @@ | ||
'use client'; | ||
|
||
import { usePathname } from 'next/navigation'; | ||
|
||
import { Popover, Transition } from '@headlessui/react'; | ||
|
||
import HamburgerButton from '@components/hamburgerButton'; | ||
import Logo from '@components/logo'; | ||
import NavbarButton from '@components/navbarButton'; | ||
|
||
export default function Navbar({ navbarButtons }) { | ||
const pathname = usePathname(); | ||
|
||
return ( | ||
<Popover> | ||
{({ open, close }) => ( | ||
<> | ||
<nav className="flex items-center justify-between"> | ||
<Logo size={48} visible={true} /> | ||
|
||
{/* Desktop nav */} | ||
<div className="hidden md:flex flex-row gap-x-4"> | ||
{navbarButtons.map((button) => ( | ||
<NavbarButton | ||
key={button.route} | ||
// active even when multiple levels deep | ||
active={`/${pathname.split('/')[1]}` === button.route} | ||
title={button.title} | ||
route={button.route} | ||
/> | ||
))} | ||
</div> | ||
|
||
<div className="md:hidden"> | ||
<Popover.Button> | ||
<HamburgerButton isOpen={open} /> | ||
</Popover.Button> | ||
</div> | ||
</nav> | ||
<Transition | ||
enter="transition duration-100 ease-out" | ||
enterFrom="transform scale-95 opacity-0" | ||
enterTo="transform scale-100 opacity-100" | ||
leave="transition duration-75 ease-out" | ||
leaveFrom="transform scale-100 opacity-100" | ||
leaveTo="transform scale-95 opacity-0" | ||
> | ||
<div className="md:hidden flex justify-center"> | ||
<Popover.Panel className="absolute w-screen flex flex-col bg-green-100 shadow-lg divide-y divide-green-200"> | ||
{navbarButtons.map((button) => ( | ||
<NavbarButton | ||
key={button.title} | ||
active={`/${pathname.split('/')[1]}` === button.route} | ||
title={button.title} | ||
route={button.route} | ||
mobile | ||
close={close} | ||
/> | ||
))} | ||
</Popover.Panel> | ||
</div> | ||
</Transition> | ||
</> | ||
)} | ||
</Popover> | ||
); | ||
} |
Oops, something went wrong.