Skip to content

1 · Repository map

โครงสร้างไฟล์ของ vtrc-backoffice (branch master, 769 ไฟล์ที่ track ด้วย git)


โฟลเดอร์ระดับบนสุด

vtrc-backoffice/
├── src/               ซอร์สโค้ดแอป (React)
├── public/            static assets ของ CRA (index.html, favicon)
├── build/             ผลลัพธ์ build ที่ commit ไว้ (~47 MB) — ห้ามแก้มือ
├── meeting/           nginx conf ย่อยสำหรับ path /meeting (proxy ไป meeting-backoffice)
├── nginx/             nginx conf หลัก
├── docker-nginx/      ไฟล์เสริมสำหรับ nginx image
├── docker-compose.yml serve build/ ผ่าน nginx โดยตรง (ไม่ build จาก source)
├── Dockerfile         ติดตั้งแค่ nginx — ไม่มี build stage
├── nginx.default.conf.bak  ไฟล์ backup — ห้ามแก้ (ตาม convention `_bk`/`.bak` ทั่วแพลตฟอร์ม)
└── package.json / package-lock.json

หลักฐานจำนวนไฟล์: git ls-files | wc -l = 769 ที่ commit 3f32c80 (vtrc-backoffice/.git)


src/ breakdown

โฟลเดอร์จำนวนไฟล์บทบาท
src/pages/296หน้าจริง 41 module (ดูรายชื่อใน 03-features-map)
src/components/83component ใช้ซ้ำ — Form, Shared, SiderLayout, LoginForm ฯลฯ
src/graphql/ไฟล์หลัก 2 + WorkForce 2 + backup 4queries/mutations catalog
src/recoil/states/27atom state สำหรับ WorkForce module
src/utils/21helper — auth, apiKey, formatdate, work-force.service ฯลฯ
src/config/11apollo, routes, axios-workforce, custom-antd.css
src/assets/80รูปภาพ/โลโก้/ไอคอน
src/containers/App/1root router (index.js)

(นับด้วย find {dir} -type f | wc -l ที่ working tree ปัจจุบันของ vtrc-backoffice/src)


src/graphql/ — รวม catalog + backup

src/graphql/
├── index.js              re-export Queries/Mutations (หลัก + _wf)
├── queries.js             3,316 บรรทัด — query หลัก
├── queries_bk.js          3,315 บรรทัด — backup (ห้ามแก้/ห้ามลบโดยไม่ตรวจก่อน)
├── queries_bk-061265.js   3,313 บรรทัด — backup ที่สอง (ชื่อไฟล์เป็นวันที่ พ.ศ. 06/12/65)
├── mutations.js           1,995 บรรทัด — mutation หลัก
├── mutations_bk.js        1,991 บรรทัด — backup
├── mutations_bk-061254.js 1,991 บรรทัด — backup ที่สอง
└── WorkForce/
    ├── queries.js         1,148 บรรทัด
    └── mutations.js       597 บรรทัด

vtrc-backoffice/src/graphql/index.js:1-5

javascript
export { default as Queries } from './queries'
export { default as Mutations } from './mutations'
// work-force
export { default as Queries_wf } from './WorkForce/queries'
export { default as Mutations_wf } from './WorkForce/mutations'

มี Apollo Client ตัวเดียว (src/config/apollo.js) — WorkForce query/mutation ใช้ client ตัวเดียวกัน ต่างจาก vtrc-rc-backoffice ที่มี Apollo Client แยกสำหรับ WorkForce (apollo-workforce.js) แม้ไฟล์ src/config/apollo-workforce.js มีอยู่จริงใน repo นี้ (พบใน find src/config) แต่ยังไม่ตรวจว่ามีจุด import ใช้งานจริงหรือไม่ — ทำเครื่องหมาย UNVERIFIED


src/config/ — ไฟล์ทั้งหมด

src/config/
├── apollo.js                Apollo Client หลัก + checkLinkURL()
├── apollo-workforce.js       มีไฟล์อยู่ — การใช้งานจริง UNVERIFIED
├── axios-workforce.js        axios client REST — ไม่พบจุด import ใช้งาน (dead code, มี bug — ดู CORR-BO-01)
├── routes.js                 1,706 บรรทัด — 192 entries ที่มี key `path:`, import 119 component
├── routes_bk.js               backup
├── routes_bk-mapgroup.js      backup
├── custom-antd.css            AntD override
├── datasets.js / datasetsEmployeeRegistration.js / datasetsProfile.js  ค่า dropdown/mock ต่าง ๆ
└── styles.css

src/pages/ — 41 module (รายชื่อเต็ม)

AboutUS, Act, Attendance, BankBranches, BankExportCode, BookBankVTRC,
Career, ContactUS, Course, Dashboard, Delegate, DocFound, Fund,
Guideline, HospitalFailed, HospitalHr, HospitalName, HospitalPaid,
Leave, LeaveHR, LeaveName, LeaveStudies, LeaveStudiesAdmin,
LeaveStudiesPayments, LeaveStudiesPaymentsAdmin, LeaveStudiesScholar,
LeaveStudiesScholarAdmin, Login, ManageHR, ManageUser, MasterApprovers,
MasterData, News, NotFound, Notification, Organization, Orientation,
Policy, Regulations, RegulationsHR, Rule, SicknessName, StrategyHR,
WorkForce, WorkHistory

(ls src/pages | sort ที่ working tree ของ vtrc-backoffice) รายละเอียด business function ของแต่ละกลุ่มดู 03-features-map


src/components/ — ตัวที่สำคัญ

componentบทบาทย่อ
SiderLayout/ (510 บรรทัด)shell หลังบ้าน — sidebar, header, dynamic menu, logout
LoginForm/ฟอร์ม login — มี Checkbox import แต่ไม่ได้ render (ดู CORR-BO-02)
BeforeLogin/หน้าก่อน login (กรอกรหัสบุคลากรก่อนเข้ารหัสผ่าน)
Form* (FormBankBranches, FormCareer, FormContactHR, FormFund ฯลฯ)ฟอร์มเฉพาะ module ละ 1 component
ModalErrors, ModalConfirmForm, ModalCreate, ModalshowAllImagemodal ใช้ซ้ำ
AvatarProfile, BreadcrumbCustom, BtnDelete, BtnEditUI ใช้ซ้ำเล็ก ๆ

ไฟล์ backup / legacy ที่พบ

ทั่ว src/ มีไฟล์ปัจจัยรูปแบบ *_bk*.js, *_bak*, *-prd.js กระจายอยู่ ตัวอย่างที่ยืนยันแล้ว:

  • src/graphql/queries_bk.js, queries_bk-061265.js
  • src/graphql/mutations_bk.js, mutations_bk-061254.js
  • src/config/routes_bk.js, routes_bk-mapgroup.js
  • src/pages/HospitalPaid/Payments/index_bk.js, generator_bk.js, generatorFileDetail_bk-bk.js, generatorFileDetail-prd.js
  • src/pages/HospitalHr/Withdraw/detail_bk.js

ไฟล์เหล่านี้เข้าข่าย "ห้ามแก้/ห้ามลบโดยไม่ตรวจก่อน" ตาม convention ของแพลตฟอร์ม (ดู workspace rule ว่าด้วยไฟล์ _bk*) — ไม่ได้นับจำนวนรวมทั้งหมดในรอบตรวจนี้ (ทำเครื่องหมาย UNVERIFIED สำหรับจำนวนรวม)


ขั้นตอนถัดไป

ไป 2 · API endpoint resolution + auth/login flow