# Pitch Deck — Flow การทำงานของระบบ (เวอร์ชันปัจจุบัน + v2 School Suite)

> เอกสาร 1 หน้าสำหรับ pitch deck — แสดง **end-to-end workflow** ของทั้งระบบ ตั้งแต่ตั้งฐานโครงสร้าง (ตารางสอน) ไปจนถึงออกรายงานราชการ
> อ้างอิงข้อมูลจริงจาก: `docs/SCORE_UPLOAD_ANALYSIS_WORKFLOW.md`, `docs/DOCX_EXTRACTION.md`, `docs/v2/features/*` (timetable / ai-teaching-assistant / govdoc-engine / teacher-reports / official-documents)
> ดูเวอร์ชัน HTML (เปิดใน browser แคปหน้าจอได้): [`flow.html`](flow.html)

---

## Legend (สี)

| ป้ายสถานะ | สี | ความหมาย |
|---|---|---|
| **MVP** | 🟢 สีเขียว | **มีแล้วในเวอร์ชันปัจจุบัน** (Beta Live — ใช้งานได้จริง) |
| **V.2** | 🔵 สีฟ้า | **ใหม่ใน V.2** (School Suite — ตารางสอน / ปพ.5 / วPA / GovDoc) |
| **V.2 + POC** | 🟣 สีม่วง | **งานวิจัยขั้นสูง** (Multi-Agent Debate / Pedagogy Assistant) |

---

## Flow ภาพรวม (Mermaid)

```mermaid
flowchart LR
    classDef clsNow fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20,stroke-width:2px;
    classDef clsNew fill:#e3f2fd,stroke:#1565c0,color:#0d47a1,stroke-width:2px;
    classDef clsDoc fill:#fff8e1,stroke:#f9a825,color:#5d4037,stroke-width:2px;

    subgraph S1["① ฐานโครงสร้าง — ตารางสอน"]
        direction TB
        A1["📋 อัปโหลดข้อมูล ครู / วิชา / ห้อง / คาบ<br/>(Excel / import)"]:::clsDoc
        A2["🧮 Solver OR-Tools (MVP App แยก)<br/>สร้างตารางสอนอัตโนมัติ (วินาที)"]:::clsNow
        A3["📌 Publish → สร้างห้องอัตโนมัติ<br/>Auto-assign ครูประจำชั้น / ประจำวิชา"]:::clsNew
        A4["👩‍🏫 ครูเห็นห้อง / นักเรียนตัวเอง<br/>อัตโนมัติ (school mode)"]:::clsNew
        A1 --> A2 --> A3 --> A4
    end

    subgraph S2["② เตรียมการเรียนการสอน"]
        direction TB
        B1["🤖 Multi-Agentic AI Studio (v2+POC)<br/>ร่างแผน / สื่อ / นวัตกรรม (ทีม 7 บทบาท)"]:::clsNew
        B2["📤 [ปัจจุบัน] อัปโหลดแผน / ข้อสอบ .docx / .pdf"]:::clsNow
        B3["🔍 สกัดอัตโนมัติ<br/>แผน: sections · ข้อสอบ: Bloom / OBEC / ตัวลวง"]:::clsNow
        B4["✅ ครูตรวจแก้ (HITL) + LLM verifier"]:::clsNow
        B1 --> B4
        B2 --> B3 --> B4
    end

    subgraph S3["③ ข้อสอบ + คะแนนสอบ (ปัจจุบัน)"]
        direction TB
        C1["🧷 ผูกชุดข้อสอบ (ExamBatch)<br/>→ วิเคราะห์รายข้อได้"]:::clsNow
        C2["📥 อัปโหลดคะแนน Excel / CSV<br/>→ preview → จับคู่นักเรียน / คอลัมน์ข้อ"]:::clsNow
        C3["🔐 บันทึก StudentPerformance<br/>ชื่อนักเรียนเข้ารหัส (PDPA)"]:::clsNow
        C1 --> C2 --> C3
    end

    subgraph S4["④ ศูนย์วินิจฉัย & วิเคราะห์ 360° (ปัจจุบัน)"]
        direction TB
        D1["📊 วินิจฉัย 360°: ข้อสอบ · เด็กเสี่ยง At-Risk · ห้องเรียน · Hake-gain<br/>(Deterministic Math ตรง 100% ไม่ผ่าน AI มโน)"]:::clsNow
    end

    subgraph S5["⑤ ออกรายงาน & วPA"]
        direction TB
        E1["📄 [ปัจจุบัน] Report card วิเคราะห์ + สรุปเทอม<br/>Excel / PDF / DOCX"]:::clsNow
        E2["🎓 [v2] ปพ.1 / ปพ.5 / รายงานผู้ปกครอง<br/>เกณฑ์คะแนน→เกรด (grade_mappings ต่อโรงเรียน)"]:::clsNew
        E3["🏛️ [v2] เล่ม วPA / วิจัย คศ.4 (5 บท)<br/>บท 1-3 โครงงาน AI · บท 4 ดึงผลคะแนนจริง"]:::clsNew
        E1 --> E2 --> E3
    end

    subgraph S6["⑥ เอกสารราชการ & หาครูแทน"]
        direction TB
        F1["📜 GovDoc สกัด .docx ราชการ (POC)<br/>(พ.ศ. / บาทถ้วน / anchors ราชการ)"]:::clsNow
        F2["✍️ Web Smart Doc แก้ไข → ออกเลขสารบรรณ → signed PDF"]:::clsNew
        F3["👥 ระบบหาครูสอนแทน (v2)<br/>เทียบคาบว่างจากตารางสอนอัตโนมัติ"]:::clsNew
        F4["📮 บันทึกภาระงานครู (teacher_duties)<br/>→ ผูกตารางสอน / วPA"]:::clsNew
        F1 --> F2 --> F3 --> F4
    end

    A4 --> B1
    A4 --> B2
    B4 --> C1
    C3 --> D1
    D1 --> E1
    D1 --> E2
    D1 --> E3
    F2 --> E3
    F4 -. ภาระงานย้อนกลับเข้าตารางสอน .-> A1
```

