# TNSU EMS — AI Workspace พื้นที่ทำงานร่วมระหว่างทีมและ AI Agent (Claude Code, Codex และอื่น ๆ) สำหรับโครงการ **TNSU Education Management Platform** (ระบบบริหารจัดการการศึกษาและกีฬา มหาวิทยาลัยการกีฬาแห่งชาติ) ครอบคลุม **17 วิทยาเขต** และ **13 โรงเรียนกีฬา** repo นี้เก็บ**ข้อมูลโครงการ เอกสารออกแบบ และการตัดสินใจ** ที่ Agent ใช้เป็นแหล่งอ้างอิง ยังไม่มีซอร์สโค้ดของระบบ ## สถานะ **ขั้น discovery และเริ่มออกแบบ** (อัปเดต 2026-10-30) | เรื่อง | สถานะ | |---|---| | ขอบเขตและ use case | ✅ 162 use case / 35 module จากเล่ม 02 Workflow | | Role Matrix / Security Matrix | 📝 ฉบับร่าง v0.1 รอ BA รีวิว | | Tech stack | ✅ ตัดสินใจแล้ว รวมฐานข้อมูล SQL Server ([ADR-0001](docs/adr/0001-tech-stack.md)) | | Data model | ⏳ จะออกแบบทีละ module | | Sitemap และ mockup หน้าจอ | ⏳ รอคำสั่ง | | การเชื่อมระบบภายนอก | ⏳ ออกแบบควบคู่กับ module ที่ต้องใช้ | | ระบบเดิม | ไม่มี สร้างใหม่ทั้งหมด | ## Tech stack Vue + **Nuxt.js** (SSR) · Go + **[Stream Framework](https://api-docs.innovationstream.app/)** · **SQL Server** (ลูกค้าใช้อยู่แล้ว) · RabbitMQ (queue) · RustFS (S3) · Redis · Harbor · ArgoCD · Rancher · Kubernetes · OpenSearch + Dashboards · Grafana รายละเอียดอยู่ใน [docs/adr/0001-tech-stack.md](docs/adr/0001-tech-stack.md) ## โครงสร้าง repo ``` . ├── AGENTS.md # คำสั่งสำหรับ AI Agent ทุกตัว (จุดเริ่มต้นของ Agent) ├── CLAUDE.md # ดึง AGENTS.md มาใช้ (สำหรับ Claude Code) ├── TNSU_EDU_Proposal_281069_Stream.docx # Business Proposal ต้นฉบับ v1.0 ├── TNSU_EDU 191069.drawio # ต้นฉบับของ BA: module, โครงสร้างหน่วยงาน, หลักสูตร, flow ├── use_cases/ # Use case Explorer ที่ทีม export มา (ต้นฉบับ) ├── tracker/ # เว็บติดตามความคืบหน้างานของทีม (เครื่องมือภายใน ไม่ใช่ส่วนของระบบ) └── docs/ ├── adr/ # Architecture Decision Records └── agent/ # ฐานความรู้ของโครงการ (เริ่มอ่านที่ README.md) ├── 01–14 *.md # ภาพรวม ศัพท์ module บทบาท workflow UX │ # architecture NFR แผนงาน KPI คำถามค้าง │ # use case Role Matrix Security Matrix ├── use-cases/ # catalog use case ทีละ module (สร้างอัตโนมัติ) ├── assets/ # ภาพ module ของ BA, workflow, ภาพตัวอย่างหน้าจอ ├── source/ # ข้อความดิบจาก Proposal └── tools/ # สคริปต์สร้างเอกสาร ``` ## เริ่มต้นอ่าน - **คน:** เริ่มที่ [docs/agent/README.md](docs/agent/README.md) ซึ่งมีแผนที่เอกสารว่าเรื่องไหนอยู่ไฟล์ไหน - **AI Agent:** อ่าน [AGENTS.md](AGENTS.md) Claude Code โหลดให้อัตโนมัติผ่าน `CLAUDE.md` ส่วน Codex และเครื่องมืออื่นที่รองรับ AGENTS.md ก็อ่านไฟล์นี้เอง ไฟล์ที่ใช้บ่อย: | ต้องการ | ไฟล์ | |---|---| | Use case ทั้งหมด (W-1…W-163) | [docs/agent/12-use-cases.md](docs/agent/12-use-cases.md) → [docs/agent/use-cases/](docs/agent/use-cases/README.md) | | ฟังก์ชันตามภาพ module ของ BA (UNI / SS) | [docs/agent/03-modules.md](docs/agent/03-modules.md) | | บทบาทและอำนาจอนุมัติ | [docs/agent/13-role-matrix.md](docs/agent/13-role-matrix.md) | | สิทธิ์การเข้าถึงข้อมูลและความปลอดภัย | [docs/agent/14-security-matrix.md](docs/agent/14-security-matrix.md) | | ศัพท์ไทย ↔ อังกฤษ | [docs/agent/02-glossary.md](docs/agent/02-glossary.md) | | เรื่องที่ยังค้าง | [docs/agent/11-open-questions-and-known-issues.md](docs/agent/11-open-questions-and-known-issues.md) | ## ติดตามความคืบหน้างาน ```bash cd tracker && go run . # เปิด http://localhost:8099 scripts/tailscale.sh on # (ไม่บังคับ) เปิดให้เข้าจาก Tailscale ได้ที่ http://100.73.238.43:8099/ ``` เว็บแสดงจำนวน Task / Review / Checkpoint, milestone, งานที่กำลังทำ, ประวัติ commit, ผลทดสอบ, บันทึกการแก้ปัญหา และงานรอรีวิว อัปเดตสดเมื่อแก้ไฟล์ใน `tracker/data/` วิธีอัปเดตข้อมูลอยู่ใน [tracker/README.md](tracker/README.md) **เว็บนี้เป็นเครื่องมือภายในของทีม ไม่ได้เป็นส่วนหนึ่งของระบบ TNSU EMS** ## การอัปเดตข้อมูล ### เมื่อทีม export Use case Explorer ใหม่ 1. วางไฟล์ export ใหม่ทับใน `use_cases/` 2. สร้าง catalog ใหม่ (ใช้แค่ Python 3 ไม่ต้องติดตั้ง package): ```bash python3 docs/agent/tools/gen_use_cases.py ``` 3. ตรวจ diff ใน `docs/agent/use-cases/` แล้วอัปเดต `docs/agent/12-use-cases.md` ถ้ามี module หรือแนวคิดใหม่ ห้ามแก้ไฟล์ใน `docs/agent/use-cases/` ด้วยมือ เพราะจะถูกเขียนทับเมื่อรันสคริปต์ ### เมื่อ BA อัปเดตไฟล์ draw.io วางไฟล์ใหม่ (`TNSU_EDU*.drawio`) ไว้ที่ root แล้วรัน `python3 docs/agent/tools/gen_ba_drawio.py` สคริปต์จะใช้ไฟล์ที่ใหม่ที่สุดและสร้าง `docs/agent/ba-drawio.md` ใหม่ จากนั้นตรวจ diff และอัปเดต `docs/agent/03-modules.md` ถ้ามีเนื้อหาเปลี่ยน ### ดู Use case Explorer ในเบราว์เซอร์ ```bash cd use_cases && python3 -m http.server 8000 # เปิด http://localhost:8000/UC1-Explorer.dc.html ``` ### เมื่อมีการตัดสินใจใหม่ - เรื่องเทคนิคหรือสถาปัตยกรรม: เพิ่ม ADR ใหม่ใน `docs/adr/NNNN-ชื่อเรื่อง.md` - เรื่อง requirement หรือคำตอบจากลูกค้า: อัปเดตไฟล์ที่เกี่ยวข้องใน `docs/agent/` และย้ายคำถามใน `11-open-questions-and-known-issues.md` ไปไว้ในส่วน **Resolved** พร้อมวันที่และแหล่งที่มา ## ข้อควรรู้ - **Proposal §5 และ §7 ยังไม่ได้เขียนสำหรับ TNSU** เนื้อหาตอนนี้เป็นของที่ค้างมาจากเอกสารโครงการอื่น ห้ามใช้อ้างอิง - **ค่ากฎและนโยบาย** (ค่าธรรมเนียม เกณฑ์ วงเงิน ระยะเวลาเก็บข้อมูล) มหาวิทยาลัยหรืออาจารย์เป็นผู้ตั้งค่าในระบบ ระบบต้องตั้งค่าได้ ห้าม hard-code - **รหัสที่ใช้อ้างอิง:** - use case: `W-49` - module ของ use case: `REG`, `FIN`, `SCH` (**`SCH` = ทุนและ กยศ.**) - module ตามภาพของ BA: `UNI-04.6`, `SS-07` (**`SS` = โรงเรียนกีฬา**) - ระบบย่อยใน Proposal: `TNSU-05` - ปีในระบบใช้ **พ.ศ.** และเขียนภาคเรียนแบบ `1/2568`