# akshatthakur22/calcuzy architecture

> Architecture diagram of the GitHub repository akshatthakur22/calcuzy, 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/akshatthakur22/calcuzy
- Repository: https://github.com/akshatthakur22/calcuzy

## Overview

Calcuzy is a multi-category online utility hub. Users discover a tool from the home page or tools catalog, open a tool page, enter inputs in its client interface, and receive a calculation or generated output. The repository also provides countdowns, name and quote collections, legal-document generators, and editorial guides. Tool pages combine interactive clients with explanatory content and structured SEO metadata. The README describes the product broadly; source-index references establish only the sampled page-to-client and helper relationships shown below.

Main entry points: [`app`](https://github.com/akshatthakur22/calcuzy/tree/main/app) (Calculator pages), [`lib/build-tool-schemas.ts`](https://github.com/akshatthakur22/calcuzy/blob/main/lib/build-tool-schemas.ts) (Tool schema builder), [`app/page.tsx`](https://github.com/akshatthakur22/calcuzy/blob/main/app/page.tsx) (Home page), [`components/Navbar.tsx`](https://github.com/akshatthakur22/calcuzy/blob/main/components/Navbar.tsx) (Site navigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Discovery and navigation"]
  node_home["Home page<br/>[page.tsx]"]
  node_home_ui["Home discovery UI"]
  node_catalog["Tools catalog<br/>[page.tsx]"]
  node_navigation["Site navigation<br/>[Navbar.tsx]"]
end

subgraph group_tools["Interactive tools"]
  node_calculator_pages["Calculator pages"]
  node_calculator_clients["Calculator clients"]
  node_finance_clients["Finance and legal clients"]
  node_countdowns["Countdown pages"]
  node_countdown_clients["Countdown clients"]
end

subgraph group_content["Editorial and collections"]
  node_name_quotes["Names and quotes"]
  node_blog_pages["Editorial guides"]
  node_tool_guides["Tool guide content<br/>[tool-guides.ts]"]
end

subgraph group_shared["Shared page services"]
  node_tool_content["Tool descriptions<br/>[tool-content.ts]"]
  node_schema_builder["Tool schema builder"]
  node_metadata["Metadata and schemas<br/>[metadata.ts]"]
  node_tool_info["Tool information UI<br/>[ToolInfo.tsx]"]
  node_education_ui["Educational guide UI"]
  node_tool_jsonld["Structured data output<br/>[ToolJsonLd.tsx]"]
end

node_visitor(("Visitor"))

node_visitor -->|"opens"| node_home
node_home -->|"renders"| node_home_ui
node_visitor -->|"browses"| node_catalog
node_navigation -->|"links to"| node_catalog
node_navigation -->|"links to"| node_home
node_visitor -->|"opens tool"| node_calculator_pages
node_calculator_pages -->|"renders client"| node_calculator_clients
node_calculator_pages -->|"renders client"| node_finance_clients
node_visitor -->|"opens countdown"| node_countdowns
node_countdowns -.->|"renders client"| node_countdown_clients
node_visitor -->|"explores collections"| node_name_quotes
node_visitor -->|"reads guides"| node_blog_pages
node_calculator_pages -->|"renders details"| node_tool_info
node_tool_info -->|"loads content"| node_tool_content
node_calculator_pages -->|"renders guide"| node_education_ui
node_education_ui -->|"loads guide"| node_tool_guides
node_calculator_pages -->|"builds schemas"| node_schema_builder
node_schema_builder -->|"calls schema helpers"| node_metadata
node_schema_builder -->|"loads tool data"| node_tool_content
node_calculator_pages -->|"renders structured data"| node_tool_jsonld

click node_home "https://github.com/akshatthakur22/calcuzy/blob/main/app/page.tsx"
click node_home_ui "https://github.com/akshatthakur22/calcuzy/tree/main/components/home"
click node_catalog "https://github.com/akshatthakur22/calcuzy/blob/main/app/tools/page.tsx"
click node_navigation "https://github.com/akshatthakur22/calcuzy/blob/main/components/Navbar.tsx"
click node_calculator_pages "https://github.com/akshatthakur22/calcuzy/tree/main/app"
click node_calculator_clients "https://github.com/akshatthakur22/calcuzy/tree/main/components/client"
click node_finance_clients "https://github.com/akshatthakur22/calcuzy/tree/main/components/tools"
click node_countdowns "https://github.com/akshatthakur22/calcuzy/tree/main/app"
click node_countdown_clients "https://github.com/akshatthakur22/calcuzy/tree/main/components/client"
click node_name_quotes "https://github.com/akshatthakur22/calcuzy/tree/main/app"
click node_blog_pages "https://github.com/akshatthakur22/calcuzy/tree/main/app/blog"
click node_tool_guides "https://github.com/akshatthakur22/calcuzy/blob/main/lib/tool-guides.ts"
click node_tool_content "https://github.com/akshatthakur22/calcuzy/blob/main/lib/tool-content.ts"
click node_schema_builder "https://github.com/akshatthakur22/calcuzy/blob/main/lib/build-tool-schemas.ts"
click node_metadata "https://github.com/akshatthakur22/calcuzy/blob/main/lib/metadata.ts"
click node_tool_info "https://github.com/akshatthakur22/calcuzy/blob/main/components/ToolInfo.tsx"
click node_education_ui "https://github.com/akshatthakur22/calcuzy/blob/main/components/ToolEducationalGuide.tsx"
click node_tool_jsonld "https://github.com/akshatthakur22/calcuzy/blob/main/components/ToolJsonLd.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_home,node_home_ui,node_catalog,node_navigation toneBlue
class node_calculator_pages,node_calculator_clients,node_finance_clients,node_countdowns,node_countdown_clients toneAmber
class node_name_quotes,node_blog_pages,node_tool_guides toneMint
class node_tool_content,node_schema_builder,node_metadata,node_tool_info,node_education_ui,node_tool_jsonld toneRose
class node_visitor toneIndigo
```

## Components

### Discovery and navigation

- [Home page](https://github.com/akshatthakur22/calcuzy/blob/main/app/page.tsx): `app/page.tsx`
- [Home discovery UI](https://github.com/akshatthakur22/calcuzy/tree/main/components/home): `components/home`
- [Tools catalog](https://github.com/akshatthakur22/calcuzy/blob/main/app/tools/page.tsx): `app/tools/page.tsx`
- [Site navigation](https://github.com/akshatthakur22/calcuzy/blob/main/components/Navbar.tsx): `components/Navbar.tsx`

### Interactive tools

- [Calculator pages](https://github.com/akshatthakur22/calcuzy/tree/main/app): `app`
- [Calculator clients](https://github.com/akshatthakur22/calcuzy/tree/main/components/client): `components/client`
- [Finance and legal clients](https://github.com/akshatthakur22/calcuzy/tree/main/components/tools): `components/tools`
- [Countdown pages](https://github.com/akshatthakur22/calcuzy/tree/main/app): `app`
- [Countdown clients](https://github.com/akshatthakur22/calcuzy/tree/main/components/client): `components/client`

### Editorial and collections

- [Names and quotes](https://github.com/akshatthakur22/calcuzy/tree/main/app): `app`
- [Editorial guides](https://github.com/akshatthakur22/calcuzy/tree/main/app/blog): `app/blog`
- [Tool guide content](https://github.com/akshatthakur22/calcuzy/blob/main/lib/tool-guides.ts): `lib/tool-guides.ts`

### Shared page services

- [Tool descriptions](https://github.com/akshatthakur22/calcuzy/blob/main/lib/tool-content.ts): `lib/tool-content.ts`
- [Tool schema builder](https://github.com/akshatthakur22/calcuzy/blob/main/lib/build-tool-schemas.ts): `lib/build-tool-schemas.ts`
- [Metadata and schemas](https://github.com/akshatthakur22/calcuzy/blob/main/lib/metadata.ts): `lib/metadata.ts`
- [Tool information UI](https://github.com/akshatthakur22/calcuzy/blob/main/components/ToolInfo.tsx): `components/ToolInfo.tsx`
- [Educational guide UI](https://github.com/akshatthakur22/calcuzy/blob/main/components/ToolEducationalGuide.tsx): `components/ToolEducationalGuide.tsx`
- [Structured data output](https://github.com/akshatthakur22/calcuzy/blob/main/components/ToolJsonLd.tsx): `components/ToolJsonLd.tsx`

### Other components

- **Visitor**

## Connections

- Visitor → Home page: opens (evidence: `README.md`)
- Home page → Home discovery UI: renders (evidence: `app/page.tsx`)
- Visitor → Tools catalog: browses (evidence: `README.md`)
- Site navigation → Tools catalog: links to (evidence: `components/Navbar.tsx`)
- Site navigation → Home page: links to (evidence: `components/Navbar.tsx`)
- Visitor → Calculator pages: opens tool (evidence: `README.md`)
- Calculator pages → Calculator clients: renders client (evidence: `app/age-calculator/page.tsx`)
- Calculator pages → Finance and legal clients: renders client (evidence: `app/capital-gains-calculator/page.tsx`)
- Visitor → Countdown pages: opens countdown (evidence: `README.md`)
- Countdown pages → Countdown clients: renders client (evidence: `app/bmi-calculator/page.tsx`)
- Visitor → Names and quotes: explores collections (evidence: `README.md`)
- Visitor → Editorial guides: reads guides (evidence: `README.md`)
- Calculator pages → Tool information UI: renders details (evidence: `app/age-calculator/page.tsx`)
- Tool information UI → Tool descriptions: loads content (evidence: `components/ToolInfo.tsx`)
- Calculator pages → Educational guide UI: renders guide (evidence: `app/age-calculator/page.tsx`)
- Educational guide UI → Tool guide content: loads guide (evidence: `components/ToolEducationalGuide.tsx`)
- Calculator pages → Tool schema builder: builds schemas (evidence: `app/age-calculator/page.tsx`)
- Tool schema builder → Metadata and schemas: calls schema helpers (evidence: `lib/build-tool-schemas.ts`)
- Tool schema builder → Tool descriptions: loads tool data (evidence: `lib/build-tool-schemas.ts`)
- Calculator pages → Structured data output: renders structured data (evidence: `app/age-calculator/page.tsx`)