---

## อธิบายทีละขั้น

| # | ขั้นตอน | ทำอะไร | ใครใช้ | เอกสาร / ข้อมูลที่ไหล | สถานะ |
|---|---|---|---|---|---|
| 1 | **ตั้งฐานโครงสร้าง** | อัปโหลดข้อมูลครู / วิชา / ห้อง / คาบเรียน | ฝ่ายวิชาการ / admin | Excel/CSV → `Teacher`, `Classroom`, lesson blocks | 🔵 v2 |
| 2 | **สร้างตารางสอนอัตโนมัติ** | Solver OR-Tools ตรวจความขัดแย้ง + สร้างตาราง 5×8 (OPTIMAL < 0.7 วิ) | admin | → `timetable_entries` | 🔵 v2 |
| 3 | **Publish + สร้างห้องอัตโนมัติ** | upsert `Classroom` + auto-assign ครูประจำชั้น (`is_primary`) / ประจำวิชา | admin | → `TeacherClassroomAssignment` (union กับการตั้งเอง) | 🔵 v2 |
| 4 | **ครูเห็นห้อง / นักเรียน** | ครูที่ได้ assignment เห็นนักเรียนห้องนั้นอัตโนมัติ (ชื่อเข้ารหัส) | ครู | `Classroom` + `Student` (zero-knowledge) | 🔵 v2 |
| 5 | **สร้างแผนการสอนอัตโนมัติ** | เลือก OBEC → master plan เทอม (กระจายตัวชี้วัด deterministic + ครู review) → ร่างแผนรายสัปดาห์ (multi-agent AI) | ครู | → `draft_documents` (lesson_plan) | 🔵 v2 |
| 6 | **อัปโหลดแผน / ข้อสอบเดิม + สกัด** | .docx/.pdf → สกัดโครงสร้าง (แผน: sections; ข้อสอบ: ข้อ / Bloom / OBEC / ตัวลวง) → ครูตรวจแก้ (HITL) + LLM verifier | ครู | → `LessonPlan` + `ExamBatch` / `AssessmentItem` | 🟢 มีแล้ว |
| 7 | **ผูกชุดข้อสอบ** | เลือก exam batch ตอนอัปโหลดคะแนน → วิเคราะห์รายข้อได้ | ครู | `ExamBatch` ↔ คอลัมน์คะแนน | 🟢 มีแล้ว |
| 8 | **อัปโหลดคะแนนสอบ** | Excel/CSV → preview → จับคู่นักเรียน / คอลัมน์ข้อ → บันทึก (เข้ารหัส PDPA) | ครู | → `StudentPerformance` + `ScoreAnalysisReport` | 🟢 มีแล้ว |
| 9 | **วิเคราะห์อัตโนมัติ 5 ระดับ** | ข้อสอบ (item/distractor/Bloom/OBEC) · นักเรียน (progress/at-risk/AI diagnostic) · ห้อง (distribution/red-zone/hake-gain) · หลักสูตร (coverage/gap) · รายเทอม (AI สรุปภาษาไทย) | ระบบอัตโนมัติ | analytics JSON + report cards | 🟢 มีแล้ว |
| 10 | **ออกรายงานผลการเรียน** | เกณฑ์คะแนน→เกรด (default สพฐ. + ต่อโรงเรียน) → ปพ.1, ปพ.5, รายงานผู้ปกครอง | ครู / ฝ่ายวิชาการ | → `grade_mappings` + `report_documents` | 🔵 v2 |
| 11 | **ออกรายงานวิเคราะห์ / ราชการ / วPA / คศ.4** | pack วิเคราะห์ export docx/pdf/xlsx · วPA / คศ.4 บท 4 ดึงจาก score DB อัตโนมัติ · แม่แบบ BYOT (docxtpl) คง layout 100% | ครู | → `report_documents` + `document_templates` | 🟢 (report card/สรุปเทอม) + 🔵 (ปพ./วPA/คศ.4) |
| 12 | **เอกสารราชการ + แจกจ่าย** | GovDoc สกัด .docx ราชการ → แก้บน Web Smart Doc → ออกเลขสารบรรณ → signed PDF → `teacher_duties` → ผูกตารางสอน/วPA + แจ้งเตือน / รับทราบ / หาครูแทน | admin / ครู | → `school_documents`, `teacher_duties`, read receipts | 🔵 v2 |

