Skip to content

2.1 · 7 กลุ่มแพลตฟอร์ม

docs/index.md มีตารางกลุ่มแพลตฟอร์มแบบย่อสำหรับผู้ที่เพิ่งเปิดคู่มือ — บทนี้ขยายตารางนั้นให้ละเอียดขึ้น พร้อมแก้ไข claim ที่การตรวจสอบจริงในระหว่างเขียน Volume 3-10 พบว่าไม่ตรงกับที่ระบุไว้แต่เดิม (ทั้งใน docs/index.md และในบางจุดของ Canonical Truths รุ่นแรก)


2.1.1 · Legacy Core

Repositoryvtrc-api, cu-central-api, centralize-api
Stack จริงNode.js + Express + Apollo GraphQL + Sequelize + MariaDB (vtrc-api) / Sequelize + MSSQL + LDAP/AD (cu-central-api) / NestJS + TypeORM + MSSQL (centralize-api)
บทบาทแกนกลางของแพลตฟอร์มมาตั้งแต่ก่อนแยกเป็น microservices — ทุก request จาก Web Frontends และ Mobile ไหลผ่าน vtrc-api ก่อนไปถึงข้อมูล HR จริงที่ cu-central-api เป็นเจ้าของ
จุดที่ต้องระวังโฟลเดอร์ centralize/ และ env END_POINT_CENTRALIZE ใน vtrc-api ชี้ไป cu-central-api (Node + GraphQL) ไม่ใช่ NestJS centralize-api (REST) แม้ชื่อจะคล้ายกันมาก — centralize-api เองยังไม่มีหลักฐาน caller ที่ยืนยันได้ (debt E-08)

รายละเอียดเต็มที่ Volume 3 · Legacy Core


2.1.2 · Web Frontends

Repositoryvtrc-web, vtrc-rc-backoffice, vtrc-backoffice, vtrc-backoffice-new
Stack จริงReact 16 + Webpack/CRA + Apollo Client v2 — AntD ไม่ใช่ "v3/v4" แบบรวมกลุ่มตามที่ docs/index.md เคยระบุ: มีเพียง vtrc-web ที่ใช้ AntD v3 ส่วนอีก 3 repo (vtrc-rc-backoffice, vtrc-backoffice, vtrc-backoffice-new) resolve เป็น v4.15.4 ตรงกันหมด
บทบาทเว็บแอปสำหรับพนักงาน (vtrc-web) และ HR/Admin (อีก 3 repo) คุยกับ backend เดียวกันคือ vtrc-api ผ่าน GraphQL
จุดที่ต้องระวังvtrc-backoffice-new เป็น fork ของ vtrc-backoffice ไม่ใช่ rewrite — โครงสร้าง src/ ตรงกัน 99%+ (ต่างกันแค่ 3 ไฟล์จาก 700+ ไฟล์) ทั้งสองยังมีแนวโน้ม live คู่กัน (deploy status จริง — UNVERIFIED)

รายละเอียดเต็มที่ Volume 4 · Web Frontends


2.1.3 · 2way Platform

Repository2way-api, 2way-batch, 2way-line-service, 2way-meeting-backoffice, 2way-vtrc-api
Stack จริงไม่ใช่ NestJS ล้วนตามที่ระบุไว้เดิม — เป็นระบบสองยุคซ้อนกัน: 2way-api/2way-batch/2way-line-service เป็น NestJS 9 + TypeORM + MSSQL (จัดการเฉพาะบาง feature เช่น survey/announce admin CRUD) ส่วน 2way-vtrc-api เป็น Express.js + Sequelize (MSSQL) legacy monolith ที่เป็น backend หลักจริงที่ frontend ฝั่งพนักงานเรียกใช้งาน2way-meeting-backoffice เป็น Next.js 12 + React 17 + MUI
บทบาทฟีเจอร์ "สื่อสารสองทาง" ระหว่าง HR/แอดมินกับพนักงานผ่าน LINE OA — ประกาศ, แบบสำรวจ, เรื่องร้องเรียน, incident, FAQ, chat center
จุดที่ต้องระวังชื่อ 2way-meeting-backoffice ทำให้เข้าใจผิดว่าเกี่ยวกับระบบประชุม — ไม่เกี่ยวเลย; 2way-api เชื่อม 2way-line-service ด้วย hardcoded IP ไม่ผ่าน DNS

รายละเอียดเต็มที่ Volume 5 · 2way Platform


2.1.4 · Domain Microservices

