# putra10/analytica architecture

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

- Interactive diagram: https://gitdiagram.com/putra10/analytica
- Repository: https://github.com/putra10/analytica

## Overview

Analytica is a client-side mathematics learning laboratory for complex analysis, analytic geometry, and abstract algebra, with bilingual theory and a formula-summary area. A learner navigates from the landing page into a course module, enters or adjusts mathematical examples, and explores computed or visual results in interactive labs. The graph preserves the documented residue, geometry, transformation, group, and ring capabilities; unsampled features use their supported enclosing directories. Detailed wiring is shown only where excerpts or README evidence support it.

Main entry points: [`src/App.tsx`](https://github.com/putra10/analytica/blob/main/src/App.tsx) (App shell), [`src/components/complex/MappingLab.tsx`](https://github.com/putra10/analytica/blob/main/src/components/complex/MappingLab.tsx) (Mapping lab), [`src/components/geometry/GeometryModule.tsx`](https://github.com/putra10/analytica/blob/main/src/components/geometry/GeometryModule.tsx) (Geometry module), [`src/components/algebra/AlgebraModule.tsx`](https://github.com/putra10/analytica/blob/main/src/components/algebra/AlgebraModule.tsx) (Algebra module)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shell["Application shell"]
  node_entry["React entry<br/>[main.tsx]"]
  node_app["App shell<br/>[App.tsx]"]
  node_router["Hash router<br/>[router.ts]"]
  node_landing["Landing page<br/>[Landing.tsx]"]
  node_about["About page<br/>[About.tsx]"]
end

subgraph group_complex["Complex analysis"]
  node_complex_module["Complex module<br/>[ComplexModule.tsx]"]
  node_mapping["Mapping lab<br/>[MappingLab.tsx]"]
  node_complex_canvas["Complex visualizations<br/>[ComplexCanvas.tsx]"]
  node_complex_theory["Complex theory<br/>[ComplexTheory.tsx]"]
  node_complex_math["Complex math<br/>[complex-math.ts]"]
  node_expression["Expression compiler<br/>[expr.ts]"]
end

subgraph group_geometry["Analytic geometry"]
  node_geometry_module["Geometry module<br/>[GeometryModule.tsx]"]
  node_geometry_labs["Geometry labs"]
  node_transform_lab["Affine transforms<br/>[TransformLab.tsx]"]
  node_matrix_math["Matrix math<br/>[matrix-math.ts]"]
  node_geometry_math["Geometry math"]
  node_geometry_theory["Geometry theory<br/>[GeometryTheory.tsx]"]
end

subgraph group_algebra["Abstract algebra"]
  node_algebra_module["Algebra module<br/>[AlgebraModule.tsx]"]
  node_group_lab["Group theory lab<br/>[GroupLab.tsx]"]
  node_group_math["Group calculations<br/>[group-theory.ts]"]
  node_permutation_lab["Permutation lab<br/>[PermutationLab.tsx]"]
  node_permutation_math["Permutation math<br/>[permutations.ts]"]
  node_ring_labs["Ring and polynomial labs"]
  node_ring_math["Ring calculations<br/>[rings.ts]"]
end

subgraph group_reference["Course reference"]
  node_summary["Formula summary<br/>[Summary.tsx]"]
  node_summary_content["Summary content<br/>[summary.ts]"]
  node_summary_examples["Worked examples"]
end

node_learner(("Learner"))

node_learner -->|"opens app"| node_entry
node_entry -->|"renders"| node_app
node_app -->|"reads route"| node_router
node_app -->|"renders home"| node_landing
node_app -->|"selects complex"| node_complex_module
node_app -->|"selects geometry"| node_geometry_module
node_app -->|"selects algebra"| node_algebra_module
node_app -->|"opens summary"| node_summary
node_app -->|"opens about"| node_about
node_complex_module -->|"shows lab"| node_mapping
node_mapping -->|"compiles input"| node_expression
node_mapping -->|"evaluates mapping"| node_complex_math
node_mapping -->|"draws results"| node_complex_canvas
node_complex_module -->|"shows theory"| node_complex_theory
node_geometry_module -->|"offers labs"| node_geometry_labs
node_geometry_module -->|"offers transforms"| node_transform_lab
node_transform_lab -->|"computes transforms"| node_matrix_math
node_geometry_module -->|"shows theory"| node_geometry_theory
node_algebra_module -->|"offers group lab"| node_group_lab
node_group_lab -->|"computes groups"| node_group_math
node_algebra_module -->|"offers permutations"| node_permutation_lab
node_permutation_lab -->|"computes permutations"| node_permutation_math
node_algebra_module -->|"offers ring labs"| node_ring_labs
node_ring_labs -->|"computes rings"| node_ring_math
node_summary -->|"renders formulas"| node_summary_content
node_summary -->|"renders examples"| node_summary_examples
node_summary -->|"links to labs"| node_router

click node_entry "https://github.com/putra10/analytica/blob/main/src/main.tsx"
click node_app "https://github.com/putra10/analytica/blob/main/src/App.tsx"
click node_router "https://github.com/putra10/analytica/blob/main/src/lib/router.ts"
click node_landing "https://github.com/putra10/analytica/blob/main/src/pages/Landing.tsx"
click node_about "https://github.com/putra10/analytica/blob/main/src/pages/About.tsx"
click node_complex_module "https://github.com/putra10/analytica/blob/main/src/components/complex/ComplexModule.tsx"
click node_mapping "https://github.com/putra10/analytica/blob/main/src/components/complex/MappingLab.tsx"
click node_complex_canvas "https://github.com/putra10/analytica/blob/main/src/components/complex/ComplexCanvas.tsx"
click node_complex_theory "https://github.com/putra10/analytica/blob/main/src/components/complex/ComplexTheory.tsx"
click node_complex_math "https://github.com/putra10/analytica/blob/main/src/lib/complex-math.ts"
click node_expression "https://github.com/putra10/analytica/blob/main/src/lib/expr.ts"
click node_geometry_module "https://github.com/putra10/analytica/blob/main/src/components/geometry/GeometryModule.tsx"
click node_geometry_labs "https://github.com/putra10/analytica/tree/main/src/components/geometry"
click node_transform_lab "https://github.com/putra10/analytica/blob/main/src/components/transform/TransformLab.tsx"
click node_matrix_math "https://github.com/putra10/analytica/blob/main/src/lib/matrix-math.ts"
click node_geometry_math "https://github.com/putra10/analytica/tree/main/src/lib"
click node_geometry_theory "https://github.com/putra10/analytica/blob/main/src/components/geometry/GeometryTheory.tsx"
click node_algebra_module "https://github.com/putra10/analytica/blob/main/src/components/algebra/AlgebraModule.tsx"
click node_group_lab "https://github.com/putra10/analytica/blob/main/src/components/algebra/GroupLab.tsx"
click node_group_math "https://github.com/putra10/analytica/blob/main/src/lib/group-theory.ts"
click node_permutation_lab "https://github.com/putra10/analytica/blob/main/src/components/algebra/PermutationLab.tsx"
click node_permutation_math "https://github.com/putra10/analytica/blob/main/src/lib/permutations.ts"
click node_ring_labs "https://github.com/putra10/analytica/tree/main/src/components/algebra"
click node_ring_math "https://github.com/putra10/analytica/blob/main/src/lib/rings.ts"
click node_summary "https://github.com/putra10/analytica/blob/main/src/pages/Summary.tsx"
click node_summary_content "https://github.com/putra10/analytica/blob/main/src/content/summary.ts"
click node_summary_examples "https://github.com/putra10/analytica/blob/main/src/content/summary-examples.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,node_router,node_landing,node_about toneBlue
class node_complex_module,node_mapping,node_complex_canvas,node_complex_theory,node_complex_math,node_expression toneAmber
class node_geometry_module,node_geometry_labs,node_transform_lab,node_matrix_math,node_geometry_math,node_geometry_theory toneMint
class node_algebra_module,node_group_lab,node_group_math,node_permutation_lab,node_permutation_math,node_ring_labs,node_ring_math toneRose
class node_summary,node_summary_content,node_summary_examples,node_learner toneIndigo
```

## Components

### Application shell

- [React entry](https://github.com/putra10/analytica/blob/main/src/main.tsx): `src/main.tsx`
- [App shell](https://github.com/putra10/analytica/blob/main/src/App.tsx): `src/App.tsx`
- [Hash router](https://github.com/putra10/analytica/blob/main/src/lib/router.ts): `src/lib/router.ts`
- [Landing page](https://github.com/putra10/analytica/blob/main/src/pages/Landing.tsx): `src/pages/Landing.tsx`
- [About page](https://github.com/putra10/analytica/blob/main/src/pages/About.tsx): `src/pages/About.tsx`

### Complex analysis

- [Complex module](https://github.com/putra10/analytica/blob/main/src/components/complex/ComplexModule.tsx): `src/components/complex/ComplexModule.tsx`
- [Mapping lab](https://github.com/putra10/analytica/blob/main/src/components/complex/MappingLab.tsx): `src/components/complex/MappingLab.tsx`
- [Complex visualizations](https://github.com/putra10/analytica/blob/main/src/components/complex/ComplexCanvas.tsx): `src/components/complex/ComplexCanvas.tsx`
- [Complex theory](https://github.com/putra10/analytica/blob/main/src/components/complex/ComplexTheory.tsx): `src/components/complex/ComplexTheory.tsx`
- [Complex math](https://github.com/putra10/analytica/blob/main/src/lib/complex-math.ts): `src/lib/complex-math.ts`
- [Expression compiler](https://github.com/putra10/analytica/blob/main/src/lib/expr.ts): `src/lib/expr.ts`

### Analytic geometry

- [Geometry module](https://github.com/putra10/analytica/blob/main/src/components/geometry/GeometryModule.tsx): `src/components/geometry/GeometryModule.tsx`
- [Geometry labs](https://github.com/putra10/analytica/tree/main/src/components/geometry): `src/components/geometry`
- [Affine transforms](https://github.com/putra10/analytica/blob/main/src/components/transform/TransformLab.tsx): `src/components/transform/TransformLab.tsx`
- [Matrix math](https://github.com/putra10/analytica/blob/main/src/lib/matrix-math.ts): `src/lib/matrix-math.ts`
- [Geometry math](https://github.com/putra10/analytica/tree/main/src/lib): `src/lib`
- [Geometry theory](https://github.com/putra10/analytica/blob/main/src/components/geometry/GeometryTheory.tsx): `src/components/geometry/GeometryTheory.tsx`

### Abstract algebra

- [Algebra module](https://github.com/putra10/analytica/blob/main/src/components/algebra/AlgebraModule.tsx): `src/components/algebra/AlgebraModule.tsx`
- [Group theory lab](https://github.com/putra10/analytica/blob/main/src/components/algebra/GroupLab.tsx): `src/components/algebra/GroupLab.tsx`
- [Group calculations](https://github.com/putra10/analytica/blob/main/src/lib/group-theory.ts): `src/lib/group-theory.ts`
- [Permutation lab](https://github.com/putra10/analytica/blob/main/src/components/algebra/PermutationLab.tsx): `src/components/algebra/PermutationLab.tsx`
- [Permutation math](https://github.com/putra10/analytica/blob/main/src/lib/permutations.ts): `src/lib/permutations.ts`
- [Ring and polynomial labs](https://github.com/putra10/analytica/tree/main/src/components/algebra): `src/components/algebra`
- [Ring calculations](https://github.com/putra10/analytica/blob/main/src/lib/rings.ts): `src/lib/rings.ts`

### Course reference

- [Formula summary](https://github.com/putra10/analytica/blob/main/src/pages/Summary.tsx): `src/pages/Summary.tsx`
- [Summary content](https://github.com/putra10/analytica/blob/main/src/content/summary.ts): `src/content/summary.ts`
- [Worked examples](https://github.com/putra10/analytica/blob/main/src/content/summary-examples.ts): `src/content/summary-examples.ts`

### Other components

- **Learner**

## Connections

- Learner → React entry: opens app
- React entry → App shell: renders
- App shell → Hash router: reads route
- App shell → Landing page: renders home
- App shell → Complex module: selects complex
- App shell → Geometry module: selects geometry
- App shell → Algebra module: selects algebra
- App shell → Formula summary: opens summary
- App shell → About page: opens about
- Complex module → Mapping lab: shows lab
- Mapping lab → Expression compiler: compiles input
- Mapping lab → Complex math: evaluates mapping
- Mapping lab → Complex visualizations: draws results
- Complex module → Complex theory: shows theory
- Geometry module → Geometry labs: offers labs
- Geometry module → Affine transforms: offers transforms
- Affine transforms → Matrix math: computes transforms
- Geometry module → Geometry theory: shows theory
- Algebra module → Group theory lab: offers group lab
- Group theory lab → Group calculations: computes groups
- Algebra module → Permutation lab: offers permutations
- Permutation lab → Permutation math: computes permutations
- Algebra module → Ring and polynomial labs: offers ring labs
- Ring and polynomial labs → Ring calculations: computes rings
- Formula summary → Summary content: renders formulas
- Formula summary → Worked examples: renders examples
- Formula summary → Hash router: links to labs
