# datakaseops-ctrl/iskvenue architecture

> Architecture diagram of the GitHub repository datakaseops-ctrl/iskvenue, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/datakaseops-ctrl/iskvenue
- Repository: https://github.com/datakaseops-ctrl/iskvenue

## Overview

This is a browser-based Kerala 2026–27 exam-planning application, with workflows for configuring multi-stage exam-centre allocations and preparing question-paper requirements. Users submit plans or skill-level selections, then receive an acknowledgment; the app also keeps a local submission record and includes a searchable/exportable ledger. The graph includes the major form, allocation, and ledger components named by the source index. Some wiring is not visible in the excerpts, so uncertain component relationships are omitted.

Main entry points: [`src/App.tsx`](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/App.tsx) (Application Shell), [`src/components/MultiStepPlanningForm.tsx`](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/MultiStepPlanningForm.tsx) (Planning Form), [`src/types.ts`](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/types.ts) (Submission Types), [`src/components/QuestionPaperPreparationModule.tsx`](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/QuestionPaperPreparationModule.tsx) (Question Paper Form)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application Shell"]
  node_entry["React Entry<br/>[main.tsx]"]
  node_app_shell["Application Shell<br/>[App.tsx]"]
  node_local_store[("Browser Storage")]
end

subgraph group_planning["Centre Planning"]
  node_planning_form["Planning Form"]
  node_screening_editor["Screening Editor"]
  node_allocation_editor["Stage Allocations"]
  node_trades["Trade and Region Data<br/>[trades.ts]"]
end

subgraph group_papers["Paper Preparation"]
  node_paper_form["Question Paper Form"]
end

subgraph group_records["Submission Records"]
  node_submission_model["Submission Types<br/>[types.ts]"]
  node_success_modal["Submission Acknowledgment"]
  node_ledger["Submission Ledger"]
  node_currency["Currency Formatting<br/>[numberToWords.ts]"]
end

node_user(("Planner"))

node_user -->|"opens"| node_entry
node_entry -->|"renders"| node_app_shell
node_app_shell -->|"renders"| node_planning_form
node_app_shell -->|"renders"| node_paper_form
node_app_shell -->|"renders"| node_success_modal
node_app_shell -->|"reads and writes"| node_local_store
node_planning_form -->|"uses"| node_screening_editor
node_planning_form -->|"uses"| node_trades
node_paper_form -->|"uses"| node_trades
node_planning_form -->|"builds records"| node_submission_model
node_paper_form -->|"builds records"| node_submission_model
node_success_modal -->|"displays"| node_submission_model
node_ledger -->|"reads records"| node_submission_model
node_allocation_editor -->|"formats amounts"| node_currency
node_ledger -->|"formats amounts"| node_currency
node_success_modal -->|"formats amounts"| node_currency

click node_entry "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/main.tsx"
click node_app_shell "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/App.tsx"
click node_planning_form "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/MultiStepPlanningForm.tsx"
click node_screening_editor "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/ScreeningExamStageEditor.tsx"
click node_allocation_editor "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/StageAllocationEditor.tsx"
click node_trades "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/data/trades.ts"
click node_paper_form "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/QuestionPaperPreparationModule.tsx"
click node_submission_model "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/types.ts"
click node_success_modal "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/SubmissionSuccessModal.tsx"
click node_ledger "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/SubmissionsLedger.tsx"
click node_currency "https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/utils/numberToWords.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_entry,node_app_shell,node_local_store toneBlue
class node_planning_form,node_screening_editor,node_allocation_editor,node_trades toneAmber
class node_paper_form toneMint
class node_submission_model,node_success_modal,node_ledger,node_currency toneRose
class node_user toneIndigo
```

## Components

### Application Shell

- [React Entry](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/main.tsx): `src/main.tsx`
- [Application Shell](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/App.tsx): `src/App.tsx`
- **Browser Storage**

### Centre Planning

- [Planning Form](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/MultiStepPlanningForm.tsx): `src/components/MultiStepPlanningForm.tsx`
- [Screening Editor](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/ScreeningExamStageEditor.tsx): `src/components/ScreeningExamStageEditor.tsx`
- [Stage Allocations](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/StageAllocationEditor.tsx): `src/components/StageAllocationEditor.tsx`
- [Trade and Region Data](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/data/trades.ts): `src/data/trades.ts`

### Paper Preparation

- [Question Paper Form](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/QuestionPaperPreparationModule.tsx): `src/components/QuestionPaperPreparationModule.tsx`

### Submission Records

- [Submission Types](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/types.ts): `src/types.ts`
- [Submission Acknowledgment](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/SubmissionSuccessModal.tsx): `src/components/SubmissionSuccessModal.tsx`
- [Submission Ledger](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/components/SubmissionsLedger.tsx): `src/components/SubmissionsLedger.tsx`
- [Currency Formatting](https://github.com/datakaseops-ctrl/iskvenue/blob/main/src/utils/numberToWords.ts): `src/utils/numberToWords.ts`

### Other components

- **Planner**

## Connections

- Planner → React Entry: opens (evidence: `src/main.tsx`)
- React Entry → Application Shell: renders (evidence: `src/main.tsx`)
- Application Shell → Planning Form: renders (evidence: `src/App.tsx`)
- Application Shell → Question Paper Form: renders (evidence: `src/App.tsx`)
- Application Shell → Submission Acknowledgment: renders (evidence: `src/App.tsx`)
- Application Shell → Browser Storage: reads and writes (evidence: `src/App.tsx`)
- Planning Form → Screening Editor: uses (evidence: `src/components/MultiStepPlanningForm.tsx`)
- Planning Form → Trade and Region Data: uses (evidence: `src/components/MultiStepPlanningForm.tsx`)
- Question Paper Form → Trade and Region Data: uses (evidence: `src/components/QuestionPaperPreparationModule.tsx`)
- Planning Form → Submission Types: builds records (evidence: `src/components/MultiStepPlanningForm.tsx`)
- Question Paper Form → Submission Types: builds records (evidence: `src/components/QuestionPaperPreparationModule.tsx`)
- Submission Acknowledgment → Submission Types: displays (evidence: `src/components/SubmissionSuccessModal.tsx`)
- Submission Ledger → Submission Types: reads records (evidence: `src/components/SubmissionsLedger.tsx`)
- Stage Allocations → Currency Formatting: formats amounts (evidence: `src/components/StageAllocationEditor.tsx`)
- Submission Ledger → Currency Formatting: formats amounts (evidence: `src/components/SubmissionsLedger.tsx`)
- Submission Acknowledgment → Currency Formatting: formats amounts (evidence: `src/components/SubmissionSuccessModal.tsx`)
