From ea07e499e45d8aeef3eaa406daae0387f6733b12 Mon Sep 17 00:00:00 2001 From: ge95bid Date: Sun, 7 Sep 2025 13:17:55 +0200 Subject: [PATCH 1/5] add: GTU Blockchain as community partner --- public/partners/gtub-logo-white.png | Bin 0 -> 62700 bytes sections/Partners.tsx | 6 +++++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 public/partners/gtub-logo-white.png diff --git a/public/partners/gtub-logo-white.png b/public/partners/gtub-logo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..958d51d1478e8e6937cc3d66e2046e528b00ec94 GIT binary patch literal 62700 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

GjiX#gEsF&wzt}-Frq4Wq-76rN-#Nv% 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%0DI>^oQx92bwID|IKZU(A{|+VSo~I>I+Va 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 CdHBl! literal 0 HcmV?d00001 diff --git a/sections/Partners.tsx b/sections/Partners.tsx index 42e02ee..ab454d3 100644 --- a/sections/Partners.tsx +++ b/sections/Partners.tsx @@ -94,13 +94,17 @@ const Partners = () => { { alt: "Frankfurt School", src: "/partners/frankfurt_school_logo.png" }, { alt: "Kryptosphere", src: "/partners/kryptosphere_logo.png" }, { alt: "Superteam Germany", src: "/partners/superteam_de_logo.png" }, - { alt: "Blockchain for Europe", src: "/partners/blockchain_europe_logo.png" }, + { + alt: "Blockchain for Europe", + src: "/partners/blockchain_europe_logo.png", + }, // { alt: "Encode Club", src: "/partners/encode_logo.png" }, { alt: "Blockchain Bayern e.V.", src: "/partners/blockchain_bayern_logo.png", }, { alt: "w3", src: "/partners/w3.png" }, + { alt: "GTU Blockchain", src: "/partners/gtub-logo-white.png" }, // { alt: "UnternehmerTUM", src: "/partners/UnternehmerTUM.png" }, // { alt: "BAF", src: "/partners/baf.png" }, // { alt: "PretzelDAO", src: "/partners/pretzeldao-logo.png" }, From 6d120ddca78ce0334d44053dc52e1deeead5fd0a Mon Sep 17 00:00:00 2001 From: ge95bid Date: Sun, 7 Sep 2025 13:23:47 +0200 Subject: [PATCH 2/5] add: DLT Talents Alumni as community partner and some consistency fix --- public/partners/DLT_Talents_logo.png | Bin 0 -> 12560 bytes ...{gtub-logo-white.png => gtub_logo_white.png} | Bin sections/Partners.tsx | 3 ++- 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 public/partners/DLT_Talents_logo.png rename public/partners/{gtub-logo-white.png => gtub_logo_white.png} (100%) diff --git a/public/partners/DLT_Talents_logo.png b/public/partners/DLT_Talents_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..21fd256f1695e2c6131b3125b6972d14bd9c73b3 GIT binary patch literal 12560 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 { src: "/partners/blockchain_bayern_logo.png", }, { alt: "w3", src: "/partners/w3.png" }, - { alt: "GTU Blockchain", src: "/partners/gtub-logo-white.png" }, + { alt: "GTU Blockchain", src: "/partners/gtub_logo_white.png" }, + { alt: "DLT Talents Alumni", src: "/partners/DLT_Talents_logo.png" }, // { alt: "UnternehmerTUM", src: "/partners/UnternehmerTUM.png" }, // { alt: "BAF", src: "/partners/baf.png" }, // { alt: "PretzelDAO", src: "/partners/pretzeldao-logo.png" }, From 736a27eed2e92f07e4eccddac09ad38761bac4fb Mon Sep 17 00:00:00 2001 From: ge95bid Date: Sun, 7 Sep 2025 14:28:28 +0200 Subject: [PATCH 3/5] fix: colors, new stage, better filter --- app/agenda/agenda.tsx | 42 ++++++++++++++++--- components/service/contentStrapi_static.ts | 2 + components/session/Session.tsx | 49 ++++++++++++---------- 3 files changed, 66 insertions(+), 27 deletions(-) diff --git a/app/agenda/agenda.tsx b/app/agenda/agenda.tsx index f0fd668..d94211d 100644 --- a/app/agenda/agenda.tsx +++ b/app/agenda/agenda.tsx @@ -28,12 +28,14 @@ export const Agenda: React.FC = ({ sessions, speakers }) => { "Stage 2": "Hopper Stage", "Stage 3": "Nakamoto Stage", "Workshop Room": "Lovelace Room", + Gern: "Gern", }; const STAGE_PRIORITY: Record = { "Stage 3": 0, // Nakamoto — highest priority "Stage 1": 1, // Turing "Stage 2": 2, // Hopper + Gern: 2, // Gern "Workshop Room": 3, // Lovelace }; const SAME_TIME_WINDOW_MS = 0 * 60 * 1000; // 5 minutes @@ -56,9 +58,38 @@ export const Agenda: React.FC = ({ sessions, speakers }) => { trackFilter === "all" || !trackFilter || trackFilter === item.track; const matchesStage = stageFilter === "all" || !stageFilter || stageFilter === item.room; - const matchesTitle = - !titleFilter.trim() || - item.title.toLowerCase().includes(titleFilter.trim().toLowerCase()); + + const q = titleFilter.trim().toLowerCase(); + + const speakerTextParts: string[] = []; + const rawSpeakers = (item as any).speakers; + if (rawSpeakers && typeof rawSpeakers === "object") { + speakerTextParts.push( + ...Object.keys(rawSpeakers).map((x) => String(x)), + ...Object.values(rawSpeakers).map((x) => String(x)), + ); + } + + const searchableChunks = [ + item.title, + (item as any).subtitle, + (item as any).description, + (item as any).abstract, + (item as any).summary, + item.track, + item.room, + ...(Array.isArray((item as any).tags) ? (item as any).tags : []), + ...(Array.isArray((item as any).keywords) + ? (item as any).keywords + : []), + ...speakerTextParts, + ] + .filter(Boolean) + .map((x) => String(x).toLowerCase()); + + const haystack = searchableChunks.join(" | "); + + const matchesTitle = !q || haystack.includes(q); return matchesDay && matchesTrack && matchesStage && matchesTitle; }); @@ -97,13 +128,13 @@ export const Agenda: React.FC = ({ sessions, speakers }) => {

