# kusneu/syntax-error architecture

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

## Overview

Shikshya Nepal is an education jobs and tutor-matching hub. Teachers browse and filter openings, inspect job details, and apply; institutions can post vacancies, while students and parents can post tuition requests and track progress. The application also includes teacher profiles and CVs, KYC verification, nearby-tutor discovery, and administrative review. The graph follows documented and indexed module references; several API handlers and feature implementations were not excerpted, so their internal relationships are left unspecified.

Main entry points: [`app/page.tsx`](https://github.com/kusneu/syntax-error/blob/master/app/page.tsx) (Home orchestrator), [`lib/jobs.ts`](https://github.com/kusneu/syntax-error/blob/master/lib/jobs.ts) (Job categories and seed data), [`components/student-progress-tracker.tsx`](https://github.com/kusneu/syntax-error/blob/master/components/student-progress-tracker.tsx) (Progress tracker), [`components/admin-dashboard.tsx`](https://github.com/kusneu/syntax-error/blob/master/components/admin-dashboard.tsx) (Admin dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_job_market["Jobs and applications"]
  node_app["Home orchestrator<br/>[page.tsx]"]
  node_hero["Search hero<br/>[hero.tsx]"]
  node_categories["Teaching categories<br/>[categories.tsx]"]
  node_board["Job board<br/>[job-board.tsx]"]
  node_job_card["Job card<br/>[job-card.tsx]"]
  node_job_detail["Job detail"]
  node_apply["Application dialog<br/>[apply-modal.tsx]"]
  node_post_job["Vacancy posting<br/>[post-job-modal.tsx]"]
  node_job_data[("Job categories and seed data<br/>[jobs.ts]")]
end

subgraph group_education["Student services"]
  node_student_request["Tuition request"]
  node_student_tracker["Progress tracker"]
  node_progress_log["Progress log dialog"]
  node_student_data[("Student records<br/>[students-data.ts]")]
end

subgraph group_educator["Educator profiles"]
  node_nearby["Nearby tutor scanner"]
  node_tutor_data[("Tutor directory data<br/>[nearby-tutors.ts]")]
  node_cv["Teacher CV portal"]
  node_cv_pdf["CV PDF preview<br/>[cv-pdf-modal.tsx]"]
  node_profile["Profile portal<br/>[profile-modal.tsx]"]
  node_signin["Sign-in dialog<br/>[sign-in-modal.tsx]"]
  node_kyc["Teacher verification<br/>[kyc-modal.tsx]"]
end

subgraph group_operations["Administration and APIs"]
  node_jobs_api["Jobs API<br/>[route.ts]"]
  node_jobs_store[("Jobs file store<br/>[jobs_database.json]")]
  node_admin_page["Admin page<br/>[page.tsx]"]
  node_admin["Admin dashboard"]
  node_applications_api["Applications API<br/>[route.ts]"]
  node_cvs_api["CVs API<br/>[route.ts]"]
  node_kyc_api["KYC API<br/>[route.ts]"]
end

node_visitor(("Teacher, school, student"))

node_visitor -->|"uses"| node_app
node_app -->|"renders"| node_hero
node_app -->|"renders"| node_categories
node_app -->|"renders"| node_board
node_app -->|"opens"| node_apply
node_app -->|"opens"| node_post_job
node_app -->|"renders"| node_student_request
node_app -->|"renders"| node_student_tracker
node_app -->|"renders"| node_cv
node_app -->|"renders"| node_cv_pdf
node_app -->|"renders"| node_profile
node_app -->|"renders"| node_signin
node_app -->|"renders"| node_admin
node_board -->|"renders"| node_job_card
node_board -->|"uses"| node_job_data
node_hero -->|"uses"| node_job_data
node_categories -->|"uses"| node_job_data
node_job_card -->|"uses"| node_job_data
node_app -->|"uses"| node_job_data
node_app -->|"uses"| node_student_data
node_job_detail -->|"uses"| node_job_data
node_apply -->|"uses"| node_job_data
node_post_job -->|"uses"| node_job_data
node_student_request -->|"uses"| node_job_data
node_student_tracker -->|"uses"| node_student_data
node_student_tracker -->|"opens"| node_progress_log
node_progress_log -->|"uses"| node_student_data
node_student_tracker -->|"opens"| node_nearby
node_nearby -->|"uses"| node_tutor_data
node_nearby -->|"uses"| node_cv
node_profile -->|"uses"| node_cv
node_profile -->|"uses"| node_kyc
node_signin -->|"uses"| node_kyc
node_cv_pdf -->|"uses"| node_cv
node_admin_page -->|"renders"| node_admin
node_admin_page -->|"uses"| node_job_data
node_admin -->|"uses"| node_job_data
node_admin -->|"uses"| node_tutor_data
node_jobs_api -->|"loads defaults"| node_job_data
node_jobs_api -->|"reads and writes"| node_jobs_store

click node_app "https://github.com/kusneu/syntax-error/blob/master/app/page.tsx"
click node_hero "https://github.com/kusneu/syntax-error/blob/master/components/hero.tsx"
click node_categories "https://github.com/kusneu/syntax-error/blob/master/components/categories.tsx"
click node_board "https://github.com/kusneu/syntax-error/blob/master/components/job-board.tsx"
click node_job_card "https://github.com/kusneu/syntax-error/blob/master/components/job-card.tsx"
click node_job_detail "https://github.com/kusneu/syntax-error/blob/master/components/job-detail-client.tsx"
click node_apply "https://github.com/kusneu/syntax-error/blob/master/components/apply-modal.tsx"
click node_post_job "https://github.com/kusneu/syntax-error/blob/master/components/post-job-modal.tsx"
click node_student_request "https://github.com/kusneu/syntax-error/blob/master/components/student-post-request-modal.tsx"
click node_student_tracker "https://github.com/kusneu/syntax-error/blob/master/components/student-progress-tracker.tsx"
click node_progress_log "https://github.com/kusneu/syntax-error/blob/master/components/add-progress-log-modal.tsx"
click node_student_data "https://github.com/kusneu/syntax-error/blob/master/lib/students-data.ts"
click node_nearby "https://github.com/kusneu/syntax-error/blob/master/components/nearby-tutor-scanner.tsx"
click node_tutor_data "https://github.com/kusneu/syntax-error/blob/master/lib/nearby-tutors.ts"
click node_cv "https://github.com/kusneu/syntax-error/blob/master/components/teacher-cv-modal.tsx"
click node_cv_pdf "https://github.com/kusneu/syntax-error/blob/master/components/cv-pdf-modal.tsx"
click node_profile "https://github.com/kusneu/syntax-error/blob/master/components/profile-modal.tsx"
click node_signin "https://github.com/kusneu/syntax-error/blob/master/components/sign-in-modal.tsx"
click node_kyc "https://github.com/kusneu/syntax-error/blob/master/components/kyc-modal.tsx"
click node_job_data "https://github.com/kusneu/syntax-error/blob/master/lib/jobs.ts"
click node_jobs_api "https://github.com/kusneu/syntax-error/blob/master/app/api/jobs/route.ts"
click node_jobs_store "https://github.com/kusneu/syntax-error/blob/master/jobs_database.json"
click node_admin_page "https://github.com/kusneu/syntax-error/blob/master/app/admin/page.tsx"
click node_admin "https://github.com/kusneu/syntax-error/blob/master/components/admin-dashboard.tsx"
click node_applications_api "https://github.com/kusneu/syntax-error/blob/master/app/api/applications/route.ts"
click node_cvs_api "https://github.com/kusneu/syntax-error/blob/master/app/api/cvs/route.ts"
click node_kyc_api "https://github.com/kusneu/syntax-error/blob/master/app/api/kyc/route.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_app,node_hero,node_categories,node_board,node_job_card,node_job_detail,node_apply,node_post_job,node_job_data toneBlue
class node_student_request,node_student_tracker,node_progress_log,node_student_data toneAmber
class node_nearby,node_tutor_data,node_cv,node_cv_pdf,node_profile,node_signin,node_kyc toneMint
class node_jobs_api,node_jobs_store,node_admin_page,node_admin,node_applications_api,node_cvs_api,node_kyc_api toneRose
class node_visitor toneIndigo
```

## Components

### Jobs and applications

- [Home orchestrator](https://github.com/kusneu/syntax-error/blob/master/app/page.tsx): `app/page.tsx`
- [Search hero](https://github.com/kusneu/syntax-error/blob/master/components/hero.tsx): `components/hero.tsx`
- [Teaching categories](https://github.com/kusneu/syntax-error/blob/master/components/categories.tsx): `components/categories.tsx`
- [Job board](https://github.com/kusneu/syntax-error/blob/master/components/job-board.tsx): `components/job-board.tsx`
- [Job card](https://github.com/kusneu/syntax-error/blob/master/components/job-card.tsx): `components/job-card.tsx`
- [Job detail](https://github.com/kusneu/syntax-error/blob/master/components/job-detail-client.tsx): `components/job-detail-client.tsx`
- [Application dialog](https://github.com/kusneu/syntax-error/blob/master/components/apply-modal.tsx): `components/apply-modal.tsx`
- [Vacancy posting](https://github.com/kusneu/syntax-error/blob/master/components/post-job-modal.tsx): `components/post-job-modal.tsx`
- [Job categories and seed data](https://github.com/kusneu/syntax-error/blob/master/lib/jobs.ts): `lib/jobs.ts`

### Student services

- [Tuition request](https://github.com/kusneu/syntax-error/blob/master/components/student-post-request-modal.tsx): `components/student-post-request-modal.tsx`
- [Progress tracker](https://github.com/kusneu/syntax-error/blob/master/components/student-progress-tracker.tsx): `components/student-progress-tracker.tsx`
- [Progress log dialog](https://github.com/kusneu/syntax-error/blob/master/components/add-progress-log-modal.tsx): `components/add-progress-log-modal.tsx`
- [Student records](https://github.com/kusneu/syntax-error/blob/master/lib/students-data.ts): `lib/students-data.ts`

### Educator profiles

- [Nearby tutor scanner](https://github.com/kusneu/syntax-error/blob/master/components/nearby-tutor-scanner.tsx): `components/nearby-tutor-scanner.tsx`
- [Tutor directory data](https://github.com/kusneu/syntax-error/blob/master/lib/nearby-tutors.ts): `lib/nearby-tutors.ts`
- [Teacher CV portal](https://github.com/kusneu/syntax-error/blob/master/components/teacher-cv-modal.tsx): `components/teacher-cv-modal.tsx`
- [CV PDF preview](https://github.com/kusneu/syntax-error/blob/master/components/cv-pdf-modal.tsx): `components/cv-pdf-modal.tsx`
- [Profile portal](https://github.com/kusneu/syntax-error/blob/master/components/profile-modal.tsx): `components/profile-modal.tsx`
- [Sign-in dialog](https://github.com/kusneu/syntax-error/blob/master/components/sign-in-modal.tsx): `components/sign-in-modal.tsx`
- [Teacher verification](https://github.com/kusneu/syntax-error/blob/master/components/kyc-modal.tsx): `components/kyc-modal.tsx`

### Administration and APIs

- [Jobs API](https://github.com/kusneu/syntax-error/blob/master/app/api/jobs/route.ts): `app/api/jobs/route.ts`
- [Jobs file store](https://github.com/kusneu/syntax-error/blob/master/jobs_database.json): `jobs_database.json`
- [Admin page](https://github.com/kusneu/syntax-error/blob/master/app/admin/page.tsx): `app/admin/page.tsx`
- [Admin dashboard](https://github.com/kusneu/syntax-error/blob/master/components/admin-dashboard.tsx): `components/admin-dashboard.tsx`
- [Applications API](https://github.com/kusneu/syntax-error/blob/master/app/api/applications/route.ts): `app/api/applications/route.ts`
- [CVs API](https://github.com/kusneu/syntax-error/blob/master/app/api/cvs/route.ts): `app/api/cvs/route.ts`
- [KYC API](https://github.com/kusneu/syntax-error/blob/master/app/api/kyc/route.ts): `app/api/kyc/route.ts`

### Other components

- **Teacher, school, student**

## Connections

- Teacher, school, student → Home orchestrator: uses (evidence: `README.md`)
- Home orchestrator → Search hero: renders (evidence: `app/page.tsx`)
- Home orchestrator → Teaching categories: renders (evidence: `app/page.tsx`)
- Home orchestrator → Job board: renders (evidence: `app/page.tsx`)
- Home orchestrator → Application dialog: opens (evidence: `app/page.tsx`)
- Home orchestrator → Vacancy posting: opens (evidence: `app/page.tsx`)
- Home orchestrator → Tuition request: renders (evidence: `app/page.tsx`)
- Home orchestrator → Progress tracker: renders (evidence: `app/page.tsx`)
- Home orchestrator → Teacher CV portal: renders (evidence: `app/page.tsx`)
- Home orchestrator → CV PDF preview: renders (evidence: `app/page.tsx`)
- Home orchestrator → Profile portal: renders (evidence: `app/page.tsx`)
- Home orchestrator → Sign-in dialog: renders (evidence: `app/page.tsx`)
- Home orchestrator → Admin dashboard: renders (evidence: `app/page.tsx`)
- Job board → Job card: renders (evidence: `components/job-board.tsx`)
- Job board → Job categories and seed data: uses (evidence: `components/job-board.tsx`)
- Search hero → Job categories and seed data: uses (evidence: `components/hero.tsx`)
- Teaching categories → Job categories and seed data: uses (evidence: `components/categories.tsx`)
- Job card → Job categories and seed data: uses (evidence: `components/job-card.tsx`)
- Home orchestrator → Job categories and seed data: uses (evidence: `app/page.tsx`)
- Home orchestrator → Student records: uses (evidence: `app/page.tsx`)
- Job detail → Job categories and seed data: uses (evidence: `components/job-detail-client.tsx`)
- Application dialog → Job categories and seed data: uses (evidence: `components/apply-modal.tsx`)
- Vacancy posting → Job categories and seed data: uses (evidence: `components/post-job-modal.tsx`)
- Tuition request → Job categories and seed data: uses (evidence: `components/student-post-request-modal.tsx`)
- Progress tracker → Student records: uses (evidence: `components/student-progress-tracker.tsx`)
- Progress tracker → Progress log dialog: opens (evidence: `components/student-progress-tracker.tsx`)
- Progress log dialog → Student records: uses (evidence: `components/add-progress-log-modal.tsx`)
- Progress tracker → Nearby tutor scanner: opens (evidence: `components/student-progress-tracker.tsx`)
- Nearby tutor scanner → Tutor directory data: uses (evidence: `components/nearby-tutor-scanner.tsx`)
- Nearby tutor scanner → Teacher CV portal: uses (evidence: `components/nearby-tutor-scanner.tsx`)
- Profile portal → Teacher CV portal: uses (evidence: `components/profile-modal.tsx`)
- Profile portal → Teacher verification: uses (evidence: `components/profile-modal.tsx`)
- Sign-in dialog → Teacher verification: uses (evidence: `components/sign-in-modal.tsx`)
- CV PDF preview → Teacher CV portal: uses (evidence: `components/cv-pdf-modal.tsx`)
- Admin page → Admin dashboard: renders (evidence: `app/admin/page.tsx`)
- Admin page → Job categories and seed data: uses (evidence: `app/admin/page.tsx`)
- Admin dashboard → Job categories and seed data: uses (evidence: `components/admin-dashboard.tsx`)
- Admin dashboard → Tutor directory data: uses (evidence: `components/admin-dashboard.tsx`)
- Jobs API → Job categories and seed data: loads defaults (evidence: `app/api/jobs/route.ts`)
- Jobs API → Jobs file store: reads and writes (evidence: `app/api/jobs/route.ts`)
