mirror of
https://github.com/soconnor0919/personal-website.git
synced 2026-02-05 00:06:36 -05:00
Update content to data.ts
This commit is contained in:
@@ -5,31 +5,7 @@ import Link from "next/link";
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card";
|
||||
import { CardSkeleton } from "~/components/ui/skeletons";
|
||||
import { useState, useEffect } from 'react';
|
||||
|
||||
const articles = [
|
||||
{
|
||||
title: "Positively Innovative: Robotics for Good",
|
||||
link: "https://magazine.bucknell.edu/issue/fall-2024/robotics-for-good/",
|
||||
author: "Kate Willard",
|
||||
description: "Sean O’Connor ’26 is using his interest in robotics to fuel forward-thinking research and lead important conversations about the impact robots can have on society.",
|
||||
source: "Bucknell Magazine (Fall 2024)"
|
||||
},
|
||||
{
|
||||
title: "Student Story: Sean O'Connor '26, Computer Science and Engineering",
|
||||
link: "https://www.bucknell.edu/meet-bucknell/bucknell-stories/student-stories/sean-oconnor-26-computer-science-engineering",
|
||||
author: "Sarah Downey",
|
||||
description: "At Bucknell, Sean O'Connor '26 is conducting research to improve the ways robots assist, collaborate and coexist with humans.",
|
||||
source: "Bucknell Student Stories"
|
||||
},
|
||||
{
|
||||
title: "Shaping the Future: Exploring the Social Impact of Robots",
|
||||
link: "https://magazine.bucknell.edu/college-of-engineering/2024-college-report/",
|
||||
author: "Bucknell Publications",
|
||||
description: "RoboLab provides an environment for scholarly and creative conversations.",
|
||||
source: "the Bucknell College of Engineering Report 2024"
|
||||
}
|
||||
// Add more articles as needed
|
||||
];
|
||||
import { articles } from '~/lib/data';
|
||||
|
||||
export default function ArticlesPage() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
@@ -5,22 +5,24 @@ import { Footer } from "~/components/Footer"
|
||||
import { Navigation } from "~/components/Navigation"
|
||||
import { Sidebar } from "~/components/Sidebar"
|
||||
import { inter } from "~/lib/fonts"
|
||||
import { description, name } from "~/lib/data";
|
||||
import "~/styles/globals.css"
|
||||
|
||||
export const metadata = {
|
||||
title: "Sean O'Connor",
|
||||
description: "Personal website and portfolio",
|
||||
title: `${name[0]?.first} ${name[0]?.last}`,
|
||||
description: description,
|
||||
icons: [{ rel: "icon", url: "/favicon.ico" }],
|
||||
}
|
||||
|
||||
export default function RootLayout({ children }: React.PropsWithChildren) {
|
||||
return (
|
||||
<html lang="en" className={inter.className}>
|
||||
<body className="font-sans bg-background text-foreground min-h-screen flex flex-col">
|
||||
<html lang="en" suppressHydrationWarning className={inter.className}>
|
||||
<body className="font-sans bg-background text-foreground min-h-screen flex flex-col" suppressHydrationWarning>
|
||||
<ThemeProvider
|
||||
attribute="data-theme"
|
||||
defaultTheme="system"
|
||||
enableSystem
|
||||
disableTransitionOnChange
|
||||
>
|
||||
<Analytics />
|
||||
<SpeedInsights />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ArrowUpRight, Code, FlaskConical, Users } from 'lucide-react';
|
||||
import Link from "next/link";
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card";
|
||||
import { projects } from "~/lib/data";
|
||||
import { projects, name } from "~/lib/data";
|
||||
|
||||
export default function HomePage() {
|
||||
return (
|
||||
@@ -9,7 +9,7 @@ export default function HomePage() {
|
||||
{/* About Section */}
|
||||
<section className="space-y-6">
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold">Hi! I'm Sean. 👋</h1>
|
||||
<h1 className="text-2xl font-bold">Hi! I'm {name[0]?.first}. 👋</h1>
|
||||
<p className="text-lg text-muted-foreground mt-2">
|
||||
I am a Computer Science and Engineering student at Bucknell University, passionate about robotics,
|
||||
software development, and human-computer interaction. With a strong foundation in both academic
|
||||
|
||||
@@ -60,7 +60,7 @@ export default function PublicationsPage() {
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<section className="prose prose-zinc dark:prose-invert max-w-none">
|
||||
<h1 className="text-2xl font-bold">Publications 📚</h1>
|
||||
<h1 className="text-2xl font-bold">Peer-Reviewed Publications 📚</h1>
|
||||
<p className="text-lg text-muted-foreground mt-2">
|
||||
My research publications in human-robot interaction and robotics.
|
||||
</p>
|
||||
|
||||
@@ -5,46 +5,7 @@ import { Card, CardHeader, CardTitle, CardContent, CardDescription } from "~/com
|
||||
import { CardSkeleton } from "~/components/ui/skeletons";
|
||||
import Image from "next/image";
|
||||
import { Badge } from "~/components/ui/badge";
|
||||
|
||||
const tripsData = [
|
||||
{
|
||||
title: "AIChE Annual Student Conference 2024",
|
||||
description: "With the funding of Bucknell's chemical engineering department, and an amazing team, I was able to attend the 2024 AIChE Annual Student Conference and compete in the national Chem-E-Car competition.",
|
||||
images: ["/trips/asc2024/IMG_2641.png", "/trips/asc2024/IMG_2631.png", "/trips/asc2024/IMG_7987.png"],
|
||||
tags: ["Chem-E-Car", "AIChE", "Conference", "Competition"]
|
||||
},
|
||||
{
|
||||
title: "IEEE RO-MAN 2024",
|
||||
description: "I got to attend the IEEE RO-MAN 2024 conference in Pasadena, California. It was a great opportunity to present my work on my project HRIStudio, and to network with other researchers and industry professionals.",
|
||||
images: ["/trips/roman2024/IMG_3951.png", "/trips/roman2024/IMG_3978.png", "/trips/roman2024/IMG_3946.png"],
|
||||
tags: ["RO-MAN", "IEEE", "Conference", "Presentation"]
|
||||
},
|
||||
{
|
||||
title: "ENGR 290: Following da Vinci's Footsteps",
|
||||
description: "During the summer of 2024, I went on a study abroad program with about thirty of my peers. We explored Italy and France, following the footsteps of Leonardo da Vinci- evaluating the world through his lenses.",
|
||||
images: ["/trips/engr290/insta290.jpg", "/trips/engr290/P1013747.png"],
|
||||
tags: ["Italy", "France", "Study Abroad", "Engineering"]
|
||||
},
|
||||
{
|
||||
title: "SCA Specialty Coffee Expo 2024",
|
||||
description: "As a member of the executive board of the Bucknell Coffee Society, I was able to attend the Specialty Coffee Association's Specialty Coffee Expo in early 2024, traveling to Chicago, IL.",
|
||||
images: ["/trips/sca2024/group.jpeg", "/trips/sca2024/bean.png", "/trips/sca2024/plane.png"],
|
||||
tags: ["Coffee Society", "Chicago", "SCA", "Coffee"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 Gran Premio dell'Emilia Romagna 2024",
|
||||
description: "While studying abroad with Bucknell Engineering, we were lucky enough to be within a few hours of the Imola Grand Prix! A group of students went to see the race, and it was an amazing experience.",
|
||||
images: ["/trips/imola2024/IMG_2093.png", "/trips/imola2024/IMG_2050.png", "/trips/imola2024/IMG_2066.png"],
|
||||
tags: ["Racing", "Formula One", "Italy"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 British Grand Prix 2024",
|
||||
description: "As a semi-recent Formula One fan, I was very excited to have the opportunity to attend the British Grand Prix weekend in 2024. I was able to see every event- marking one of my favorite weekends, probably ever.",
|
||||
images: ["/trips/silverstone/_1035852.png", "/trips/silverstone/P1025274.png", "/trips/silverstone/_1035764.png"],
|
||||
tags: ["Racing", "Formula One", "Great Britain", "Silverstone"]
|
||||
}
|
||||
];
|
||||
|
||||
import { travel } from "~/lib/data";
|
||||
export default function TripsPage() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
@@ -75,7 +36,7 @@ export default function TripsPage() {
|
||||
<CardSkeleton />
|
||||
</>
|
||||
) : (
|
||||
tripsData.map((trip, index) => (
|
||||
travel.map((trip, index) => (
|
||||
<Card key={index} className="rounded-lg overflow-hidden">
|
||||
<CardHeader className="p-0">
|
||||
<div className="flex flex-col">
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import React from 'react';
|
||||
import { name } from '~/lib/data';
|
||||
|
||||
export function Footer() {
|
||||
return (
|
||||
<footer className="lg:hidden bg-background text-foreground pb-4">
|
||||
<div className="max-w-screen-xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<p className="text-sm text-muted-foreground">
|
||||
© 2024 Sean O'Connor. All rights reserved.
|
||||
© {new Date().getFullYear()} {name[0]?.first} {name[0]?.last}. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
@@ -1,55 +1,8 @@
|
||||
'use client';
|
||||
|
||||
import { Github, Globe, GraduationCap, Linkedin, Mail, Phone, School } from 'lucide-react';
|
||||
import Image from 'next/image';
|
||||
import { usePathname } from 'next/navigation';
|
||||
|
||||
const schoolInfo = [
|
||||
{
|
||||
icon: School,
|
||||
label: 'Bucknell University',
|
||||
href: 'https://bucknell.edu'
|
||||
},
|
||||
{
|
||||
label: 'Computer Science and Engineering',
|
||||
}
|
||||
]
|
||||
|
||||
const contactInfo = [
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'Personal Email',
|
||||
href: 'mailto:sean@soconnor.dev'
|
||||
},
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'University Email',
|
||||
href: 'mailto:sso005@bucknell.edu'
|
||||
},
|
||||
{
|
||||
icon: Phone,
|
||||
label: 'Phone',
|
||||
href: 'tel:+16316016555'
|
||||
},
|
||||
{
|
||||
icon: Globe,
|
||||
label: 'Website',
|
||||
href: 'https://soconnor.dev',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Linkedin,
|
||||
label: 'LinkedIn',
|
||||
href: 'https://linkedin.com/in/bu-soconnor',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Github,
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/soconnor0919',
|
||||
external: true
|
||||
}
|
||||
];
|
||||
import { name, contact, location } from '~/lib/data';
|
||||
|
||||
export function Sidebar() {
|
||||
const pathname = usePathname();
|
||||
@@ -64,7 +17,7 @@ export function Sidebar() {
|
||||
<div className="w-24 h-24 relative overflow-hidden rounded-lg">
|
||||
<Image
|
||||
src="/headshot.png"
|
||||
alt="Sean O'Connor"
|
||||
alt={`${name[0]?.first} ${name[0]?.last}`}
|
||||
width={240}
|
||||
height={240}
|
||||
className="object-cover rounded-xl"
|
||||
@@ -72,8 +25,8 @@ export function Sidebar() {
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col space-y-1">
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">Sean O'Connor</h2>
|
||||
{schoolInfo.map((item) => (
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">{name[0]?.first} {name[0]?.last}</h2>
|
||||
{location.map((item) => (
|
||||
<a
|
||||
key={item.label}
|
||||
href={item.href}
|
||||
@@ -89,11 +42,11 @@ export function Sidebar() {
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="space-y-3">
|
||||
<h3 className="text-xs uppercase text-muted-foreground font-medium">Contact</h3>
|
||||
<div className="grid grid-cols-2 gap-2">
|
||||
{contactInfo.map((item) => (
|
||||
{contact.map((item) => (
|
||||
<a
|
||||
key={item.href}
|
||||
href={item.href}
|
||||
@@ -119,7 +72,7 @@ export function Sidebar() {
|
||||
<div className="aspect-square relative overflow-hidden rounded-xl w-full">
|
||||
<Image
|
||||
src="/headshot.png"
|
||||
alt="Sean O'Connor"
|
||||
alt={`${name[0]?.first} ${name[0]?.last}`}
|
||||
width={240}
|
||||
height={240}
|
||||
className="object-cover rounded-xl"
|
||||
@@ -129,10 +82,10 @@ export function Sidebar() {
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="text-center lg:text-left space-y-2">
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">Sean O'Connor</h2>
|
||||
{schoolInfo.map((item) => (
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">{name[0]?.first} {name[0]?.last}</h2>
|
||||
{location.map((item) => (
|
||||
<a
|
||||
key={item.label}
|
||||
href={item.href}
|
||||
@@ -152,7 +105,7 @@ export function Sidebar() {
|
||||
<div>
|
||||
<h3 className="text-xs uppercase text-muted-foreground font-medium mb-2 text-center lg:text-left">Contact</h3>
|
||||
<div className="space-y-2">
|
||||
{contactInfo.map((item) => (
|
||||
{contact.map((item) => (
|
||||
<a
|
||||
key={item.href}
|
||||
href={item.href}
|
||||
@@ -173,7 +126,7 @@ export function Sidebar() {
|
||||
|
||||
<div className="mt-6">
|
||||
<p className="text-sm text-muted-foreground text-center lg:text-left">
|
||||
© 2024 Sean O'Connor. All rights reserved.
|
||||
© {new Date().getFullYear()} {name[0]?.first} {name[0]?.last}. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
122
src/lib/data.ts
122
src/lib/data.ts
@@ -1,3 +1,86 @@
|
||||
import { Globe, Mail, Phone, Linkedin, Github, School } from "lucide-react";
|
||||
|
||||
export const name = [
|
||||
{
|
||||
first: "Sean",
|
||||
last: "O'Connor"
|
||||
}
|
||||
]
|
||||
|
||||
export const description = "Personal website and portfolio";
|
||||
|
||||
export const location = [
|
||||
{
|
||||
icon: School,
|
||||
label: 'Bucknell University',
|
||||
href: 'https://bucknell.edu'
|
||||
},
|
||||
{
|
||||
label: 'Computer Science and Engineering',
|
||||
}
|
||||
]
|
||||
|
||||
export const contact = [
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'Personal Email',
|
||||
href: 'mailto:sean@soconnor.dev'
|
||||
},
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'University Email',
|
||||
href: 'mailto:sso005@bucknell.edu'
|
||||
},
|
||||
{
|
||||
icon: Phone,
|
||||
label: 'Phone',
|
||||
href: 'tel:+16316016555'
|
||||
},
|
||||
{
|
||||
icon: Globe,
|
||||
label: 'Website',
|
||||
href: 'https://soconnor.dev',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Linkedin,
|
||||
label: 'LinkedIn',
|
||||
href: 'https://linkedin.com/in/bu-soconnor',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Github,
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/soconnor0919',
|
||||
external: true
|
||||
}
|
||||
];
|
||||
|
||||
export const articles = [
|
||||
{
|
||||
title: "Positively Innovative: Robotics for Good",
|
||||
link: "https://magazine.bucknell.edu/issue/fall-2024/robotics-for-good/",
|
||||
author: "Kate Willard",
|
||||
description: "Sean O’Connor ’26 is using his interest in robotics to fuel forward-thinking research and lead important conversations about the impact robots can have on society.",
|
||||
source: "Bucknell Magazine (Fall 2024)"
|
||||
},
|
||||
{
|
||||
title: "Student Story: Sean O'Connor '26, Computer Science and Engineering",
|
||||
link: "https://www.bucknell.edu/meet-bucknell/bucknell-stories/student-stories/sean-oconnor-26-computer-science-engineering",
|
||||
author: "Sarah Downey",
|
||||
description: "At Bucknell, Sean O'Connor '26 is conducting research to improve the ways robots assist, collaborate and coexist with humans.",
|
||||
source: "Bucknell Student Stories"
|
||||
},
|
||||
{
|
||||
title: "Shaping the Future: Exploring the Social Impact of Robots",
|
||||
link: "https://magazine.bucknell.edu/college-of-engineering/2024-college-report/",
|
||||
author: "Bucknell Publications",
|
||||
description: "RoboLab provides an environment for scholarly and creative conversations.",
|
||||
source: "the Bucknell College of Engineering Report 2024"
|
||||
}
|
||||
// Add more articles as needed
|
||||
];
|
||||
|
||||
export const projects = [
|
||||
{
|
||||
title: "HRIStudio",
|
||||
@@ -35,3 +118,42 @@ export const projects = [
|
||||
},
|
||||
];
|
||||
|
||||
export const travel = [
|
||||
{
|
||||
title: "AIChE Annual Student Conference 2024",
|
||||
description: "With the funding of Bucknell's chemical engineering department, and an amazing team, I was able to attend the 2024 AIChE Annual Student Conference and compete in the national Chem-E-Car competition.",
|
||||
images: ["/trips/asc2024/IMG_2641.png", "/trips/asc2024/IMG_2631.png", "/trips/asc2024/IMG_7987.png"],
|
||||
tags: ["Chem-E-Car", "AIChE", "Conference", "Competition"]
|
||||
},
|
||||
{
|
||||
title: "IEEE RO-MAN 2024",
|
||||
description: "I got to attend the IEEE RO-MAN 2024 conference in Pasadena, California. It was a great opportunity to present my work on my project HRIStudio, and to network with other researchers and industry professionals.",
|
||||
images: ["/trips/roman2024/IMG_3951.png", "/trips/roman2024/IMG_3978.png", "/trips/roman2024/IMG_3946.png"],
|
||||
tags: ["RO-MAN", "IEEE", "Conference", "Presentation"]
|
||||
},
|
||||
{
|
||||
title: "ENGR 290: Following da Vinci's Footsteps",
|
||||
description: "During the summer of 2024, I went on a study abroad program with about thirty of my peers. We explored Italy and France, following the footsteps of Leonardo da Vinci- evaluating the world through his lenses.",
|
||||
images: ["/trips/engr290/insta290.jpg", "/trips/engr290/P1013747.png", "/trips/engr290/_1024461.png"],
|
||||
tags: ["Italy", "France", "Study Abroad", "Engineering"]
|
||||
},
|
||||
{
|
||||
title: "SCA Specialty Coffee Expo 2024",
|
||||
description: "As a member of the executive board of the Bucknell Coffee Society, I was able to attend the Specialty Coffee Association's Specialty Coffee Expo in early 2024, traveling to Chicago, IL.",
|
||||
images: ["/trips/sca2024/group.jpeg", "/trips/sca2024/bean.png", "/trips/sca2024/plane.png"],
|
||||
tags: ["Coffee Society", "Chicago", "SCA", "Coffee"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 Gran Premio dell'Emilia Romagna 2024",
|
||||
description: "While studying abroad with Bucknell Engineering, we were lucky enough to be within a few hours of the Imola Grand Prix! A group of students went to see the race, and it was an amazing experience.",
|
||||
images: ["/trips/imola2024/IMG_2093.png", "/trips/imola2024/IMG_2050.png", "/trips/imola2024/IMG_2066.png"],
|
||||
tags: ["Racing", "Formula One", "Italy"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 British Grand Prix 2024",
|
||||
description: "As a semi-recent Formula One fan, I was very excited to have the opportunity to attend the British Grand Prix weekend in 2024. I was able to see every event- marking one of my favorite weekends, probably ever.",
|
||||
images: ["/trips/silverstone/_1035852.png", "/trips/silverstone/P1025274.png", "/trips/silverstone/_1035764.png"],
|
||||
tags: ["Racing", "Formula One", "Great Britain", "Silverstone"]
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user