---

## เอกสารที่ไหลในระบบ (Document Pipeline)

| ต้นทาง (เอกสารจริง) | กระบวนการ | ปลายทางในระบบ | นำไปใช้ต่อ |
|---|---|---|---|
| แผนการสอน .docx / .pdf | สกัด (mammoth / spatial graph) | `LessonPlan` (sections) | ฐานการเรียน · few-shot สร้างแผนอัตโนมัติ (v2) |
| ข้อสอบ .docx / .pdf | สกัด deterministic + LLM fallback | `ExamBatch` + `AssessmentItem` (Bloom/OBEC/ตัวลวง) | item analysis · curriculum alignment |
| คะแนนสอบ Excel / CSV | จับคู่คอลัมน์ + เข้ารหัสชื่อ | `StudentPerformance` | วิเคราะห์ทั้ง 5 ระดับ |
| Analytics JSON | Report Service + Grade Mapper | ปพ.1 / ปพ.5 / รายงานผู้ปกครอง / วPA / คศ.4 บท 4 | เอกสารราชการ (v2) |
| เอกสารราชการ .docx (คำสั่ง/หนังสือ) | GovDoc สกัด + Thai locale (พ.ศ./บาทถ้วน) | `school_documents` + `teacher_duties` | ตารางสอน · แผน · วPA (v2) |
| แม่แบบ .docx ของโรงเรียน (BYOT) | Template Injection (docxtpl) — ระบบฉีดข้อมูลลงแท็ก `{{ }}` | เอกสารที่คง layout ต้นฉบับ 100% | **ปรับฟอร์มได้ตามที่โรงเรียนต้องการ** |

---

## หมายเหตุ

- **ชื่อเวอร์ชัน:** ภายใน repo โฟลเดอร์ `docs/v2/` เรียกระบบใหม่ว่า **v3.0 School Suite** (ตารางสอน / เอกสาร / โครงการ + KRU Suite dual-mode) — สำหรับ pitch deck ใช้คำว่า "v2" เพื่อความกระชับ
- **เส้นทาง v1 → v2:** ทุกฟีเจอร์ "มีแล้ว" ใน flow ยังคงอยู่และถูกต่อยอด (เช่น สกัดแผนเดิม → few-shot สร้างแผนใหม่, score DB → วPA/คศ.4) — v2 เป็นการต่อจากข้อมูลเดิม ไม่ใช่ระบบใหม่ที่ทิ้งของเก่า
- **Dual-mode:** ระบบ v2 ใช้ได้ 2 โหมดจากโค้ดชุดเดียว — standalone (KRU Suite free/paid) และ platform (school mode + RBAC) — และอัปเกรดต่อระบบหลักได้โดยข้อมูลไม่หาย
