Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
088bb36
reverted changes
ShadowArcher289 Dec 13, 2025
a219023
ignore previous commit message, it actually was: 'added a timebar on …
ShadowArcher289 Dec 13, 2025
9da0a49
event cards are placed on their respective time frames and overlap ea…
ShadowArcher289 Dec 13, 2025
5eca3b3
added some comments
ShadowArcher289 Dec 13, 2025
a58acdd
more comments and organized code
ShadowArcher289 Dec 13, 2025
30ba4cf
event cards now appear on their own columns
ShadowArcher289 Dec 13, 2025
05926e1
styled the event cards to look a little nicer
ShadowArcher289 Dec 13, 2025
49e3b9a
updated some comments
ShadowArcher289 Dec 14, 2025
dc704d3
Time bars now span the whole schedule
ShadowArcher289 Dec 20, 2025
39b3efb
decreased the spacer sizes
ShadowArcher289 Dec 20, 2025
ff96588
timeline on the left takes up less space
ShadowArcher289 Dec 21, 2025
8beb9b1
added comment to address the warning
ShadowArcher289 Dec 21, 2025
7ce0190
implemented EventPopups, a popup now appears when the user selects an…
ShadowArcher289 Dec 21, 2025
ef00682
popups no longer re-shuffle the events
ShadowArcher289 Dec 21, 2025
fc5e603
Merge pull request #1 from ComputerScienceHouse/main
ShadowArcher289 Dec 29, 2025
470df22
Merge branch 'main' into schedule_page_fixes
ShadowArcher289 Dec 29, 2025
8bf935f
removed unclickable areas on event cards
ShadowArcher289 Dec 29, 2025
10aa281
added EventsData.ts, TO-DO: update the formating so the events work i…
ShadowArcher289 Dec 29, 2025
aeca32e
cleaned up code and fixed bugs so that to add/edit/remove an event al…
ShadowArcher289 Dec 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions src/pages/EventPopup.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import { cn } from "@/lib/utils";
import { Calendar, Clock, MapPin, Users } from "lucide-react";
import { ScheduleEvent } from "./ScheduleEvent";

/**
* EventPopupProp that allows onClose() to be passed in
*/
interface EventPopupProps extends ScheduleEvent {
onClose: () => void,
typeColors: Record<string, string>
}

export default function EventPopup(event: EventPopupProps){

return (
<div // gray background
id="eventPopup"
className={cn(
"z-50 fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-screen h-screen bg-black bg-opacity-50",
event.type === "main" && "border-8 border-primary/100 glow-csh"
)}
>
{/* If the user clicks anywhere, then the popup is closed */}
<button
onClick={event.onClose}
className={cn(
"w-screen h-screen",
event.type === "main" && "border-8 border-primary/100 glow-csh"
)}
>
<div
className={cn(
"z-50 fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 overflow-y-auto flex flex-wrap border-4 border-csh-magenta p-6 rounded-2xl transition-all duration-300 hover:scale-[1.02] bg-pink-300",
event.type === "main" && "border-8 border-primary/100 glow-csh"
)}
>
<div className="flex flex-row items-start gap-4">
{/* Content */}
<div className="flex-1">
{/* Time */}
<div className="flex items-center gap-2 text-csh-magenta font-semibold py-2">
<Clock className="w-4 h-4" />
{event.time}
</div>
<div className="flex flex-wrap items-center gap-3 mb-2">
<h3 className="text-xl font-display font-semibold">
{event.title}
</h3>
<span className={cn(
"px-3 py-1 rounded-full text-xs font-medium border",
event.typeColors[event.type]
)}>
{event.type === "main" ? "Main Event" : event.type.charAt(0).toUpperCase() + event.type.slice(1)}
</span>
</div>
<p className="text-csh-foreground mb-3 text-csh-magenta text-left">
{event.description}
</p>
<div className="flex items-center gap-2 text-csh-magenta font-semibold pb-1">
<Calendar className="w-4 h-4 text-csh-magenta" />
{event.date}
</div>
<div className="flex items-center gap-2 text-sm text-csh-magenta font-semibold pb-1">
<MapPin className="w-4 h-4" />
{event.location} | {event.address}
</div>
<div className="flex items-center gap-2 text-sm text-csh-magenta pb-1">
<Users className="w-5 h-5 text-csh-magenta mt-0.5" />
<span className="">Capacity:</span>
<span className="font-semibold text-csh-magenta text-sm">{event.capacity}</span>
</div>
<div className="flex items-center gap-2 text-sm text-csh-magenta pb-1">
<Users className="w-5 h-5 text-csh-magenta mt-0.5" />
<span className="">Attire:</span>
<span className="font-semibold text-csh-magenta text-sm">{event.dressCode}</span>
</div>
</div>
</div>
</div>
</button>
</div>
);
};
93 changes: 3 additions & 90 deletions src/pages/Events.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,94 +3,7 @@ import { Button } from "@/components/ui/button";
import { Calendar, MapPin, Clock, Users, Sparkles, ArrowRight, Ticket } from "lucide-react";
import { Link } from "react-router-dom";

