From d262b391c9539395e442a92d78313155f68e16c3 Mon Sep 17 00:00:00 2001 From: poyrazavsever Date: Tue, 10 Mar 2026 20:53:31 +0300 Subject: [PATCH] feat: add references and volunteer community sections with detailed content --- app/about/references/page.tsx | 5 ++ app/about/volunteer-community/page.tsx | 5 ++ components/about-content.tsx | 76 +++++++++++++++++++++- components/reference-cards.tsx | 43 ++++++++++++ components/references-detail-content.tsx | 17 +++++ components/references-section.tsx | 37 +---------- components/volunteer-community-content.tsx | 48 ++++++++++++++ data/bookmarks.ts | 52 +++++++++++++++ data/volunteer-community.ts | 55 ++++++++++++++++ 9 files changed, 302 insertions(+), 36 deletions(-) create mode 100644 app/about/references/page.tsx create mode 100644 app/about/volunteer-community/page.tsx create mode 100644 components/reference-cards.tsx create mode 100644 components/references-detail-content.tsx create mode 100644 components/volunteer-community-content.tsx create mode 100644 data/bookmarks.ts create mode 100644 data/volunteer-community.ts diff --git a/app/about/references/page.tsx b/app/about/references/page.tsx new file mode 100644 index 0000000..ae8c172 --- /dev/null +++ b/app/about/references/page.tsx @@ -0,0 +1,5 @@ +import { ReferencesDetailContent } from "@/components/references-detail-content"; + +export default function AboutReferencesPage() { + return ; +} diff --git a/app/about/volunteer-community/page.tsx b/app/about/volunteer-community/page.tsx new file mode 100644 index 0000000..2f2e732 --- /dev/null +++ b/app/about/volunteer-community/page.tsx @@ -0,0 +1,5 @@ +import { VolunteerCommunityContent } from "@/components/volunteer-community-content"; + +export default function AboutVolunteerCommunityPage() { + return ; +} diff --git a/components/about-content.tsx b/components/about-content.tsx index 92b6f04..8e948bd 100644 --- a/components/about-content.tsx +++ b/components/about-content.tsx @@ -1,8 +1,10 @@ "use client"; import Image from "next/image"; -import { Card, Typography } from "poyraz-ui/atoms"; +import Link from "next/link"; +import { Badge, Card, Typography } from "poyraz-ui/atoms"; import { Sheet, SheetContent, SheetTitle, SheetTrigger } from "poyraz-ui/molecules"; +import { BOOKMARKS } from "@/data/bookmarks"; import { certificates } from "@/data/certificates"; import { EDUCATION } from "@/data/education"; import { EXPERIENCE } from "@/data/experience"; @@ -118,6 +120,78 @@ export function AboutContent() { + +
+ + + + References + + + Open the full reference list in a dedicated detail page. + + + + + + + + Volunteer & Community + + + Timeline and contribution details in a separate detail page. + + + + + + + + + + + Bookmarks +
+ {BOOKMARKS.map((item) => ( + +
+ + {item.title} + + + {item.tag} + +
+ + {item.description} + + + {item.href.replace("https://", "")} + +
+ ))} +
+
+
+
); } diff --git a/components/reference-cards.tsx b/components/reference-cards.tsx new file mode 100644 index 0000000..93d1bdd --- /dev/null +++ b/components/reference-cards.tsx @@ -0,0 +1,43 @@ +import Link from "next/link"; +import { TestimonialCard } from "poyraz-ui/molecules"; +import { REFERENCES } from "@/data/references"; + +type ReferenceCardsProps = { + className?: string; +}; + +export function ReferenceCards({ className }: ReferenceCardsProps) { + return ( +
+ {REFERENCES.map((item) => { + const card = ( + + ); + + if (!item.profileHref) { + return
{card}
; + } + + return ( + + {card} + + ); + })} +
+ ); +} diff --git a/components/references-detail-content.tsx b/components/references-detail-content.tsx new file mode 100644 index 0000000..4faa055 --- /dev/null +++ b/components/references-detail-content.tsx @@ -0,0 +1,17 @@ +import Link from "next/link"; +import { ReferenceCards } from "@/components/reference-cards"; + +export function ReferencesDetailContent() { + return ( +
+ + {"<- Back to about"} + + + +
+ ); +} diff --git a/components/references-section.tsx b/components/references-section.tsx index 6ac1b66..64edfe5 100644 --- a/components/references-section.tsx +++ b/components/references-section.tsx @@ -1,45 +1,12 @@ "use client"; -import Link from "next/link"; -import { TestimonialCard } from "poyraz-ui/molecules"; -import { REFERENCES } from "@/data/references"; +import { ReferenceCards } from "@/components/reference-cards"; export function ReferencesSection() { return (
-
-
- {REFERENCES.map((item) => { - const card = ( - - ); - - if (!item.profileHref) { - return
{card}
; - } - - return ( - - {card} - - ); - })} -
+
+ ); +} diff --git a/data/bookmarks.ts b/data/bookmarks.ts new file mode 100644 index 0000000..fb12b84 --- /dev/null +++ b/data/bookmarks.ts @@ -0,0 +1,52 @@ +export type BookmarkItem = { + id: string; + title: string; + href: string; + description: string; + tag: string; +}; + +export const BOOKMARKS: BookmarkItem[] = [ + { + id: "bookmark-poyraz-ui", + title: "Poyraz UI", + href: "https://ui.poyrazavsever.com", + description: "Component docs and examples for the design system used in this portfolio.", + tag: "UI Kit", + }, + { + id: "bookmark-reactive-switcher", + title: "Reactive Switcher", + href: "https://reactive-switcher.vercel.app", + description: "Theme switching package docs for scalable light and dark mode setup.", + tag: "Theming", + }, + { + id: "bookmark-next-docs", + title: "Next.js Docs", + href: "https://nextjs.org/docs", + description: "Official App Router and rendering strategy reference.", + tag: "Framework", + }, + { + id: "bookmark-tailwind-docs", + title: "Tailwind CSS Docs", + href: "https://tailwindcss.com/docs", + description: "Utility classes and token customization reference.", + tag: "CSS", + }, + { + id: "bookmark-vercel", + title: "Vercel", + href: "https://vercel.com/docs", + description: "Deployment and performance optimization references.", + tag: "Deploy", + }, + { + id: "bookmark-github", + title: "GitHub", + href: "https://github.com/poyrazavsever", + description: "Open-source repositories and shipped experiments.", + tag: "Profile", + }, +]; diff --git a/data/volunteer-community.ts b/data/volunteer-community.ts new file mode 100644 index 0000000..7a32e72 --- /dev/null +++ b/data/volunteer-community.ts @@ -0,0 +1,55 @@ +export type VolunteerCommunityItem = { + id: string; + title: string; + timeline: string; + link?: string; + focus: string; +}; + +export const VOLUNTEER_COMMUNITY_ITEMS: VolunteerCommunityItem[] = [ + { + id: "youtube", + title: "YouTube", + timeline: "2025 - Present", + link: "https://youtube.com/@poyrazavsever", + focus: + "Publishing creator economy breakdowns and tutorials to help new devs ship their first projects.", + }, + { + id: "instagram", + title: "Instagram", + timeline: "2025 - Present", + link: "https://instagram.com/poyrazavsever", + focus: + "Sharing behind-the-scenes workflow notes and short-form content tips for junior creatives.", + }, + { + id: "ostim-debate-club", + title: "Ostim Debate Club", + timeline: "2024 - Present", + link: "https://ostimmunazara.com", + focus: "Moderating weekly debate sessions and keeping the website content updated.", + }, + { + id: "huawei-student-developers", + title: "Huawei Student Developers", + timeline: "2025 - 2026", + link: "https://hsdostim.tech", + focus: + "Organizing campus events around Huawei's developer tooling and mentoring first-time contributors.", + }, + { + id: "google-developer-student-club", + title: "Google Developer Student Club", + timeline: "2025 - 2025", + focus: + "Served as an event facilitator for one term, covering Flutter basics and Firebase quickstarts.", + }, + { + id: "ottoqa-technology-team", + title: "Ottoqa Technology Team", + timeline: "2024 - Present", + focus: + "Supporting robotics and embedded systems experiments with documentation and prototype reviews.", + }, +];