- Title + Search setTitleFilter(e.target.value)} - placeholder="Search agenda titles..." + placeholder="Titles, speakers, descriptions…" className="w-full rounded-lg text-white border py-2 px-3 bg-black placeholder-gray-500" />
@@ -209,6 +240,7 @@ export const Agenda: React.FC = ({ sessions, speakers }) => { track === "Regulation" && "bg-red-400", track === "Workshop" && "bg-purple-400", track === "Application" && "bg-teal-400", + track === "Academic Forum" && "bg-orange-400", )} /> {track} diff --git a/components/service/contentStrapi_static.ts b/components/service/contentStrapi_static.ts index 383bb1c..a04a99e 100644 --- a/components/service/contentStrapi_static.ts +++ b/components/service/contentStrapi_static.ts @@ -63,6 +63,7 @@ export const Tracks = [ "Regulation", "Workshop", "TUM Blockchain Club", + "Academic Forum", // "Sub Events", // "TUM Blockchain Club", ] as const; @@ -72,6 +73,7 @@ export const Stages = [ "Stage 2", "Stage 3", "Workshop Room", + "Gern", ] as const; export interface Session { diff --git a/components/session/Session.tsx b/components/session/Session.tsx index df44062..2f15ca2 100644 --- a/components/session/Session.tsx +++ b/components/session/Session.tsx @@ -63,14 +63,15 @@ export const Session = React.forwardRef( {...divProps} className={classNames( className, - "border w-full flex p-4 flex-col gap-4 bg-gradient-to-b from-black bg-opacity-60", + "border w-full flex p-4 flex-col gap-4 bg-gradient-to-b bg-opacity-60 from-black from-0% via-black via-30% ", { - "to-[#14532d]/60": session.track === "Education", // Dark forest green - "to-[#665200]/60": session.track === "Research", // Deep gold-brown - "to-[#1e3a8a]/40": session.track === "Ecosystem", // Deep blue (Tailwind blue-900) - "to-[#4c0608]/60": session.track === "Regulation", // Deep red / oxblood - "to-[#1a012e]": session.track === "Workshop", // Very dark purple - "to-[#134e4a]/60": session.track === "Application", // Teal-950 (deep cyan-green) + "to-[#06b6d4]/40 to-100%": session.track === "Application", // Cyan + "to-[#1e3a8a]/40 to-100%": session.track === "Ecosystem", // Blue + "to-[#15803d]/40 to-100%": session.track === "Education", // Green + "to-[#7a6a00]/50 to-100%": session.track === "Research", // Olive / brass + "to-[#b91c1c]/40 to-100%": session.track === "Regulation", // Red + "to-[#7c3aed]/30 to-100%": session.track === "Workshop", // Purple + "to-[#f97316]/30 to-100%": session.track === "Academic Forum", // Orange }, )} ref={ref} @@ -111,25 +112,28 @@ export const Session = React.forwardRef( className={classNames( "border rounded-[5px] h-fit col-start-2", { - "border-green-400": session.track === "Education", - "border-yellow-400": session.track === "Research", - "border-blue-400": session.track === "Ecosystem", - "border-amber": session.track === "Research", - "border-[#F87171]": session.track === "Regulation", - "border-[#c084fc]": session.track === "Workshop", - "border-teal-400": session.track === "Application", + "border-[#22d3ee]": session.track === "Application", // Lighter cyan + "border-[#60a5fa]": session.track === "Ecosystem", // Lighter blue + "border-[#4ade80]": session.track === "Education", // Lighter green + "border-[#fde047]": session.track === "Research", // Lighter yellow + "border-[#f87171]": session.track === "Regulation", // Lighter red + "border-[#c4b5fd]": session.track === "Workshop", // Lighter purple + "border-[#fdba74]": session.track === "Academic Forum", // Lighter orange + "gradient-border": + session.track === "TUM Blockchain Club", // Gradient for TBC }, )} > {session.track === "TUM Blockchain Club" @@ -266,9 +270,10 @@ export const Session = React.forwardRef( src={details.profile_photo?.url || ""} loader={contentfulImageLoader} alt={details.name} - width={48} - height={48} + width={60} + height={60} className="rounded-full object-cover" + quality={100} /> )} From eb25bba5bb14452e3fb8cd77d6ba8766553c9c11 Mon Sep 17 00:00:00 2001 From: ge95bid Date: Sun, 7 Sep 2025 17:31:52 +0200 Subject: [PATCH 4/5] fix: update submission deadlines and improve text formatting; remove partner logo --- app/academic-forum/page.tsx | 71 ++++++++++++++------- app/agenda/agenda.tsx | 47 +++++++------- components/header/Header.tsx | 17 ++--- components/service/contentStrapi_static.ts | 3 +- components/session/Session.tsx | 65 +++++++++++-------- public/partners/gtub_logo_white.png | Bin 62700 -> 0 bytes sections/Partners.tsx | 2 +- 7 files changed, 123 insertions(+), 82 deletions(-) delete mode 100644 public/partners/gtub_logo_white.png diff --git a/app/academic-forum/page.tsx b/app/academic-forum/page.tsx index 7e02c58..9cdc134 100755 --- a/app/academic-forum/page.tsx +++ b/app/academic-forum/page.tsx @@ -27,9 +27,9 @@ export default function PaperSubmission() {
- + Knowledge Partner: IEEE Blockchain - +
@@ -38,12 +38,15 @@ export default function PaperSubmission() {
- Submission Deadline: August 11, 2025 (23:59 CEST) August 20, 2025 (23:59 CEST) + Submission Deadline:{" "} + August 11, 2025 (23:59 CEST) August 20, 2025 (23:59 + CEST)
- Acceptance Notification: August 15, 2025 August 22, 2025 + Acceptance Notification: August 15, 2025{" "} + August 22, 2025
@@ -53,7 +56,8 @@ export default function PaperSubmission() {
- Academic Track Date: September 12, 2025 + Academic Track Date: September 11, 2025; 13:30 - 17:45 + CEST
@@ -61,12 +65,8 @@ export default function PaperSubmission() { Venue: House of Communication, Munich, Germany
- - @@ -77,10 +77,24 @@ export default function PaperSubmission() {
- We are delighted to announce the Call for Extended Abstracts for the Academic Forum at the 2025 TUM Blockchain Conference. The Academic Forum is hosted in collaboration with the TUM Chair of Network Architectures and Services. We are happy to have IEEE Blockchain as a Knowledge partner inviting selected works for a submission to IEEE Blockchain Technical Briefs. The selected abstracts will be offered to present their work in form of a short talk and/or a poster presentation. + We are delighted to announce the Call for Extended Abstracts for + the Academic Forum at the 2025 TUM Blockchain Conference. The + Academic Forum is hosted in collaboration with the TUM Chair of + Network Architectures and Services. We are happy to have IEEE + Blockchain as a Knowledge partner inviting selected works for a + submission to IEEE Blockchain Technical Briefs. The selected + abstracts will be offered to present their work in form of a + short talk and/or a poster presentation.

- This event invites researchers, academics, and industry professionals to connect and present their latest work in the topics related to the Science of Blockchains. Accepted talks will be showcased through a short presentation at the conference and displayed as posters in the conference area. The posters will remain on display for the entire day of the event, offering an excellent platform for in-depth discussions and networking opportunities. + This event invites researchers, academics, and industry + professionals to connect and present their latest work in the + topics related to the Science of Blockchains. Accepted talks + will be showcased through a short presentation at the conference + and displayed as posters in the conference area. The posters + will remain on display for the entire day of the event, offering + an excellent platform for in-depth discussions and networking + opportunities.
@@ -198,12 +212,8 @@ export default function PaperSubmission() {
- - @@ -212,7 +222,8 @@ export default function PaperSubmission() {
- Abstracts will be reviewed by the listed committee. Accepted papers will be invited to present their work at the conference. + Abstracts will be reviewed by the listed committee. Accepted + papers will be invited to present their work at the conference.
@@ -278,10 +289,22 @@ export default function PaperSubmission() { style={{ listStyleType: "circle" }} className="pl-5 space-y-2" > -
  • Jonas Gebele, TUM, Chair of Software Engineering for Business Information Systems
  • -
  • Burak Oez, TUM, Chair of Software Engineering for Business Information Systems
  • -
  • Fabian Stiehle, TUM, Information System Development and Operation
  • -
  • Kilian Glas, TUM, Chair of Network Architectures and Services
  • +
  • + Jonas Gebele, TUM, Chair of Software Engineering for + Business Information Systems +
  • +
  • + Burak Oez, TUM, Chair of Software Engineering for Business + Information Systems +
  • +
  • + Fabian Stiehle, TUM, Information System Development and + Operation +
  • +
  • + Kilian Glas, TUM, Chair of Network Architectures and + Services +
  • diff --git a/app/agenda/agenda.tsx b/app/agenda/agenda.tsx index d94211d..e7149d0 100644 --- a/app/agenda/agenda.tsx +++ b/app/agenda/agenda.tsx @@ -37,6 +37,7 @@ export const Agenda: React.FC = ({ sessions, speakers }) => { "Stage 2": 2, // Hopper Gern: 2, // Gern "Workshop Room": 3, // Lovelace + "Lab lounge": 0, // Lab lounge }; const SAME_TIME_WINDOW_MS = 0 * 60 * 1000; // 5 minutes @@ -223,29 +224,29 @@ export const Agenda: React.FC = ({ sessions, speakers }) => { /> Any Track - {Tracks.filter( - (track) => track !== "TUM Blockchain Club", - ).map((track, index) => ( - - - {track} - - ))} + {Tracks.filter((track) => track !== "TBC'25").map( + (track, index) => ( + + + {track} + + ), + )} diff --git a/components/header/Header.tsx b/components/header/Header.tsx index 98e3b29..6cb0083 100644 --- a/components/header/Header.tsx +++ b/components/header/Header.tsx @@ -23,15 +23,15 @@ type HeaderLink = { const links: HeaderLink[] = [ { label: "Home", link: "/", showsAtHome: true }, - { label: "Manifesto", link: "/#manifesto", showsAtHome: true }, + // { label: "Manifesto", link: "/#manifesto", showsAtHome: true }, { label: "Speakers", link: "/speakers", showsAtHome: true }, { label: "Sponsors", link: "/#sponsors", showsAtHome: true }, { label: "Academic Forum", link: "/academic-forum", showsAtHome: true }, - { - label: "Apply as Speaker", - link: "https://tally.so/r/w8EB0o", - showsAtHome: true, - }, + // { + // label: "Apply as Speaker", + // link: "https://tally.so/r/w8EB0o", + // showsAtHome: true, + // }, { label: "Side Events", link: "/side-events", showsAtHome: true }, { label: "Agenda", link: "/agenda", showsAtHome: true }, // { label: "Workshops", link: "/workshops", showsAtHome: true }, @@ -88,13 +88,14 @@ export const Sidebar: React.FC = ({ isOpen, onClose }) => { const PRIORITY: string[] = [ "Home", - "Manifesto", + // "Manifesto", "Speakers", "Sponsors", "Academic Forum", "Side Events", "Agenda", - "Apply as Speaker", + "Workshops", + // "Apply as Speaker", ]; function NavDesktop({ items }: { items: HeaderLink[] }) { diff --git a/components/service/contentStrapi_static.ts b/components/service/contentStrapi_static.ts index a04a99e..5c1f67d 100644 --- a/components/service/contentStrapi_static.ts +++ b/components/service/contentStrapi_static.ts @@ -62,7 +62,7 @@ export const Tracks = [ "Research", "Regulation", "Workshop", - "TUM Blockchain Club", + "TBC'25", "Academic Forum", // "Sub Events", // "TUM Blockchain Club", @@ -74,6 +74,7 @@ export const Stages = [ "Stage 3", "Workshop Room", "Gern", + "Lab Lounge", ] as const; export interface Session { diff --git a/components/session/Session.tsx b/components/session/Session.tsx index 2f15ca2..dd880c5 100644 --- a/components/session/Session.tsx +++ b/components/session/Session.tsx @@ -11,7 +11,7 @@ import { ClockIcon, SewingPinIcon } from "@radix-ui/react-icons"; import classNames from "classnames"; import Image from "next/image"; import Link from "next/link"; -import React, { useEffect, useRef, useState } from "react"; +import React, { useRef, useState, useLayoutEffect } from "react"; import { contentfulImageLoader } from "@/util/contentfulImageLoader"; import { Clock, MapPin } from "lucide-react"; export type SessionElement = React.ElementRef<"div">; @@ -27,32 +27,50 @@ export const Session = React.forwardRef( const [isLineClampClamped, setIsLineClampClamped] = useState(false); const lineClampRef = useRef(null); - const [active, setActive] = useState(false); - useEffect(() => { - const checkLineClamping = () => { - if (lineClampRef.current) { - const lineClampElement = lineClampRef.current; - setIsLineClampClamped( - lineClampElement.scrollHeight > lineClampElement.clientHeight, - ); - } + const { startTime, endTime } = { + startTime: new Date(session.startTime), + endTime: new Date(session.endTime), + }; + + const LINES = 3; // number of lines to clamp to + + useLayoutEffect(() => { + const measure = () => { + const el = lineClampRef.current; + if (!el) return; + + // remember whether the clamp class is applied + const hadClamp = el.classList.contains(`line-clamp-${LINES}`); + + // temporarily disable clamping to get the real height + el.classList.remove(`line-clamp-${LINES}`); + el.classList.add("line-clamp-none"); + + const cs = window.getComputedStyle(el); + const lineHeight = parseFloat(cs.lineHeight); + const fullHeight = el.getBoundingClientRect().height; + const maxHeight = lineHeight * LINES; + + // restore original class + el.classList.remove("line-clamp-none"); + if (hadClamp) el.classList.add(`line-clamp-${LINES}`); + + setIsLineClampClamped(fullHeight > maxHeight + 0.5); }; - checkLineClamping(); + // measure now and on the next frame (in case layout settles) + measure(); + const raf = requestAnimationFrame(measure); - // Re-check on window resize - window.addEventListener("resize", checkLineClamping); + const onResize = () => measure(); + window.addEventListener("resize", onResize); return () => { - window.removeEventListener("resize", checkLineClamping); + cancelAnimationFrame(raf); + window.removeEventListener("resize", onResize); }; - }, [lineClampRef]); - - const { startTime, endTime } = { - startTime: new Date(session.startTime), - endTime: new Date(session.endTime), - }; + }, []); const speakerMap = new Map( speakers.map((sp) => [sp.name.toLowerCase().trim(), sp]), @@ -119,8 +137,7 @@ export const Session = React.forwardRef( "border-[#f87171]": session.track === "Regulation", // Lighter red "border-[#c4b5fd]": session.track === "Workshop", // Lighter purple "border-[#fdba74]": session.track === "Academic Forum", // Lighter orange - "gradient-border": - session.track === "TUM Blockchain Club", // Gradient for TBC + "gradient-border": session.track === "TBC'25", // Gradient for TBC }, )} > @@ -136,9 +153,7 @@ export const Session = React.forwardRef( "text-[#fdba74]": session.track === "Academic Forum", // Lighter orange })} > - {session.track === "TUM Blockchain Club" - ? "TBC" - : session.track} + {session.track}
    )} diff --git a/public/partners/gtub_logo_white.png b/public/partners/gtub_logo_white.png deleted file mode 100644 index 958d51d1478e8e6937cc3d66e2046e528b00ec94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62700 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

    GjiX#gEsF&wzt}-Frq4Wq-76rN-#Nv% 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%0DI>^oQx92bwID|IKZU(A{|+VSo~I>I+Va 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 CdHBl! diff --git a/sections/Partners.tsx b/sections/Partners.tsx index 2e0f1b2..5e7a525 100644 --- a/sections/Partners.tsx +++ b/sections/Partners.tsx @@ -104,7 +104,7 @@ const Partners = () => { src: "/partners/blockchain_bayern_logo.png", }, { alt: "w3", src: "/partners/w3.png" }, - { alt: "GTU Blockchain", src: "/partners/gtub_logo_white.png" }, + // { alt: "GTU Blockchain", src: "/partners/gtub_logo_white.png" }, { alt: "DLT Talents Alumni", src: "/partners/DLT_Talents_logo.png" }, // { alt: "UnternehmerTUM", src: "/partners/UnternehmerTUM.png" }, // { alt: "BAF", src: "/partners/baf.png" }, From 0d2632c7b4b780ef93c1f57f56c6a79ba9689190 Mon Sep 17 00:00:00 2001 From: ge95bid Date: Sun, 7 Sep 2025 20:02:57 +0200 Subject: [PATCH 5/5] add: workshop page --- app/workshops/page.tsx | 27 +++- components/header/Header.tsx | 2 +- components/service/contentStrapi.ts | 97 ++++++++++++++ components/workshops/WorkshopItem.tsx | 136 ++++++++++++++++---- components/workshops/WorkshopsContainer.tsx | 36 ++++-- constants/WorkshopData.tsx | 106 ++++++++------- 6 files changed, 317 insertions(+), 87 deletions(-) diff --git a/app/workshops/page.tsx b/app/workshops/page.tsx index ee75ece..cf224f2 100644 --- a/app/workshops/page.tsx +++ b/app/workshops/page.tsx @@ -4,13 +4,28 @@ import { Container } from "@/components/container"; import { Text } from "@/components/text"; import { WorkshopsContainer } from "@/components/workshops/WorkshopsContainer"; import { workshopItems } from "@/constants/WorkshopData"; +import { fetchWorkshops, Workshop } from "@/components/service/contentStrapi"; + +export default async function Workshops() { + const workshops: Workshop[] = await fetchWorkshops(); + + const items = workshops.map((e) => ({ + title: e.title, + description: e.description, + backgroundImg: e.backgroundImg?.url || "/workshops/default-workshop.png", + url: e.url, + starttime: e.starttime, + endtime: e.endtime, + room: e.room, + })); -const Workshops = async () => { return (

    - -
    + +
    { > Workshops - +
    ); -}; - -export default Workshops; +} diff --git a/components/header/Header.tsx b/components/header/Header.tsx index 6cb0083..fb65a59 100644 --- a/components/header/Header.tsx +++ b/components/header/Header.tsx @@ -34,7 +34,7 @@ const links: HeaderLink[] = [ // }, { label: "Side Events", link: "/side-events", showsAtHome: true }, { label: "Agenda", link: "/agenda", showsAtHome: true }, - // { label: "Workshops", link: "/workshops", showsAtHome: true }, + { label: "Workshops", link: "/workshops", showsAtHome: true }, // { label: "Student Grants", link: "#grants", showsAtHome: true }, // { label: "FAQ", link: "#faq", showsAtHome: true }, ]; diff --git a/components/service/contentStrapi.ts b/components/service/contentStrapi.ts index a115f01..699c53b 100644 --- a/components/service/contentStrapi.ts +++ b/components/service/contentStrapi.ts @@ -92,6 +92,21 @@ export interface SideEvent { image?: ProfilePicture | null; } +export interface Workshop { + id: number; + documentId: string; + title: string; + description: string; + url: string; + backgroundImg: ProfilePicture | null; + room: string; + starttime: string; + endtime: string; + createdAt: string; + updatedAt: string; + publishedAt: string; +} + export default Speaker; const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); @@ -277,3 +292,85 @@ const downloadSideEventImage = async (event: SideEvent) => { ); } }; + +export const fetchWorkshops = async (): Promise => { + const token = process.env.STRAPI_API_TOKEN; + if (!token) { + console.warn("STRAPI_API_TOKEN missing; returning empty workshops list"); + return []; + } + + try { + const workshops: Workshop[] = []; + let hasMore = true; + let page = 1; + do { + const res = await axios.get( + `https://strapi.rbg.tum-blockchain.com/api/workshop-25s?sort=starttime:asc&pagination[page]=${page}&pagination[pageSize]=25&populate=backgroundImg`, + { + headers: { + Authorization: `Bearer ${token}`, + }, + }, + ); + const pageData: Workshop[] = res.data.data; + for (const workshop of pageData) { + await downloadWorkshopImage(workshop); + delay(300); + } + workshops.push(...pageData); + hasMore = + res.data.meta.pagination.page < res.data.meta.pagination.pageCount; + page = page + 1; + console.log(`Fetched ${workshops.length} workshops so far...`); + } while (hasMore); + return workshops; + } catch (err) { + console.error("Error fetching workshops from Strapi:", err); + return []; + } +}; + +const downloadWorkshopImage = async (workshop: Workshop) => { + if (!workshop.backgroundImg || !workshop.backgroundImg.url) { + console.warn(`No background image for workshop: ${workshop.title}`); + return; + } + + try { + const dir = path.join(process.cwd(), "public", "workshops25"); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + + const ext = workshop.backgroundImg.ext || ".webp"; + const fileName = `${workshop.documentId}${ext}`; + const filePath = path.join(dir, fileName); + if (!fs.existsSync(filePath)) { + const res = await axios({ + url: + "https://strapi.rbg.tum-blockchain.com" + workshop.backgroundImg.url, + method: "GET", + responseType: "stream", + }); + const writer = fs.createWriteStream(filePath); + res.data.pipe(writer); + await new Promise((resolve, reject) => { + writer.on("finish", () => resolve()); + writer.on("error", reject); + }); + console.log( + `Downloaded workshop image for ${workshop.title} to ${filePath}`, + ); + const publicUrl = `/workshops25/${fileName}`; + workshop.backgroundImg.url = publicUrl; + } else { + workshop.backgroundImg.url = `/workshops25/${fileName}`; + } + } catch (error) { + console.error( + `Error downloading image for workshop ${workshop.title}:`, + error, + ); + } +}; diff --git a/components/workshops/WorkshopItem.tsx b/components/workshops/WorkshopItem.tsx index 6572a3c..88fa34b 100644 --- a/components/workshops/WorkshopItem.tsx +++ b/components/workshops/WorkshopItem.tsx @@ -1,56 +1,148 @@ "use client"; -import { Text } from "@/components/text"; +import React from "react"; import classNames from "classnames"; import Image from "next/image"; import NextLink from "next/link"; -import React from "react"; -import { Button } from "../button"; +import { Text } from "@/components/text"; +import { Button } from "@/components/button"; interface WorkshopModel { title: string; - bgImage: string; - description: string; url: string; + description: string; + backgroundImg: string; + starttime: string; // ISO preferred + endtime: string; // ISO preferred + room: string; } -type WorkshopElement = React.ElementRef<"div">; -export type WorkshopProps = React.ComponentPropsWithoutRef<"div"> & +type WorkshopElement = React.ElementRef<"article">; +export type WorkshopProps = React.ComponentPropsWithoutRef<"article"> & WorkshopModel; -export const Workshop = React.forwardRef( +export const WorkshopItem = React.forwardRef( (props, ref) => { - const { className, bgImage, title, description, url, ...restProps } = props; + const { + className, + title, + description, + url, + backgroundImg, + room, + starttime, + endtime, + ...restProps + } = props; + + // ---------- Time formatting (Europe/Berlin) without “um” ---------- + const start = new Date(starttime); + const end = new Date(endtime); + const valid = !isNaN(start.getTime()) && !isNaN(end.getTime()); + + const dateOnlyOpts: Intl.DateTimeFormatOptions = { + timeZone: "Europe/Berlin", + weekday: "long", + month: "long", + day: "numeric", + }; + const timeOnlyOpts: Intl.DateTimeFormatOptions = { + timeZone: "Europe/Berlin", + hour: "2-digit", + minute: "2-digit", + }; + const keyOpts: Intl.DateTimeFormatOptions = { + timeZone: "Europe/Berlin", + year: "numeric", + month: "2-digit", + day: "2-digit", + }; + + const sameDay = + valid && + new Intl.DateTimeFormat("en-CA", keyOpts).format(start) === + new Intl.DateTimeFormat("en-CA", keyOpts).format(end); + + // DST label + const isBerlinDST = (d: Date) => { + const y = d.getUTCFullYear(); + const lastMarch = new Date(Date.UTC(y, 3, 0)); + const lastSundayMarch = lastMarch.getUTCDate() - lastMarch.getUTCDay(); + const dstStartUTC = new Date(Date.UTC(y, 2, lastSundayMarch, 1, 0, 0)); + const lastOct = new Date(Date.UTC(y, 10, 0)); + const lastSundayOct = lastOct.getUTCDate() - lastOct.getUTCDay(); + const dstEndUTC = new Date(Date.UTC(y, 9, lastSundayOct, 1, 0, 0)); + return ( + d.getTime() >= dstStartUTC.getTime() && + d.getTime() < dstEndUTC.getTime() + ); + }; + const tzLabel = valid ? (isBerlinDST(start) ? "CEST" : "CET") : ""; + + const fmtDate = (d: Date) => d.toLocaleDateString(undefined, dateOnlyOpts); + const fmtTime = (d: Date) => d.toLocaleTimeString([], timeOnlyOpts); + + const dateDisplay = valid + ? sameDay + ? // e.g. "Thursday, September 11 | 10:30 – 11:30 CEST" + `${fmtDate(start)} | ${fmtTime(start)} – ${fmtTime(end)} ${tzLabel}` + : // e.g. "Thursday, September 11 10:30 – Friday, September 12 17:15 CEST" + `${fmtDate(start)} ${fmtTime(start)} – ${fmtDate(end)} ${fmtTime(end)} ${tzLabel}` + : ""; + + // --------------------------------------------------------------- + return ( -
    -
    +
    {title}
    - + + {title} - - {description} - + + {(dateDisplay || room) && ( + + {[dateDisplay, room].filter(Boolean).join(" • ")} + + )} + +
    + + {description} + +
    + - -
    + ); }, ); -Workshop.displayName = "Workshop"; + +WorkshopItem.displayName = "WorkshopItem"; diff --git a/components/workshops/WorkshopsContainer.tsx b/components/workshops/WorkshopsContainer.tsx index 1ff868c..3ac58c9 100644 --- a/components/workshops/WorkshopsContainer.tsx +++ b/components/workshops/WorkshopsContainer.tsx @@ -1,31 +1,39 @@ -"use client"; +// components/workshops/WorkshopsContainer.tsx +// Note: no "use client" — this stays server-rendered unless you add filters later. import React from "react"; -import { Workshop } from "./WorkshopItem"; +import { WorkshopItem } from "./WorkshopItem"; -export interface WorkshopItem { +export interface WorkshopItemModel { title: string; url: string; description: string; backgroundImg: string; + starttime: string; + endtime: string; + room: string; } export interface WorkshopProps { - items: WorkshopItem[]; + items: WorkshopItemModel[]; } export const WorkshopsContainer: React.FC = ({ items }) => { return ( - <> - {items.map((item, index) => ( - +
      + {items.map((item, idx) => ( +
    • + +
    • ))} - +
    ); }; diff --git a/constants/WorkshopData.tsx b/constants/WorkshopData.tsx index 1ae46d0..ba3a91c 100644 --- a/constants/WorkshopData.tsx +++ b/constants/WorkshopData.tsx @@ -1,53 +1,73 @@ +import { title } from "process"; + export const workshopItems = [ + // { + // title: "Solana Superteam Ideathon", + // url: "https://apply.tum-blockchain.com/solana-superteam-ideathon", + // description: + // "Join us for a half-day Ideathon — whether you're new to blockchain or an experienced dev, this Ideathon will be the perfect platform to explore new concepts, collaborate with like-minded individuals, and bring your ideas to life.", + // backgroundImg: "/workshops/solana-workshop.png", + // }, + // { + // title: "XRP Ledger: Everything Is a Payment Away", + // url: "https://apply.tum-blockchain.com/xrpl-workshop", + // description: + // "A hands-on guide to the XRP Ledger, how to get started on it, and its best use cases", + // backgroundImg: "/workshops/xrpl-workshop.png", + // }, + // { + // title: "SUI Developer Workshop", + // url: "https://apply.tum-blockchain.com/sui-workshop", + // description: + // "Join us for an interactive and engaging workshop designed for developers of all experience levels! Whether you’re new to Sui or already familiar, this session will dive into the Sui object model and equip you with the skills to jumpstart and enhance your journey developing on Sui. You’ll learn practical tips, hands-on techniques, and best practices to confidently build on-chain applications. Come ready to code, collaborate, and leave with a deeper understanding of Move and Sui!", + // backgroundImg: "/workshops/sui-workshop.png", + // }, + // { + // title: + // "Wormhole: Deploying native multichain token with customizable security models", + // url: "https://apply.tum-blockchain.com/wormhole-workshop", + // description: + // "The landscape of blockchain technology is evolving rapidly, with cross-chain interoperability becoming a cornerstone of the future. One significant advancement in this space is the deployment of native multichain tokens. Imagine the ability to configure sophisticated security measures, set precise rate limits at the contract level, and select from a variety of deployment models—all tailored to your specific needs.", + // backgroundImg: "/workshops/wormhole-workshop.png", + // }, + // { + // title: "Introduction to Verus and its Unique DApp Model", + // url: "https://apply.tum-blockchain.com/verus-workshop", + // description: + // "Learn how to accomplish everything that's important on blockchain using software you already know, instead of writing new code in a new language you need to learn: Verus protocol-layer functions vs. smart contract architectures", + // backgroundImg: "/workshops/verus-workshop.png", + // }, + // { + // title: + // "DFINITY: Building Cross-Chain Applications with Ethereum and the Internet Computer", + // url: "https://apply.tum-blockchain.com/dfinity-workshop", + // description: + // "Ethereum is the most popular platform to create decentralized applications in the form of smart contracts. Due to Ethereum's popularity and fee model, executing transactions can be quite costly, which limits its usability for applications that require many low-value transactions. On the other hand, the Internet Computer, a blockchain-based platform for the execution of general-purpose smart contracts, makes it possible to send transactions quickly and cheaply. Is it possible to combine both platforms? The answer is yes! As we will show in this workshop, you can build smart contracts that run on the Internet Computer but interact with Ethereum to generate powerful cross-chain applications.", + // backgroundImg: "/workshops/icp-workshop.png", + // }, + // { + // title: "1inch: Mastering Dapp Development with the 1inch DevPortal", + // url: "https://apply.tum-blockchain.com/1inch-workshop", + // description: + // "Take a dive into 1inch API's and features available on 1inch DevPortal. What are the use-cases for such API's? How to start? - These questions will be answered during the workshop", + // backgroundImg: "/workshops/1inch-workshop.png", + // }, { - title: "Solana Superteam Ideathon", - url: "https://apply.tum-blockchain.com/solana-superteam-ideathon", + title: "Solana Superteam Germany Ideathon", + url: "https://apply.tum-blockchain.com/solana-ideathon", description: "Join us for a half-day Ideathon — whether you're new to blockchain or an experienced dev, this Ideathon will be the perfect platform to explore new concepts, collaborate with like-minded individuals, and bring your ideas to life.", backgroundImg: "/workshops/solana-workshop.png", + room: "Lovelace Room", + time: "Fri · 13:30-15:45", }, { - title: "XRP Ledger: Everything Is a Payment Away", - url: "https://apply.tum-blockchain.com/xrpl-workshop", + title: "Ethereum Research Challenge", + url: "https://apply.tum-blockchain.com/ef-research-challenge", description: - "A hands-on guide to the XRP Ledger, how to get started on it, and its best use cases", - backgroundImg: "/workshops/xrpl-workshop.png", - }, - { - title: "SUI Developer Workshop", - url: "https://apply.tum-blockchain.com/sui-workshop", - description: - "Join us for an interactive and engaging workshop designed for developers of all experience levels! Whether you’re new to Sui or already familiar, this session will dive into the Sui object model and equip you with the skills to jumpstart and enhance your journey developing on Sui. You’ll learn practical tips, hands-on techniques, and best practices to confidently build on-chain applications. Come ready to code, collaborate, and leave with a deeper understanding of Move and Sui!", - backgroundImg: "/workshops/sui-workshop.png", - }, - { - title: - "Wormhole: Deploying native multichain token with customizable security models", - url: "https://apply.tum-blockchain.com/wormhole-workshop", - description: - "The landscape of blockchain technology is evolving rapidly, with cross-chain interoperability becoming a cornerstone of the future. One significant advancement in this space is the deployment of native multichain tokens. Imagine the ability to configure sophisticated security measures, set precise rate limits at the contract level, and select from a variety of deployment models—all tailored to your specific needs.", - backgroundImg: "/workshops/wormhole-workshop.png", - }, - { - title: "Introduction to Verus and its Unique DApp Model", - url: "https://apply.tum-blockchain.com/verus-workshop", - description: - "Learn how to accomplish everything that's important on blockchain using software you already know, instead of writing new code in a new language you need to learn: Verus protocol-layer functions vs. smart contract architectures", - backgroundImg: "/workshops/verus-workshop.png", - }, - { - title: - "DFINITY: Building Cross-Chain Applications with Ethereum and the Internet Computer", - url: "https://apply.tum-blockchain.com/dfinity-workshop", - description: - "Ethereum is the most popular platform to create decentralized applications in the form of smart contracts. Due to Ethereum's popularity and fee model, executing transactions can be quite costly, which limits its usability for applications that require many low-value transactions. On the other hand, the Internet Computer, a blockchain-based platform for the execution of general-purpose smart contracts, makes it possible to send transactions quickly and cheaply. Is it possible to combine both platforms? The answer is yes! As we will show in this workshop, you can build smart contracts that run on the Internet Computer but interact with Ethereum to generate powerful cross-chain applications.", - backgroundImg: "/workshops/icp-workshop.png", - }, - { - title: "1inch: Mastering Dapp Development with the 1inch DevPortal", - url: "https://apply.tum-blockchain.com/1inch-workshop", - description: - "Take a dive into 1inch API's and features available on 1inch DevPortal. What are the use-cases for such API's? How to start? - These questions will be answered during the workshop", - backgroundImg: "/workshops/1inch-workshop.png", + "We appreciate your interest in participating in the Ethereum Foundation's Research Challenge at the TUM Blockchain Conference. In this event, you will explore active research problems in the MEV space, then work in groups (max team size is 5) to develop solutions.", + backgroundImg: "/workshops/solana-workshop.png", + room: "Gern", + time: "Thu · 11:00 until Fri · 13:00", }, ];