# seanneskie/seanne-portfolio architecture

> Architecture diagram of the GitHub repository seanneskie/seanne-portfolio, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/seanneskie/seanne-portfolio
- Repository: https://github.com/seanneskie/seanne-portfolio

## Overview

This repository appears to be a personal portfolio site: visitors browse profile, career, services, travel, and project-showcase content, including reusable project-detail pages. The tree and excerpts show these presentation areas and some internal data/configuration helpers, but not the route files that connect them, so route-level wiring is omitted. The README is generic Astro/Next.js boilerplate and documents reusable project details; only sampled source is used to assert specific component calls.

Main entry points: [`components/travels/TravelsView.tsx`](https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelsView.tsx) (Travel views), [`components/project-details/LlmRestaurantFinder.tsx`](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/LlmRestaurantFinder.tsx) (Restaurant finder detail), [`components/project-details/DesktopPayrollManagementSystem.tsx`](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/DesktopPayrollManagementSystem.tsx) (Payroll system detail), [`components/services/ServicesSection.tsx`](https://github.com/seanneskie/seanne-portfolio/blob/main/components/services/ServicesSection.tsx) (Services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portfolio["Portfolio Content"]
  node_profile["Profile and skills<br/>[Profile.tsx]"]
  node_work["Work experience"]
  node_services["Services"]
  node_certificates["Certificates<br/>[Certificates.tsx]"]
  node_courses["Courses<br/>[Courses.tsx]"]
  node_awards["Awards<br/>[Awards.tsx]"]
  node_contact["Contact content"]
end

subgraph group_projects["Project Showcase"]
  node_projects_page["Projects listing"]
  node_project_filters["Project filters<br/>[tag-filter.tsx]"]
  node_project_gallery["Project gallery<br/>[ProjectGallery.tsx]"]
  node_project_template["Project detail template"]
  node_restaurant_detail["Restaurant finder detail"]
  node_payroll_detail["Payroll system detail"]
  node_project_overview["Project overview"]
  node_project_section["Project section<br/>[ProjectSection.tsx]"]
end

subgraph group_travel["Travel Journal"]
  node_travel_view["Travel views<br/>[TravelsView.tsx]"]
  node_travel_sections["Trip and year grouping"]
  node_travel_map["Travel map<br/>[TravelMap.tsx]"]
  node_travel_filters["Travel filters<br/>[TravelFilters.tsx]"]
  node_travel_feed["Travel feed<br/>[TravelCardFeed.tsx]"]
end

subgraph group_internal["Shared Data and UI"]
  node_data_helpers["Data access helpers<br/>[get-data.ts]"]
  node_project_images["Project image lookup<br/>[project-images.ts]"]
  node_service_icons["Service icon registry<br/>[services-icons.ts]"]
  node_ui_cards["Card primitives<br/>[card.tsx]"]
end

node_visitor(("Portfolio visitor"))

node_visitor -->|"views"| node_profile
node_visitor -->|"views"| node_work
node_visitor -->|"views"| node_services
node_visitor -->|"views"| node_certificates
node_visitor -->|"views"| node_courses
node_visitor -->|"views"| node_awards
node_visitor -->|"views"| node_contact
node_visitor -->|"browses"| node_projects_page
node_projects_page -->|"renders"| node_project_filters
node_visitor -->|"views"| node_project_template
node_restaurant_detail -->|"requests images"| node_project_images
node_restaurant_detail -->|"renders"| node_project_overview
node_restaurant_detail -->|"renders"| node_project_section
node_payroll_detail -->|"requests images"| node_project_images
node_payroll_detail -->|"renders"| node_project_overview
node_payroll_detail -->|"renders"| node_project_section
node_project_template -->|"renders"| node_project_gallery
node_visitor -->|"browses"| node_travel_view
node_travel_view -->|"groups entries"| node_travel_sections
node_travel_view -->|"renders"| node_travel_map
node_travel_view -->|"renders"| node_travel_filters
node_travel_view -->|"renders"| node_travel_feed
node_services -->|"resolves icons"| node_service_icons
node_services -->|"renders cards"| node_ui_cards

click node_profile "https://github.com/seanneskie/seanne-portfolio/blob/main/components/profile/Profile.tsx"
click node_work "https://github.com/seanneskie/seanne-portfolio/blob/main/components/work-experiences/WorkExperiences.tsx"
click node_services "https://github.com/seanneskie/seanne-portfolio/blob/main/components/services/ServicesSection.tsx"
click node_certificates "https://github.com/seanneskie/seanne-portfolio/blob/main/components/certificates/Certificates.tsx"
click node_courses "https://github.com/seanneskie/seanne-portfolio/blob/main/components/courses/Courses.tsx"
click node_awards "https://github.com/seanneskie/seanne-portfolio/blob/main/components/awards/Awards.tsx"
click node_contact "https://github.com/seanneskie/seanne-portfolio/blob/main/components/contact/contact-page-content.tsx"
click node_projects_page "https://github.com/seanneskie/seanne-portfolio/blob/main/components/projects/projects-page-content.tsx"
click node_project_filters "https://github.com/seanneskie/seanne-portfolio/blob/main/components/projects/tag-filter.tsx"
click node_project_gallery "https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectGallery.tsx"
click node_project_template "https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectTemplate.tsx"
click node_restaurant_detail "https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/LlmRestaurantFinder.tsx"
click node_payroll_detail "https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/DesktopPayrollManagementSystem.tsx"
click node_project_overview "https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectOverview.tsx"
click node_project_section "https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectSection.tsx"
click node_travel_view "https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelsView.tsx"
click node_travel_sections "https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/useTravelSections.ts"
click node_travel_map "https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelMap.tsx"
click node_travel_filters "https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelFilters.tsx"
click node_travel_feed "https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelCardFeed.tsx"
click node_data_helpers "https://github.com/seanneskie/seanne-portfolio/blob/main/lib/get-data.ts"
click node_project_images "https://github.com/seanneskie/seanne-portfolio/blob/main/lib/project-images.ts"
click node_service_icons "https://github.com/seanneskie/seanne-portfolio/blob/main/lib/services-icons.ts"
click node_ui_cards "https://github.com/seanneskie/seanne-portfolio/blob/main/components/ui/card.tsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_profile,node_work,node_services,node_certificates,node_courses,node_awards,node_contact toneBlue
class node_projects_page,node_project_filters,node_project_gallery,node_project_template,node_restaurant_detail,node_payroll_detail,node_project_overview,node_project_section toneAmber
class node_travel_view,node_travel_sections,node_travel_map,node_travel_filters,node_travel_feed toneMint
class node_data_helpers,node_project_images,node_service_icons,node_ui_cards toneRose
class node_visitor toneIndigo
```

## Components

### Portfolio Content

- [Profile and skills](https://github.com/seanneskie/seanne-portfolio/blob/main/components/profile/Profile.tsx): `components/profile/Profile.tsx`
- [Work experience](https://github.com/seanneskie/seanne-portfolio/blob/main/components/work-experiences/WorkExperiences.tsx): `components/work-experiences/WorkExperiences.tsx`
- [Services](https://github.com/seanneskie/seanne-portfolio/blob/main/components/services/ServicesSection.tsx): `components/services/ServicesSection.tsx`
- [Certificates](https://github.com/seanneskie/seanne-portfolio/blob/main/components/certificates/Certificates.tsx): `components/certificates/Certificates.tsx`
- [Courses](https://github.com/seanneskie/seanne-portfolio/blob/main/components/courses/Courses.tsx): `components/courses/Courses.tsx`
- [Awards](https://github.com/seanneskie/seanne-portfolio/blob/main/components/awards/Awards.tsx): `components/awards/Awards.tsx`
- [Contact content](https://github.com/seanneskie/seanne-portfolio/blob/main/components/contact/contact-page-content.tsx): `components/contact/contact-page-content.tsx`

### Project Showcase

- [Projects listing](https://github.com/seanneskie/seanne-portfolio/blob/main/components/projects/projects-page-content.tsx): `components/projects/projects-page-content.tsx`
- [Project filters](https://github.com/seanneskie/seanne-portfolio/blob/main/components/projects/tag-filter.tsx): `components/projects/tag-filter.tsx`
- [Project gallery](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectGallery.tsx): `components/project-details/ProjectGallery.tsx`
- [Project detail template](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectTemplate.tsx): `components/project-details/ProjectTemplate.tsx`
- [Restaurant finder detail](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/LlmRestaurantFinder.tsx): `components/project-details/LlmRestaurantFinder.tsx`
- [Payroll system detail](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/DesktopPayrollManagementSystem.tsx): `components/project-details/DesktopPayrollManagementSystem.tsx`
- [Project overview](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectOverview.tsx): `components/project-details/ProjectOverview.tsx`
- [Project section](https://github.com/seanneskie/seanne-portfolio/blob/main/components/project-details/ProjectSection.tsx): `components/project-details/ProjectSection.tsx`

### Travel Journal

- [Travel views](https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelsView.tsx): `components/travels/TravelsView.tsx`
- [Trip and year grouping](https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/useTravelSections.ts): `components/travels/useTravelSections.ts`
- [Travel map](https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelMap.tsx): `components/travels/TravelMap.tsx`
- [Travel filters](https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelFilters.tsx): `components/travels/TravelFilters.tsx`
- [Travel feed](https://github.com/seanneskie/seanne-portfolio/blob/main/components/travels/TravelCardFeed.tsx): `components/travels/TravelCardFeed.tsx`

### Shared Data and UI

- [Data access helpers](https://github.com/seanneskie/seanne-portfolio/blob/main/lib/get-data.ts): `lib/get-data.ts`
- [Project image lookup](https://github.com/seanneskie/seanne-portfolio/blob/main/lib/project-images.ts): `lib/project-images.ts`
- [Service icon registry](https://github.com/seanneskie/seanne-portfolio/blob/main/lib/services-icons.ts): `lib/services-icons.ts`
- [Card primitives](https://github.com/seanneskie/seanne-portfolio/blob/main/components/ui/card.tsx): `components/ui/card.tsx`

### Other components

- **Portfolio visitor**

## Connections

- Portfolio visitor → Profile and skills: views
- Portfolio visitor → Work experience: views
- Portfolio visitor → Services: views
- Portfolio visitor → Certificates: views
- Portfolio visitor → Courses: views
- Portfolio visitor → Awards: views
- Portfolio visitor → Contact content: views
- Portfolio visitor → Projects listing: browses
- Projects listing → Project filters: renders
- Portfolio visitor → Project detail template: views
- Restaurant finder detail → Project image lookup: requests images
- Restaurant finder detail → Project overview: renders
- Restaurant finder detail → Project section: renders
- Payroll system detail → Project image lookup: requests images
- Payroll system detail → Project overview: renders
- Payroll system detail → Project section: renders
- Project detail template → Project gallery: renders
- Portfolio visitor → Travel views: browses
- Travel views → Trip and year grouping: groups entries
- Travel views → Travel map: renders
- Travel views → Travel filters: renders
- Travel views → Travel feed: renders
- Services → Service icon registry: resolves icons
- Services → Card primitives: renders cards
