# rudra7700/workbridge-platform architecture

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

## Overview

WorkBridge is a Next.js employment marketplace connecting workers and employers. Its central user journey is account creation and role setup, followed by role-specific dashboards and job discovery or management; the tree also shows job creation, applications, and payment endpoints. Separate product branches provide AI chat, language and voice translation, and document administration. The excerpts establish authentication, profile persistence, the AI chat request, and voice synthesis wiring; many marketplace and API implementations were not sampled, so their internal connections are intentionally omitted.

Main entry points: [`src/contexts/AuthContext.tsx`](https://github.com/rudra7700/workbridge-platform/blob/main/src/contexts/AuthContext.tsx) (Auth Context), [`src/lib/supabase-client.ts`](https://github.com/rudra7700/workbridge-platform/blob/main/src/lib/supabase-client.ts) (Supabase Client), [`src/app/api/voice-translate/route.ts`](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/voice-translate/route.ts) (Voice Translation API), [`src/app/auth/callback/route.ts`](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/auth/callback/route.ts) (Auth Callback)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and Profiles"]
  node_signup["Sign Up<br/>[page.tsx]"]
  node_auth["Auth Context<br/>[AuthContext.tsx]"]
  node_callback["Auth Callback<br/>[route.ts]"]
  node_profiles[("Profiles<br/>[route.ts]")]
end

subgraph group_marketplace["Job Marketplace"]
  node_employer["Employer Dashboard<br/>[page.tsx]"]
  node_worker["Worker Dashboard<br/>[page.tsx]"]
  node_jobs["Jobs and Applications<br/>[page.tsx]"]
  node_jobdetail["Job Details<br/>[page.tsx]"]
  node_jobcreate["Create Job<br/>[page.tsx]"]
end

subgraph group_assist["AI and Language"]
  node_chatwidget["AI Chat Widget<br/>[AIChatWidget.tsx]"]
  node_aichat["AI Chat API<br/>[route.ts]"]
  node_voice["Voice Translation API<br/>[route.ts]"]
  node_tts["Speech Synthesis<br/>[elevenlabs.ts]"]
  node_translation["Text Translation<br/>[route.ts]"]
  node_translatepage["Translator<br/>[page.tsx]"]
end

subgraph group_transactions["Payments and Admin"]
  node_payments["Payment APIs<br/>[route.ts]"]
  node_documents["Document Admin<br/>[page.tsx]"]
end

subgraph group_platform["Application Data"]
  node_supabase["Supabase Client<br/>[supabase-client.ts]"]
end

node_visitor(("User"))
node_openai(("OpenAI"))
node_elevenlabs(("ElevenLabs"))

node_visitor -->|"starts account"| node_signup
node_signup -->|"uses auth"| node_auth
node_auth -->|"creates client"| node_supabase
node_callback -->|"creates client"| node_supabase
node_callback -->|"creates profile"| node_profiles
node_employer -->|"reads identity"| node_auth
node_employer -->|"queries data"| node_supabase
node_worker -->|"reads identity"| node_auth
node_worker -->|"queries data"| node_supabase
node_visitor -.->|"browses jobs"| node_jobs
node_visitor -.->|"creates listing"| node_jobcreate
node_chatwidget -->|"posts messages"| node_aichat
node_visitor -.->|"sends voice chat"| node_voice
node_voice -->|"generates reply"| node_openai
node_voice -->|"requests speech"| node_tts
node_tts -->|"synthesizes audio"| node_elevenlabs
node_visitor -.->|"translates text"| node_translatepage
node_translatepage -.->|"requests translation"| node_translation

click node_signup "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/signup/page.tsx"
click node_auth "https://github.com/rudra7700/workbridge-platform/blob/main/src/contexts/AuthContext.tsx"
click node_callback "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/auth/callback/route.ts"
click node_profiles "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/auth/callback/route.ts"
click node_employer "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/employer/dashboard/page.tsx"
click node_worker "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/worker/dashboard/page.tsx"
click node_jobs "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/jobs/page.tsx"
click node_jobdetail "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/jobs/%5Bid%5D/page.tsx"
click node_jobcreate "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/jobs/create/page.tsx"
click node_chatwidget "https://github.com/rudra7700/workbridge-platform/blob/main/src/components/AIChatWidget.tsx"
click node_aichat "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/ai-chat/route.ts"
click node_voice "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/voice-translate/route.ts"
click node_tts "https://github.com/rudra7700/workbridge-platform/blob/main/src/lib/elevenlabs.ts"
click node_translation "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/translate-text/route.ts"
click node_translatepage "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/translator/page.tsx"
click node_payments "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/payments/create-order/route.ts"
click node_documents "https://github.com/rudra7700/workbridge-platform/blob/main/src/app/admin/documents/page.tsx"
click node_supabase "https://github.com/rudra7700/workbridge-platform/blob/main/src/lib/supabase-client.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_signup,node_auth,node_callback,node_profiles,node_visitor toneBlue
class node_employer,node_worker,node_jobs,node_jobdetail,node_jobcreate toneAmber
class node_chatwidget,node_aichat,node_voice,node_tts,node_translation,node_translatepage toneMint
class node_payments,node_documents toneRose
class node_supabase,node_openai,node_elevenlabs toneIndigo
```

## Components

### Identity and Profiles

- [Sign Up](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/signup/page.tsx): `src/app/signup/page.tsx`
- [Auth Context](https://github.com/rudra7700/workbridge-platform/blob/main/src/contexts/AuthContext.tsx): `src/contexts/AuthContext.tsx`
- [Auth Callback](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/auth/callback/route.ts): `src/app/auth/callback/route.ts`
- [Profiles](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/auth/callback/route.ts): `src/app/auth/callback/route.ts`

### Job Marketplace

- [Employer Dashboard](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/employer/dashboard/page.tsx): `src/app/employer/dashboard/page.tsx`
- [Worker Dashboard](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/worker/dashboard/page.tsx): `src/app/worker/dashboard/page.tsx`
- [Jobs and Applications](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/jobs/page.tsx): `src/app/jobs/page.tsx`
- [Job Details](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/jobs/%5Bid%5D/page.tsx): `src/app/jobs/[id]/page.tsx`
- [Create Job](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/jobs/create/page.tsx): `src/app/jobs/create/page.tsx`

### AI and Language

- [AI Chat Widget](https://github.com/rudra7700/workbridge-platform/blob/main/src/components/AIChatWidget.tsx): `src/components/AIChatWidget.tsx`
- [AI Chat API](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/ai-chat/route.ts): `src/app/api/ai-chat/route.ts`
- [Voice Translation API](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/voice-translate/route.ts): `src/app/api/voice-translate/route.ts`
- [Speech Synthesis](https://github.com/rudra7700/workbridge-platform/blob/main/src/lib/elevenlabs.ts): `src/lib/elevenlabs.ts`
- [Text Translation](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/translate-text/route.ts): `src/app/api/translate-text/route.ts`
- [Translator](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/translator/page.tsx): `src/app/translator/page.tsx`

### Payments and Admin

- [Payment APIs](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/api/payments/create-order/route.ts): `src/app/api/payments/create-order/route.ts`
- [Document Admin](https://github.com/rudra7700/workbridge-platform/blob/main/src/app/admin/documents/page.tsx): `src/app/admin/documents/page.tsx`

### Application Data

- [Supabase Client](https://github.com/rudra7700/workbridge-platform/blob/main/src/lib/supabase-client.ts): `src/lib/supabase-client.ts`

### Other components

- **User**
- **OpenAI**
- **ElevenLabs**

## Connections

- User → Sign Up: starts account
- Sign Up → Auth Context: uses auth (evidence: `src/app/signup/page.tsx`)
- Auth Context → Supabase Client: creates client (evidence: `src/contexts/AuthContext.tsx`)
- Auth Callback → Supabase Client: creates client (evidence: `src/app/auth/callback/route.ts`)
- Auth Callback → Profiles: creates profile (evidence: `src/app/auth/callback/route.ts`)
- Employer Dashboard → Auth Context: reads identity (evidence: `src/app/employer/dashboard/page.tsx`)
- Employer Dashboard → Supabase Client: queries data (evidence: `src/app/employer/dashboard/page.tsx`)
- Worker Dashboard → Auth Context: reads identity (evidence: `src/app/worker/dashboard/page.tsx`)
- Worker Dashboard → Supabase Client: queries data (evidence: `src/app/worker/dashboard/page.tsx`)
- User → Jobs and Applications: browses jobs
- User → Create Job: creates listing
- AI Chat Widget → AI Chat API: posts messages (evidence: `src/components/AIChatWidget.tsx`)
- User → Voice Translation API: sends voice chat
- Voice Translation API → OpenAI: generates reply (evidence: `src/app/api/voice-translate/route.ts`)
- Voice Translation API → Speech Synthesis: requests speech (evidence: `src/app/api/voice-translate/route.ts`)
- Speech Synthesis → ElevenLabs: synthesizes audio (evidence: `src/lib/elevenlabs.ts`)
- User → Translator: translates text
- Translator → Text Translation: requests translation