// PLACEHOLDER: Update all event details as they are finalized
const events = [
{
id: 1,
title: "50th Anniversary Gala Dinner",
description: "The highlight of the weekend! Join us for an elegant formal dinner celebrating 50 years of CSH. Enjoy a delicious meal, keynote speeches from notable alumni, awards ceremony honoring CSH's legacy, and plenty of time to reconnect with friends.",
date: "Saturday, April 11, 2026",
time: "6:00 PM - 11:00 PM",
location: "VENUE", // PLACEHOLDER: Replace with actual venue name
address: "TBD, Rochester, NY", // PLACEHOLDER: Replace with actual address
capacity: "500 guests",
dressCode: "Formal/Black Tie Optional",
isMain: true,
},
{
id: 2,
title: "Welcome Reception",
description: "Kick off the anniversary weekend with a casual welcome reception. Light refreshments will be served as you reconnect with old friends and meet current CSH members.",
date: "Friday, April 10, 2026",
time: "6:00 PM - 8:00 PM",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD", // PLACEHOLDER: Confirm address
capacity: "Open to all attendees",
dressCode: "Casual",
isMain: false,
},
{
id: 3,
title: "CSH Floor Tours",
description: "Take a trip down memory lane or see what CSH looks like today. Guided tours will show you the projects, equipment, and spaces that make CSH special.",
date: "Friday & Saturday",
time: "Various times",
location: "CSH Floor, DSP",
address: "Rochester Institute of Technology",
capacity: "Multiple sessions",
dressCode: "Casual",
isMain: false,
},
{
id: 4,
title: "Alumni Panel Discussions",
description: "Hear from successful CSH alumni about their career journeys, how CSH shaped them, and their advice for current members. Q&A session included.",
date: "Saturday, April 11, 2026",
time: "2:00 PM - 4:00 PM",
location: "TBD",
address: "Rochester Institute of Technology",
capacity: "200 seats",
dressCode: "Smart Casual",
isMain: false,
},
{
id: 5,
title: "Alumni Mixer",
description: "An informal evening gathering for alumni to catch up over drinks. Share stories, reconnect, and make new memories.",
date: "Friday, April 10, 2026",
time: "8:00 PM - Late",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD", // PLACEHOLDER: Confirm address
capacity: "Open to all alumni",
dressCode: "Casual",
isMain: false,
},
{
id: 6,
title: "Farewell Brunch",
description: "Before you head home, join us for a farewell brunch. Last chance to exchange contact info, take group photos, and say your goodbyes.",
date: "Sunday, April 12, 2026",
time: "9:00 AM - 11:00 AM",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD", // PLACEHOLDER: Confirm address
capacity: "Open to all attendees",
dressCode: "Casual",
isMain: false,
},
{
id: 7,
title: "Campus Tours",
description: "Explore RIT campus and see how it has changed since your time here. Visit new buildings, facilities, and learn about the university's growth.",
date: "Saturday, April 11, 2026",
time: "10:00 AM - 12:00 PM",
location: "Meet at TBD", // PLACEHOLDER: Confirm meeting point
address: "Rochester Institute of Technology",
capacity: "Multiple groups",
dressCode: "Casual (comfortable walking shoes)",
isMain: false,
},
];

import { events } from "./EventsData";

