# cyn-sharp/questgo architecture

> Architecture diagram of the GitHub repository cyn-sharp/questgo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cyn-sharp/questgo
- Repository: https://github.com/cyn-sharp/questgo

## Overview

QuestGo is a CIT-U student peer-marketplace frontend prototype: its landing page presents finding and posting tasks, trust/safety messaging, and sample quest details. The visible implementation is primarily static presentation; login, registration, and dashboard routes exist, but their behavior and marketplace operations are not established by the available excerpts. The graph shows evidenced page composition and the shared styling helper, without implying a backend or functional quest workflow.

Main entry points: [`src/app/(marketing)/page.tsx`](https://github.com/cyn-sharp/questgo/blob/main/src/app/(marketing)/page.tsx) (Landing page), [`src/components/layout/Navbar.tsx`](https://github.com/cyn-sharp/questgo/blob/main/src/components/layout/Navbar.tsx) (Navigation), [`src/app/(marketing)/layout.tsx`](https://github.com/cyn-sharp/questgo/blob/main/src/app/(marketing)/layout.tsx) (Marketing shell), [`src/components/landing/HeroSection.tsx`](https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/HeroSection.tsx) (Hero section)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_marketing["Marketing experience"]
  node_marketing_page["Landing page<br/>[page.tsx]"]
  node_hero["Hero section<br/>[HeroSection.tsx]"]
  node_quest_card["Sample quest card<br/>[QuestCard.tsx]"]
  node_trust["Trust messaging<br/>[TrustSection.tsx]"]
  node_how_it_works["How it works<br/>[HowItWorks.tsx]"]
  node_safety["Safety checklist"]
  node_final_cta["Final call to action<br/>[FinalCta.tsx]"]
  node_marketing_layout["Marketing shell<br/>[layout.tsx]"]
  node_navbar["Navigation<br/>[Navbar.tsx]"]
  node_footer["Footer<br/>[Footer.tsx]"]
end

subgraph group_routes["Account and dashboard"]
  node_login["Login route<br/>[page.tsx]"]
  node_register["Registration route<br/>[page.tsx]"]
  node_dashboard["Dashboard route<br/>[page.tsx]"]
end

subgraph group_shared["Shared presentation and types"]
  node_quest_types["Quest types<br/>[quest.ts]"]
  node_user_types["User types<br/>[user.ts]"]
  node_button["Button component<br/>[Button.tsx]"]
  node_badge["Badge component<br/>[Badge.tsx]"]
  node_card["Card component<br/>[Card.tsx]"]
  node_input["Input component<br/>[Input.tsx]"]
  node_cn["Class styling helper<br/>[cn.ts]"]
end

node_visitor(("Student visitor"))

node_visitor -->|"opens"| node_marketing_page
node_marketing_page -->|"renders"| node_hero
node_marketing_page -->|"renders"| node_trust
node_marketing_page -->|"renders"| node_how_it_works
node_marketing_page -->|"renders"| node_safety
node_marketing_page -->|"renders"| node_final_cta
node_hero -->|"renders"| node_quest_card
node_marketing_layout -->|"renders"| node_navbar
node_marketing_layout -->|"renders"| node_footer
node_navbar -->|"links to"| node_login
node_navbar -->|"links to"| node_register
node_button -->|"combines classes"| node_cn

click node_marketing_page "https://github.com/cyn-sharp/questgo/blob/main/src/app/(marketing)/page.tsx"
click node_hero "https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/HeroSection.tsx"
click node_quest_card "https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/QuestCard.tsx"
click node_trust "https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/TrustSection.tsx"
click node_how_it_works "https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/HowItWorks.tsx"
click node_safety "https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/SafetyChecklist.tsx"
click node_final_cta "https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/FinalCta.tsx"
click node_marketing_layout "https://github.com/cyn-sharp/questgo/blob/main/src/app/(marketing)/layout.tsx"
click node_navbar "https://github.com/cyn-sharp/questgo/blob/main/src/components/layout/Navbar.tsx"
click node_footer "https://github.com/cyn-sharp/questgo/blob/main/src/components/layout/Footer.tsx"
click node_login "https://github.com/cyn-sharp/questgo/blob/main/src/app/(auth)/login/page.tsx"
click node_register "https://github.com/cyn-sharp/questgo/blob/main/src/app/(auth)/register/page.tsx"
click node_dashboard "https://github.com/cyn-sharp/questgo/blob/main/src/app/(dashboard)/dashboard/page.tsx"
click node_quest_types "https://github.com/cyn-sharp/questgo/blob/main/src/types/quest.ts"
click node_user_types "https://github.com/cyn-sharp/questgo/blob/main/src/types/user.ts"
click node_button "https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Button.tsx"
click node_badge "https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Badge.tsx"
click node_card "https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Card.tsx"
click node_input "https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Input.tsx"
click node_cn "https://github.com/cyn-sharp/questgo/blob/main/src/lib/utils/cn.ts"

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_marketing_page,node_hero,node_quest_card,node_trust,node_how_it_works,node_safety,node_final_cta,node_marketing_layout,node_navbar,node_footer toneBlue
class node_login,node_register,node_dashboard toneAmber
class node_quest_types,node_user_types,node_button,node_badge,node_card,node_input,node_cn toneMint
class node_visitor toneIndigo
```

## Components

### Marketing experience

- [Landing page](https://github.com/cyn-sharp/questgo/blob/main/src/app/(marketing)/page.tsx): `src/app/(marketing)/page.tsx`
- [Hero section](https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/HeroSection.tsx): `src/components/landing/HeroSection.tsx`
- [Sample quest card](https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/QuestCard.tsx): `src/components/landing/QuestCard.tsx`
- [Trust messaging](https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/TrustSection.tsx): `src/components/landing/TrustSection.tsx`
- [How it works](https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/HowItWorks.tsx): `src/components/landing/HowItWorks.tsx`
- [Safety checklist](https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/SafetyChecklist.tsx): `src/components/landing/SafetyChecklist.tsx`
- [Final call to action](https://github.com/cyn-sharp/questgo/blob/main/src/components/landing/FinalCta.tsx): `src/components/landing/FinalCta.tsx`
- [Marketing shell](https://github.com/cyn-sharp/questgo/blob/main/src/app/(marketing)/layout.tsx): `src/app/(marketing)/layout.tsx`
- [Navigation](https://github.com/cyn-sharp/questgo/blob/main/src/components/layout/Navbar.tsx): `src/components/layout/Navbar.tsx`
- [Footer](https://github.com/cyn-sharp/questgo/blob/main/src/components/layout/Footer.tsx): `src/components/layout/Footer.tsx`

### Account and dashboard

- [Login route](https://github.com/cyn-sharp/questgo/blob/main/src/app/(auth)/login/page.tsx): `src/app/(auth)/login/page.tsx`
- [Registration route](https://github.com/cyn-sharp/questgo/blob/main/src/app/(auth)/register/page.tsx): `src/app/(auth)/register/page.tsx`
- [Dashboard route](https://github.com/cyn-sharp/questgo/blob/main/src/app/(dashboard)/dashboard/page.tsx): `src/app/(dashboard)/dashboard/page.tsx`

### Shared presentation and types

- [Quest types](https://github.com/cyn-sharp/questgo/blob/main/src/types/quest.ts): `src/types/quest.ts`
- [User types](https://github.com/cyn-sharp/questgo/blob/main/src/types/user.ts): `src/types/user.ts`
- [Button component](https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Button.tsx): `src/components/ui/Button.tsx`
- [Badge component](https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Badge.tsx): `src/components/ui/Badge.tsx`
- [Card component](https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Card.tsx): `src/components/ui/Card.tsx`
- [Input component](https://github.com/cyn-sharp/questgo/blob/main/src/components/ui/Input.tsx): `src/components/ui/Input.tsx`
- [Class styling helper](https://github.com/cyn-sharp/questgo/blob/main/src/lib/utils/cn.ts): `src/lib/utils/cn.ts`

### Other components

- **Student visitor**

## Connections

- Student visitor → Landing page: opens (evidence: `src/app/(marketing)/page.tsx`)
- Landing page → Hero section: renders (evidence: `src/app/(marketing)/page.tsx`)
- Landing page → Trust messaging: renders (evidence: `src/app/(marketing)/page.tsx`)
- Landing page → How it works: renders (evidence: `src/app/(marketing)/page.tsx`)
- Landing page → Safety checklist: renders (evidence: `src/app/(marketing)/page.tsx`)
- Landing page → Final call to action: renders (evidence: `src/app/(marketing)/page.tsx`)
- Hero section → Sample quest card: renders (evidence: `src/components/landing/HeroSection.tsx`)
- Marketing shell → Navigation: renders (evidence: `src/app/(marketing)/layout.tsx`)
- Marketing shell → Footer: renders (evidence: `src/app/(marketing)/layout.tsx`)
- Navigation → Login route: links to (evidence: `src/components/layout/Navbar.tsx`)
- Navigation → Registration route: links to (evidence: `src/components/layout/Navbar.tsx`)
- Button component → Class styling helper: combines classes (evidence: `src/components/ui/Button.tsx`)
