# ersozberk/awesome-turkiye architecture

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

- Interactive diagram: https://gitdiagram.com/ersozberk/awesome-turkiye
- Repository: https://github.com/ersozberk/awesome-turkiye

## Overview

Awesome Türkiye is a curated catalog of Turkish open-source projects, communities, and digital-life resources, presented both as bilingual READMEs and an interactive discovery site. Contributors maintain the central JSON catalog; the Go validator checks listed repository links, the Go generator renders English and Turkish READMEs, and the website loads catalog data for category browsing and search. The README documents these capabilities; code excerpts show the catalog-to-website and generator/validator behavior. CI wiring and unsampled schema details are not mapped.

Main entry points: [`website/src/app/page.tsx`](https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/page.tsx) (Discovery Page), [`data/data.json`](https://github.com/ersozberk/awesome-turkiye/blob/main/data/data.json) (Project Catalog), [`scripts/cmd/readme-gen/main.go`](https://github.com/ersozberk/awesome-turkiye/blob/main/scripts/cmd/readme-gen/main.go) (README Generator), [`scripts/cmd/validator/main.go`](https://github.com/ersozberk/awesome-turkiye/blob/main/scripts/cmd/validator/main.go) (Link Validator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Catalog Data"]
  node_catalog_data[("Project Catalog<br/>[data.json]")]
  node_catalog_schema["Data Schema<br/>[schema.json]"]
end

subgraph group_discovery["Web Discovery"]
  node_web_home["Discovery Page<br/>[page.tsx]"]
  node_catalog_reader["Catalog Reader<br/>[getData.ts]"]
  node_dashboard["Search Dashboard<br/>[Dashboard.tsx]"]
  node_site_layout["Site Layout<br/>[layout.tsx]"]
  node_social_image["Social Preview"]
end

subgraph group_maintenance["Catalog Maintenance"]
  node_readme_generator["README Generator<br/>[main.go]"]
  node_english_readme["English README<br/>[README.md]"]
  node_turkish_readme["Turkish README<br/>[README.tr.md]"]
  node_link_validator["Link Validator<br/>[main.go]"]
end

node_contributor(("Contributor"))
node_web_visitor(("Web Visitor"))
node_project_repos(("Project Repositories"))

node_contributor -->|"maintains"| node_catalog_data
node_web_visitor -->|"opens"| node_web_home
node_web_home -->|"loads data"| node_catalog_reader
node_catalog_reader -->|"reads"| node_catalog_data
node_web_home -->|"renders"| node_dashboard
node_web_home -.->|"uses layout"| node_site_layout
node_web_visitor -->|"searches catalog"| node_dashboard
node_web_visitor -.->|"shares site"| node_social_image
node_readme_generator -->|"reads"| node_catalog_data
node_readme_generator -->|"generates"| node_english_readme
node_readme_generator -->|"generates"| node_turkish_readme
node_link_validator -->|"reads"| node_catalog_data
node_link_validator -->|"checks links"| node_project_repos

click node_catalog_data "https://github.com/ersozberk/awesome-turkiye/blob/main/data/data.json"
click node_catalog_schema "https://github.com/ersozberk/awesome-turkiye/blob/main/data/schema.json"
click node_web_home "https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/page.tsx"
click node_catalog_reader "https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/utils/getData.ts"
click node_dashboard "https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/components/Dashboard.tsx"
click node_site_layout "https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/layout.tsx"
click node_social_image "https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/opengraph-image.tsx"
click node_readme_generator "https://github.com/ersozberk/awesome-turkiye/blob/main/scripts/cmd/readme-gen/main.go"
click node_english_readme "https://github.com/ersozberk/awesome-turkiye/blob/main/README.md"
click node_turkish_readme "https://github.com/ersozberk/awesome-turkiye/blob/main/README.tr.md"
click node_link_validator "https://github.com/ersozberk/awesome-turkiye/blob/main/scripts/cmd/validator/main.go"

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_catalog_data,node_catalog_schema toneBlue
class node_web_home,node_catalog_reader,node_dashboard,node_site_layout,node_social_image toneAmber
class node_readme_generator,node_english_readme,node_turkish_readme,node_link_validator toneMint
class node_contributor,node_web_visitor,node_project_repos toneIndigo
```

## Components

### Catalog Data

- [Project Catalog](https://github.com/ersozberk/awesome-turkiye/blob/main/data/data.json): `data/data.json`
- [Data Schema](https://github.com/ersozberk/awesome-turkiye/blob/main/data/schema.json): `data/schema.json`

### Web Discovery

- [Discovery Page](https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/page.tsx): `website/src/app/page.tsx`
- [Catalog Reader](https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/utils/getData.ts): `website/src/app/utils/getData.ts`
- [Search Dashboard](https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/components/Dashboard.tsx): `website/src/components/Dashboard.tsx`
- [Site Layout](https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/layout.tsx): `website/src/app/layout.tsx`
- [Social Preview](https://github.com/ersozberk/awesome-turkiye/blob/main/website/src/app/opengraph-image.tsx): `website/src/app/opengraph-image.tsx`

### Catalog Maintenance

- [README Generator](https://github.com/ersozberk/awesome-turkiye/blob/main/scripts/cmd/readme-gen/main.go): `scripts/cmd/readme-gen/main.go`
- [English README](https://github.com/ersozberk/awesome-turkiye/blob/main/README.md): `README.md`
- [Turkish README](https://github.com/ersozberk/awesome-turkiye/blob/main/README.tr.md): `README.tr.md`
- [Link Validator](https://github.com/ersozberk/awesome-turkiye/blob/main/scripts/cmd/validator/main.go): `scripts/cmd/validator/main.go`

### Other components

- **Contributor**
- **Web Visitor**
- **Project Repositories**

## Connections

- Contributor → Project Catalog: maintains (evidence: `README.md`)
- Web Visitor → Discovery Page: opens (evidence: `website/src/app/page.tsx`)
- Discovery Page → Catalog Reader: loads data (evidence: `website/src/app/page.tsx`)
- Catalog Reader → Project Catalog: reads (evidence: `website/src/app/utils/getData.ts`)
- Discovery Page → Search Dashboard: renders (evidence: `website/src/app/page.tsx`)
- Discovery Page → Site Layout: uses layout
- Web Visitor → Search Dashboard: searches catalog (evidence: `website/src/components/Dashboard.tsx`)
- Web Visitor → Social Preview: shares site
- README Generator → Project Catalog: reads (evidence: `scripts/cmd/readme-gen/main.go`)
- README Generator → English README: generates (evidence: `scripts/cmd/readme-gen/main.go`)
- README Generator → Turkish README: generates (evidence: `scripts/cmd/readme-gen/main.go`)
- Link Validator → Project Catalog: reads (evidence: `scripts/cmd/validator/main.go`)
- Link Validator → Project Repositories: checks links (evidence: `scripts/cmd/validator/main.go`)