const Events = () => {
return (
Expand Down Expand Up @@ -136,7 +49,7 @@ const Events = () => {
{/* Main Event Highlight */}
<section className="py-12">
<div className="container mx-auto px-4">
{events.filter(e => e.isMain).map(event => (
{events.filter(e => e.type.toLowerCase() == "main").map(event => (
<div key={event.id} className="glass rounded-3xl p-8 md:p-12 border-2 border-primary/30 glow-csh">
<div className="flex items-center gap-2 mb-4">
<Sparkles className="w-5 h-5 text-csh-magenta" />
Expand Down Expand Up @@ -194,7 +107,7 @@ const Events = () => {
</h2>

<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{events.filter(e => !e.isMain).map(event => (
{events.filter(e => (e.type.toLowerCase() != "main")).map(event => (
<div
key={event.id}
className="glass rounded-2xl p-6 hover:scale-[1.02] transition-transform duration-300"
Expand Down
153 changes: 153 additions & 0 deletions src/pages/EventsData.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import { ScheduleEvent } from "./ScheduleEvent";

/**
* Holds the data for events shown on the Schedule Page
*/
export const events: ScheduleEvent[] = [ // PLACEHOLDERS: Update all event times, descriptions, and locations as they are finalized
{
id: 1,
title: "Registration & Check-in",
description: "Pick up your badge, swag bag, and event materials.",
date: "Friday, April 10, 2026",
time: "2:00 PM - 6:00 PM",
location: "CSH Floor, DSP", // PLACEHOLDER: Confirm location
address: "Rochester Institute of Technology",
capacity: "all attendees",
dressCode: "Casual",
type: "activity",
},
{
id: 2,
title: "CSH Floor Tours",
description: "See how CSH has evolved over the years with guided tours of the floor.",
date: "Friday & Saturday",
time: "4:00 PM - 6:00 PM",
location: "CSH Floor, DSP", // PLACEHOLDER: Confirm location
address: "Rochester Institute of Technology",
capacity: "N/A",
dressCode: "N/A",
type: "activity",
},
{
id: 3,
title: "Welcome Reception",
description: "Casual meet and greet with light refreshments. Reconnect with old friends and meet current CSH members!",
date: "Friday, April 10, 2026",
time: "6:00 PM - 8:00 PM",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD",
capacity: "Open to all attendees",
dressCode: "Casual",
type: "social",

},
{
id: 4,
title: "Alumni Mixer",
description: "Informal eventing gathering for alumni to catch up over drinks.",
date: "Friday, April 10, 2026",
time: "8:00 PM - Late",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD",
capacity: "Open to all alumni",
dressCode: "Casual",
type: "social",
},
{
id: 5,
title: "Breakfast",
description: "Start your day with a hearty breakfast and coffee.",
date: "Saturday, April 11, 2026",
time: "8:00 AM - 10:00 AM",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD",
capacity: "Open to all attendees",
dressCode: "Casual",
type: "food",
},
{
id: 6,
title: "Campus Tours",
description: "Explore RIT campus and see how it has changed since your time here. Visit new buildings, facilities, and learn about the university's growth.",
date: "Saturday, April 11, 2026",
time: "10:00 AM - 12:00 PM",
location: "Meet at TBD", // PLACEHOLDER: Confirm meeting point
address: "Rochester Institute of Technology",
capacity: "Multiple groups",
dressCode: "Casual (comfortable walking shoes)",
type: "activity",
},
{
id: 7,
title: "Open House",
description: "Drop by CSH throughout the day for demos, projects, and socializing.",
date: "Saturday, April 11, 2026",
time: "10:00 AM - 4:00 PM",
location: "CSH Floor, DSP", // PLACEHOLDER: Confirm location
address: "TBD",
capacity: "Open to all attendees",
dressCode: "Casual",
type: "activity",
},
{
id: 8,
title: "Lunch",
description: "Grab lunch and continue catching up with fellow CSHers.",
date: "Saturday, April 11, 2026",
time: "12:00 PM - 2:00 PM",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD",
capacity: "Open to all attendees",
dressCode: "Casual",
type: "food",

},
{
id: 9,
title: "Panel Discussions / Q&A",
description: "Hear from successful CSH alumni about their career journey, how CSH shaped them, and their advice for current members.",
date: "Saturday, April 11, 2026",
time: "2:00 PM - 4:00 PM",
location: "TBD", // PLACEHOLDER: Confirm location
address: "Rochester Institute of Technology",
capacity: "200 seats",
dressCode: "TBD",
type: "activity",
},
{
id: 10,
title: "50th Anniversary Gala Dinner",
description: "The highlight of the weekend! Join us for an elegant formal dinner celebrating 50 years of CSH. Enjoy a delicious meal, keynote speeches from notable alumni, awards ceremony honoring CSH's legacy, and plenty of time to reconnect with friends.",
date: "Saturday, April 11, 2026",
time: "6:00 PM - 11:00 PM",
location: "VENUE", // PLACEHOLDER: Replace with actual venue name
address: "TBD, Rochester, NY",
capacity: "500 guests",
dressCode: "Formal/Black Tie Optional",
type: "main",
},
{
id: 11,
title: "Farewell Brunch",
description: "Before you head home, join us for a farewell brunch. Last chance to exchange contact info, take group photos, and say your goodbyes.",
date: "Sunday, April 12, 2026",
time: "9:00 AM - 11:00 AM",
location: "TBD", // PLACEHOLDER: Confirm location
address: "TBD",
capacity: "Open to all attendees",
dressCode: "Casual",
type: "food",
},
{
id: 12,
title: "Wrap Up",
description: "Wrap up the weekend, grab your things, and head out.",
date: "Sunday, April 12, 2026",
time: "11:00 AM - 1:00 PM",
location: "CSH Floor, DSP", // PLACEHOLDER: Confirm location
address: "TBD",
capacity: "Open to all attendees",
dressCode: "Casual",
type: "social",
},
]
Loading