# karensargsyan74-ai/sait_project architecture

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

- Interactive diagram: https://gitdiagram.com/karensargsyan74-ai/sait_project
- Repository: https://github.com/karensargsyan74-ai/sait_project

## Overview

This repository is a set of Python content-authoring scripts for a Java education site: they assemble lesson and task HTML, create localized lesson variants, and write or repair lesson SVGs. The apparent workflow is an editor running a script that reads a source lesson or task and produces localized or assembled content. The tree and excerpts show no application runtime or site-serving code. Edges are limited to source reads explicitly visible in excerpts; other script-to-script and output relationships are not inferred.

Main entry points: [`z_scripts`](https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts) (Algorithm lesson localization), [`z_scripts/assemble_m2_t01_en_am.py`](https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/assemble_m2_t01_en_am.py) (Algorithm task assembly), [`z_scripts/fix_svg_encoding.py`](https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/fix_svg_encoding.py) (SVG encoding repair)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_lessons["Lesson content"]
  node_algorithms_i18n["Algorithm lesson localization"]
  node_linear_ds_i18n["Linear structures localization"]
  node_nonlinear_ds_i18n["Nonlinear structures localization"]
  node_m3_lessons["Client-server lessons"]
  node_m4_m6_lessons["Database and later lessons"]
end

subgraph group_tasks["Task content"]
  node_m1_tasks["Java task assembly"]
  node_m2_tasks["Algorithm task assembly"]
  node_m2_task_writer["M2 task writing"]
end

subgraph group_assets["Lesson assets"]
  node_svg_repair["SVG encoding repair"]
  node_svg_writers["Lesson SVG writers"]
end

subgraph group_site["Site content updates"]
  node_site_updates["Lesson interface updates"]
end

node_editor(("Content editor"))
node_localized_pages["Localized lesson pages"]
node_lesson_pages["Assembled lesson pages"]
node_task_pages["Assembled task pages"]

node_editor -.->|"runs"| node_algorithms_i18n
node_algorithms_i18n -.->|"generates"| node_localized_pages
node_editor -.->|"runs"| node_m3_lessons
node_m3_lessons -.->|"assembles"| node_lesson_pages
node_editor -.->|"runs"| node_m2_tasks
node_m2_tasks -.->|"writes"| node_task_pages
node_editor -.->|"runs"| node_svg_repair
node_editor -.->|"runs"| node_svg_writers
node_editor -.->|"runs"| node_site_updates
node_algorithms_i18n -->|"reads source"| node_localized_pages
node_m3_lessons -->|"reads source"| node_lesson_pages
node_m2_tasks -->|"reads source"| node_task_pages

click node_algorithms_i18n "https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts"
click node_linear_ds_i18n "https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/gen_linear_ds_i18n.py"
click node_nonlinear_ds_i18n "https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/gen_nonlinear_ds_i18n.py"
click node_m3_lessons "https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts"
click node_m4_m6_lessons "https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts"
click node_m1_tasks "https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts"
click node_m2_tasks "https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/assemble_m2_t01_en_am.py"
click node_m2_task_writer "https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/_write_m2_t04_am.py"
click node_svg_repair "https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/fix_svg_encoding.py"
click node_svg_writers "https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts"
click node_site_updates "https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts"

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_algorithms_i18n,node_linear_ds_i18n,node_nonlinear_ds_i18n,node_m3_lessons,node_m4_m6_lessons toneBlue
class node_m1_tasks,node_m2_tasks,node_m2_task_writer toneAmber
class node_svg_repair,node_svg_writers toneMint
class node_site_updates,node_task_pages toneRose
class node_editor,node_localized_pages,node_lesson_pages toneIndigo
```

## Components

### Lesson content

- [Algorithm lesson localization](https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts): `z_scripts`
- [Linear structures localization](https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/gen_linear_ds_i18n.py): `z_scripts/gen_linear_ds_i18n.py`
- [Nonlinear structures localization](https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/gen_nonlinear_ds_i18n.py): `z_scripts/gen_nonlinear_ds_i18n.py`
- [Client-server lessons](https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts): `z_scripts`
- [Database and later lessons](https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts): `z_scripts`

### Task content

- [Java task assembly](https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts): `z_scripts`
- [Algorithm task assembly](https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/assemble_m2_t01_en_am.py): `z_scripts/assemble_m2_t01_en_am.py`
- [M2 task writing](https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/_write_m2_t04_am.py): `z_scripts/_write_m2_t04_am.py`

### Lesson assets

- [SVG encoding repair](https://github.com/karensargsyan74-ai/sait_project/blob/main/z_scripts/fix_svg_encoding.py): `z_scripts/fix_svg_encoding.py`
- [Lesson SVG writers](https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts): `z_scripts`

### Site content updates

- [Lesson interface updates](https://github.com/karensargsyan74-ai/sait_project/tree/main/z_scripts): `z_scripts`

### Other components

- **Content editor**
- **Localized lesson pages**
- **Assembled lesson pages**
- **Assembled task pages**

## Connections

- Content editor → Algorithm lesson localization: runs
- Algorithm lesson localization → Localized lesson pages: generates
- Content editor → Client-server lessons: runs
- Client-server lessons → Assembled lesson pages: assembles
- Content editor → Algorithm task assembly: runs
- Algorithm task assembly → Assembled task pages: writes
- Content editor → SVG encoding repair: runs
- Content editor → Lesson SVG writers: runs
- Content editor → Lesson interface updates: runs
- Algorithm lesson localization → Localized lesson pages: reads source (evidence: `z_scripts/gen_searching_lesson_i18n.py`)
- Client-server lessons → Assembled lesson pages: reads source (evidence: `z_scripts/assemble_m3_l01_ru.py`)
- Algorithm task assembly → Assembled task pages: reads source (evidence: `z_scripts/assemble_m2_t01_en_am.py`)