Repositorybenefit-api, chat-center-api, job-scheduler-api, workflow-api, recruitment-api, ai-recruitment-api, pms-api, sso-api, vtrc-common
Stack จริงNestJS 9 + TypeORM/MSSQL เป็นหลัก ยกเว้น ai-recruitment-api ที่เป็น Express — ไม่มี MongoDB ในกลุ่มนี้ ต่างจากที่ docs/index.md เคยระบุว่าใช้ "Mongoose/Sequelize" รวมกลุ่ม
บทบาทแยกออกมาจาก legacy core เพื่อรับผิดชอบงาน HR เฉพาะด้าน (สวัสดิการ, สรรหา, performance, แชท)
จุดที่ต้องระวังvtrc-common ไม่ใช่ shared npm library — เป็น standalone HTTP microservice (Dockerfile + .env + MSSQL DB ของตัวเอง, พอร์ต 9310) ไม่มี repo ใดประกาศเป็น npm dependency; workflow-api เป็นข้อยกเว้นเดียวที่ไม่มี global JWT guard บังคับจริง

รายละเอียดเต็มที่ Volume 6 · Domain Microservices


2.1.5 · Meeting Platform

Repositorymeeting-vtrc-api, meeting-backoffice, meeting-backoffice-new
Stack จริงไม่ใช่ "Express + Mongoose" ตามที่ docs/index.md เคยระบุmeeting-vtrc-api เป็น Express + TypeScript + Sequelize + MSSQL; mongoose เป็น dead dependency ที่ comment ทิ้งทั้งไฟล์ — meeting-backoffice เป็น Next.js 12, meeting-backoffice-new เป็น CRA
บทบาทบริหารการประชุม — 1 backend (meeting-vtrc-api) + 2 frontend backoffice ที่ทำหน้าที่เดียวกันแต่ deploy คนละวิธี
จุดที่ต้องระวังmeeting-backoffice-new ไม่ใช่ เวอร์ชันที่มาแทน meeting-backoffice — เป็นแอปหน้าที่เดียวกันที่ถูก port จาก Next.js ไปเป็น CRA เพื่อฝัง (embed) เป็น static sub-app เข้าไปใน vtrc-backoffice(-new) แทนที่จะรันเป็น service เดี่ยว — หลักฐานชี้ขาดคือ shasum ของไฟล์ build ตรงกันเป๊ะระหว่าง 3 repo

รายละเอียดเต็มที่ Volume 7 · Meeting Platform


2.1.6 · Mobile

Repositoryvtrc-mobile, new-vtrc-mobile, vtrc-application-front
Stack จริงReact Native 0.63.2 (vtrc-mobile, แอปหลักที่ใช้งานจริง 121 screen) / React Native 0.78.0 + React 19 (new-vtrc-mobile, rewrite ระยะเริ่มต้น 6 screen) / Static HTML/CSS ล้วน ไม่มี framework (vtrc-application-front)
บทบาทแอปมือถือหลักของพนักงาน + โปรเจกต์ rewrite ระยะเริ่มต้น + หน้า landing page แจกลิงก์ติดตั้งแอป
จุดที่ต้องระวังvtrc-application-front ไม่ใช่ Cordova app ตามที่เคยคาดไว้ — เป็นหน้า static HTML download-center ที่มีไฟล์ .ipa compile แล้ว commit ไว้ในตัว repo เอง; ทั้งสองแอปมือถือไม่มี runtime endpoint switching แบบ checkLinkURL() ของเว็บ — ต้อง comment/uncomment source แล้ว rebuild ทุกครั้งที่สลับ environment

รายละเอียดเต็มที่ Volume 8 · Mobile


2.1.7 · OCR & Auxiliary

Repositoryvtrc-ocr-api, report-log, recruitment-web, interns_playground
Stack จริงExpress + Swagger (vtrc-ocr-api) / Node.js script (report-log, ไม่ใช่ HTTP service) / React 18 (CRA) + Ant Design 5 (recruitment-web) / Express + TypeScript + PostgreSQL (interns_playground)
บทบาทบริการเสริมที่ไม่ใช่แกนกลาง — OCR ที่ยังเป็น mock ทั้งหมด, สคริปต์วิเคราะห์ log แบบ offline, เว็บสมัครงานสาธารณะ, sandbox ฝึกฝนของทีม i3dev
จุดที่ต้องระวังinterns_playground ไม่ใช่ production — ไม่มี reference ถึงระบบ VTRC ใดในโค้ดเลย; ความเสี่ยงสูงสุดของกลุ่มนี้คือ PII/secret รั่วผ่าน git (report-log มีเลขบัตรประชาชนจริงใน log ที่ commit ไว้, recruitment-web มี production encryption key commit ไว้)

รายละเอียดเต็มที่ Volume 9 · OCR & Auxiliary


ไป 2.2 · Topology diagram