Update content to data.ts

This commit is contained in:
2024-10-31 00:28:43 -04:00
parent cede237c1c
commit 0b64c4384b
9 changed files with 240 additions and 225 deletions

View File

@@ -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 OConnor 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);

View File

@@ -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 />

View File

@@ -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

View File

@@ -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>

View File

@@ -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">

View File

@@ -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">
&copy; 2024 Sean O'Connor. All rights reserved.
&copy; {new Date().getFullYear()} {name[0]?.first}&nbsp;{name[0]?.last}. All rights reserved.
</p>
</div>
</footer>

View File

@@ -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}&nbsp;${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}&nbsp;{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}&nbsp;${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}&nbsp;{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">
&copy; 2024&nbsp;Sean&nbsp;O'Connor. All&nbsp;rights&nbsp;reserved.
&copy;&nbsp;{new Date().getFullYear()}&nbsp;{name[0]?.first}&nbsp;{name[0]?.last}. All&nbsp;rights&nbsp;reserved.
</p>
</div>
</div>

View File

@@ -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 OConnor 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"]
}
];