# HRMS — Contribution evidence

เอกสารประกอบเคส portfolio ตรวจ source เมื่อ 11 กันยายน 2026 ขอบเขต 3 ด้านเป็นการจัดหมวดผลงาน ไม่ใช่ชื่อตำแหน่งงานย้อนหลังหรือหลักฐานผู้เขียนโค้ดรายบุคคลจาก commit history

## Functional prototype: source evidence

พาธด้านล่างอ้างจาก project `Nexora/HRMS` ไม่ใช่ URL ของเว็บไซต์ portfolio

| ขอบเขต | หลักฐาน | สิ่งที่ตรวจพบ |
| --- | --- | --- |
| Web structure | `package.json`, `src/components/layout/AppLayout.tsx`, `src/components/layout/Sidebar.tsx` | Next.js 14, React, TypeScript, shared shell, route navigation และ client-side session redirect; ไม่ใช่หลักฐาน secure server-side RBAC |
| Responsive implementation | `src/components/layout/AppLayout.tsx`, `src/components/layout/Sidebar.tsx` | Tailwind breakpoint rules, flexible content และ sidebar ที่ซ่อนต่ำกว่า md; ยังต้องทดสอบ mobile navigation end-to-end |
| Directory interaction | `src/app/employees/page.tsx` | searchQuery, department filtering, grid/list toggle และ empty result state |
| Form interaction | `src/components/leave/LeaveRequestForm.tsx` | required-field/date-range validation, จำนวนวัน, error/success state และ reset form; success ฝั่ง UI ไม่ยืนยันว่า database บันทึกสำเร็จ |
| Data/state integration | `src/hooks/useHRMSStore.ts`, `src/lib/types.ts` | typed entities/actions, fetch 10 API domains, optimistic updates; API failure log แล้วคง optimistic state ยังไม่มี rollback |
| Data visualization | `src/components/dashboard/AnalyticsChart.tsx` | Recharts, ResponsiveContainer, loading placeholder และสรุปพนักงานตามแผนกจาก store |
| App states | `src/app/loading.tsx`, `src/app/error.tsx` | loading UI และ error boundary พร้อม retry/reset |
| System context only | `src/app/api/employees/route.ts`, `src/lib/crud.ts`, `prisma/schema.prisma` | CRUD route และ PostgreSQL/Prisma schema มีอยู่ใน source; ไม่ยืนยัน runtime database, backend ownership, security hardening หรือ deployment |

## Portfolio and design deliverables

พาธต่อไปนี้อ้างจาก `NUI-portfolio/hrms-ux-ui-portfolio/`

- `index.html`: IA, journey, user flow, screen gallery, design tokens/states และ proposed handoff contract แยกจาก implementation ที่มีหลักฐาน
- `index.html`: responsive grids/breakpoints, mobile contents menu, image lightbox, Escape/Tab handling, focus restoration, focus-visible และ prefers-reduced-motion เป็นพฤติกรรมของหน้า portfolio ไม่ใช่ผล accessibility audit ของ HRMS ทั้งระบบ
- `media/`: ภาพหน้าจอประกอบเคส; คงภาพและ diagram เดิมในรอบปรับ contribution นี้

## Limits and next verification

- เป็น functional prototype ไม่มีหลักฐาน pilot, production analytics หรือผล usability test กับองค์กรจริง
- ไม่ได้รัน source app, เชื่อมฐานข้อมูล, build หรือ deploy ในรอบแก้เนื้อหานี้
- ตรวจ responsive จาก CSS/source เท่านั้น ไม่ได้ยืนยัน browser rendering, keyboard flow ทั้งแอป, contrast หรือ screen reader
- ควรทดสอบ API failure/rollback, การแจ้งผลบันทึกจริง, mobile navigation และ server-side permission ก่อนใช้งานจริง
- IA ในเคสสรุปเป็น 6 module groups ขณะที่ sidebar source จัด 7 กลุ่ม จึงไม่ใช่ mapping จำนวนกลุ่มแบบหนึ่งต่อหนึ่ง
