# 📋 **แผนการพัฒนา Frontend (Next.js) - LCBP3-DMS v1.4.3**

**สถานะ:** FINAL GUIDELINE Rev.01
**วันที่:** 2025-11-22
**อ้างอิง:** Requirements v1.4.3 & FullStackJS Guidelines v1.4.3
**Classification:** Internal Technical Documentation

## 🎯 **ภาพรวมโครงการ**

พัฒนา Frontend สำหรับระบบบริหารจัดการเอกสารโครงการ (Document Management System) ที่มีความทันสมัย รองรับการทำงานบนอุปกรณ์ต่างๆ ได้อย่างสมบูรณ์ มีประสบการณ์ผู้ใช้ที่ราบรื่น และรองรับการทำงานแบบ Offline เบื้องต้น

---

## 📐 **สถาปัตยกรรมระบบ**

### **Technology Stack**

- **Framework:** Next.js 14+ (App Router, React 18, TypeScript, ESM)
- **Styling:** Tailwind CSS + PostCSS
- **UI Components:** shadcn/ui + Radix UI Primitives
- **State Management:**
  - **Server State:** TanStack Query (React Query)
  - **Client State:** Zustand
  - **Form State:** React Hook Form + Zod
- **API Client:** Axios (พร้อม Idempotency Interceptor)
- **Authentication:** NextAuth.js (รองรับ JWT)
- **File Upload:** Custom Hook + Drag & Drop
- **Testing:**
  - **Unit/Integration:** Vitest + React Testing Library
  - **E2E:** Playwright
  - **Mocking:** MSW (Mock Service Worker)
- **Development:**
  - **Package Manager:** pnpm
  - **Linting:** ESLint + Prettier
  - **Type Checking:** TypeScript Strict Mode

### **โครงสร้างโปรเจกต์**

```tree
app/
├── (auth)/
│   ├── login/
│   └── register/
├── (dashboard)/
│   ├── layout.tsx
│   ├── page.tsx
│   └── components/
├── admin/
│   ├── users/
│   ├── roles/
│   └── numbering-formats/
├── correspondences/
│   ├── page.tsx
│   ├── [id]/
│   └── new/
├── rfas/
│   ├── page.tsx
│   ├── [id]/
│   └── new/
├── drawings/
├── circulations/
├── transmittals/
├── search/
└── profile/

components/
├── ui/                    # shadcn/ui components
├── forms/                 # Dynamic form components
├── tables/                # Responsive data tables
├── workflow/              # Workflow visualization
├── file-upload/           # File upload with security
├── notifications/         # Notification system
└── layout/                # App layout components

lib/
├── api/                   # API clients & interceptors
├── auth/                  # Authentication utilities
├── stores/                # Zustand stores
├── hooks/                 # Custom React hooks
├── utils/                 # Utility functions
├── constants/             # App constants
└── types/                 # TypeScript type definitions

styles/
├── globals.css
└── components/

__tests__/
├── unit/
├── integration/
└── e2e/
```

---

## 🗓️ **แผนการพัฒนาแบบ Phase-Based**

### **Dependency Diagram (ภาพรวม)**

```mermaid
%% Phase 0: Foundation Setup
subgraph Phase0 [Phase 0: Foundation & Configuration]
    F0_1[F0.1: Project Setup & Tooling]
    F0_2[F0.2: Design System & UI Components]
    F0_3[F0.3: API Client & Authentication]
    F0_4[F0.4: State Management Setup]
end

%% Phase 1: Core Layout & Navigation
subgraph Phase1 [Phase 1: Core Application Structure]
    F1_1[F1.1: Main Layout & Navigation]
    F1_2[F1.2: Authentication Pages]
    F1_3[F1.3: Dashboard & Landing]
    F1_4[F1.4: Responsive Design System]
end

%% Phase 2: User Management & Profile
subgraph Phase2 [Phase 2: User Management & Security]
    F2_1[F2.1: User Profile & Settings]
    F2_2[F2.2: Admin Panel - User Management]
    F2_3[F2.3: Admin Panel - Role Management]
    F2_4[F2.4: Permission Integration]
end

%% Phase 3: Project & Organization Management
subgraph Phase3 [Phase 3: Project Structure]
    F3_1[F3.1: Project Management UI]
    F3_2[F3.2: Organization Management]
    F3_3[F3.3: Contract Management]
end

%% Phase 4: Correspondence Management
subgraph Phase4 [Phase 4: Correspondence System]
    F4_1[F4.1: Correspondence List & Search]
    F4_2[F4.2: Correspondence Creation Form]
    F4_3[F4.3: Correspondence Detail View]
    F4_4[F4.4: File Upload Integration]
end

%% Phase 5: Workflow & Routing System
subgraph Phase5 [Phase 5: Workflow Management]
    F5_1[F5.1: Workflow Visualization Component]
    F5_2[F5.2: Routing Template Management]
    F5_3[F5.3: Workflow Step Actions]
    F5_4[F5.4: Real-time Status Updates]
end

%% Phase 6: Drawing Management
subgraph Phase6 [Phase 6: Drawing System]
    F6_1[F6.1: Contract Drawings Management]
    F6_2[F6.2: Shop Drawings Management]
    F6_3[F6.3: Drawing Revision System]
    F6_4[F6.4: Drawing References]
end

%% Phase 7: RFA & Approval Workflows
subgraph Phase7 [Phase 7: RFA System]
    F7_1[F7.1: RFA List & Dashboard]
    F7_2[F7.2: RFA Creation with Dynamic Forms]
    F7_3[F7.3: RFA Workflow Integration]
    F7_4[F7.4: RFA Approval Interface]
end

%% Phase 8: Circulation & Internal Routing
subgraph Phase8 [Phase 8: Internal Workflows]
    F8_1[F8.1: Circulation Management]
    F8_2[F8.2: Task Assignment Interface]
    F8_3[F8.3: Internal Approval Flows]
end

%% Phase 9: Advanced Features
subgraph Phase9 [Phase 9: Advanced Features]
    F9_1[F9.1: Advanced Search Interface]
    F9_2[F9.2: Notification System]
    F9_3[F9.3: Reporting & Analytics]
    F9_4[F9.4: Mobile Optimization]
end

%% Phase 10: Testing & Optimization
subgraph Phase10 [Phase 10: Testing & Polish]
    F10_1[F10.1: Comprehensive Testing]
    F10_2[F10.2: Performance Optimization]
    F10_3[F10.3: Security Hardening]
    F10_4[F10.4: Documentation]
end

%% Dependencies
F0_1 --> F0_2
F0_1 --> F0_3
F0_1 --> F0_4

F0_2 --> F1_1
F0_3 --> F1_1
F0_4 --> F1_1
F1_1 --> F1_2
F1_1 --> F1_3
F1_1 --> F1_4

F1_1 --> F2_1
F1_3 --> F2_1
F0_3 --> F2_1
F2_1 --> F2_2
F2_2 --> F2_3
F2_3 --> F2_4

F1_1 --> F3_1
F2_4 --> F3_1
F3_1 --> F3_2
F3_2 --> F3_3

F1_1 --> F4_1
F3_1 --> F4_1
F4_1 --> F4_2
F4_2 --> F4_3
F4_2 --> F4_4

F4_1 --> F5_1
F4_2 --> F5_2
F4_3 --> F5_3
F5_1 --> F5_4

F3_1 --> F6_1
F4_4 --> F6_1
F6_1 --> F6_2
F6_2 --> F6_3
F6_3 --> F6_4

F4_1 --> F7_1
F5_1 --> F7_1
F6_2 --> F7_1
F7_1 --> F7_2
F7_2 --> F7_3
F7_3 --> F7_4

F4_1 --> F8_1
F5_3 --> F8_1
F8_1 --> F8_2
F8_2 --> F8_3

F4_1 --> F9_1
F7_1 --> F9_1
F1_3 --> F9_2
F5_4 --> F9_2
F1_3 --> F9_3
F1_4 --> F9_4

F1_1 --> F10_1
F4_1 --> F10_1
F7_1 --> F10_1
F10_1 --> F10_2
F10_2 --> F10_3
F10_3 --> F10_4
```

## **Phase 0: Foundation & Configuration (สัปดาห์ที่ 1)**

**Milestone:** โครงสร้างพื้นฐานพร้อม รองรับ Development Workflow ที่มีประสิทธิภาพ

### **Phase 0: Tasks**

- **[ ] F0.1 Project Setup & Tooling**
  - [ ] Initialize Next.js 14+ project with TypeScript
  - [ ] Configure pnpm workspace
  - [ ] Setup ESLint, Prettier, and pre-commit hooks
  - [ ] Configure Tailwind CSS with PostCSS
  - [ ] Setup shadcn/ui components
  - [ ] Configure absolute imports and path aliases
  - [ ] **Deliverable:** Development environment ready
  - [ ] **Dependencies:** None

- **[ ] F0.2 Design System & UI Components**
  - [ ] Setup color palette and design tokens
  - [ ] Create responsive design breakpoints
  - [ ] Implement core shadcn/ui components:
    - [ ] Button, Input, Label, Form
    - [ ] Card, Table, Badge
    - [ ] Dialog, Dropdown, Select
    - [ ] Tabs, Accordion
  - [ ] Create custom design system components:
    - [ ] DataTable (responsive)
    - [ ] FileUpload zone
    - [ ] Workflow visualization
  - [ ] **Deliverable:** Consistent UI component library
  - [ ] **Dependencies:** F0.1

- **[ ] F0.3 API Client & Authentication**
  - [ ] Setup Axios client with interceptors:
    - [ ] Idempotency-Key header injection
    - [ ] Authentication token management
    - [ ] Error handling and retry logic
  - [ ] Configure NextAuth.js for JWT authentication
  - [ ] Create auth hooks (useAuth, usePermissions)
  - [ ] Setup API route handlers for auth callbacks
  - [ ] **Security:** Implement secure token storage
  - [ ] **Deliverable:** Secure API communication layer
  - [ ] **Dependencies:** F0.1

- **[ ] F0.4 State Management Setup**
  - [ ] Configure TanStack Query for server state:
    - [ ] Query client setup
    - [ ] Default configurations
    - [ ] Error boundaries
  - [ ] Create Zustand stores:
    - [ ] Auth store (user, permissions)
    - [ ] UI store (theme, sidebar state)
    - [ ] Draft store (form auto-save)
  - [ ] Setup React Hook Form with Zod integration
  - [ ] Create form validation schemas
  - [ ] **Deliverable:** Robust state management system
  - [ ] **Dependencies:** F0.1, F0.3

### **Phase 0: Testing - Foundation**

#### **F0.T1 Component Test Suite**

- [ ] **Unit Tests:** Core UI components (Button, Input, Card)
- [ ] **Integration Tests:** Form validation, API client interceptors
- [ ] **Visual Tests:** Component styling and responsive behavior

#### **F0.T2 Authentication Test Suite**

- [ ] **Unit Tests:** Auth hooks, token management
- [ ] **Integration Tests:** Login/logout flow, permission checks
- [ ] **Security Tests:** Token security, API authentication

---

## **Phase 1: Core Application Structure (สัปดาห์ที่ 2)**

**Milestone:** Layout หลักพร้อมใช้งาน การนำทางและ Authentication ทำงานได้

### **Phase 1: Tasks**

- **[ ] F1.1 Main Layout & Navigation**
  - [ ] Create App Shell layout:
    - [ ] Navbar with user menu and notifications
    - [ ] Collapsible sidebar with navigation
    - [ ] Main content area with responsive design
  - [ ] Implement navigation menu structure:
    - [ ] Dashboard, Correspondences, RFAs, Drawings, etc.
    - [ ] Dynamic menu based on user permissions
  - [ ] Create breadcrumb navigation component
  - [ ] Implement mobile-responsive sidebar (drawer)
  - [ ] Maintenance Mode Integration:
    - [ ] Implement a Global Middleware/Wrapper ที่ตรวจสอบสถานะ Maintenance Mode ผ่าน API/Service ก่อนการ Render หน้า หากสถานะเป็น true ให้ Redirect ผู้ใช้ (ยกเว้น Admin) ไปยังหน้า /maintenance ทันที เพื่อให้สอดคล้องกับ Logic ของ Backend.
  - [ ] **Accessibility:** Ensure keyboard navigation and screen reader support
  - [ ] **Deliverable:** Fully functional application layout
  - [ ] **Dependencies:** F0.2, F0.3

- **[ ] F1.2 Authentication Pages**
  - [ ] Create login page with form validation
  - [ ] Implement forgot password flow
  - [ ] Create registration page (admin-only)
  - [ ] Setup protected route middleware
  - [ ] Implement route-based permission checks
  - [ ] **Security:** Rate limiting on auth attempts, secure password requirements
  - [ ] **Deliverable:** Complete authentication flow
  - [ ] **Dependencies:** F0.3, F1.1

- **[ ] F1.3 Dashboard & Landing**
  - [ ] Create public landing page for non-authenticated users
  - [ ] Implement main dashboard with:
    - [ ] KPI cards (document counts, pending tasks)
    - [ ] "My Tasks" table from v_user_tasks
    - [ ] Recent activity feed
    - [ ] Security metrics display
  - [ ] Create dashboard widgets system
  - [ ] Implement data fetching with TanStack Query
  - [ ] **Performance:** Optimize dashboard data loading
  - [ ] **Deliverable:** Functional dashboard with real data
  - [ ] **Dependencies:** F0.4, F1.1

- **[ ] F1.4 Responsive Design System**
  - [ ] Implement mobile-first responsive design
  - [ ] Create card view components for mobile tables
  - [ ] Setup touch-friendly interactions
  - [ ] Optimize images and assets for mobile
  - [ ] Test across multiple device sizes
  - [ ] **UX:** Ensure seamless mobile experience
  - [ ] **Deliverable:** Fully responsive application
  - [ ] **Dependencies:** F0.2, F1.1

### **Phase 1: Testing - Core Structure**

#### **F1.T1 Layout Test Suite**

- [ ] **Unit Tests:** Navigation components, layout responsiveness
- [ ] **Integration Tests:** Route protection, permission-based navigation
- [ ] **E2E Tests:** Complete user navigation flow

#### **F1.T2 Dashboard Test Suite**

- [ ] **Unit Tests:** Dashboard components, data formatting
- [ ] **Integration Tests:** Data fetching and display, real-time updates
- [ ] **Performance Tests:** Dashboard loading performance

---

## **Phase 2: User Management & Security (สัปดาห์ที่ 3)**

**Milestone:** การจัดการผู้ใช้และสิทธิ์แบบสมบูรณ์

### **Phase 2: Tasks**

- **[ ] F2.1 User Profile & Settings**
  - [ ] Create user profile page:
    - [ ] Personal information display/edit
    - [ ] Password change functionality
    - [ ] Notification preferences
  - [ ] Implement profile picture upload
  - [ ] Create user settings page
  - [ ] **Security:** Secure password change with current password verification
  - [ ] **Deliverable:** Complete user self-service management
  - [ ] **Dependencies:** F1.1, F0.4

- **[ ] F2.2 Admin Panel - User Management**
  - [ ] Create user list with search and filters
  - [ ] Implement user creation form
  - [ ] Create user edit interface
  - [ ] Implement bulk user operations
  - [ ] Add user activity tracking display
  - [ ] **Security:** Admin-only access enforcement
  - [ ] **Deliverable:** Comprehensive user management interface
  - [ ] **Dependencies:** F1.1, F2.1

- **[ ] F2.3 Admin Panel - Role Management**
  - [ ] Create role list and management interface
  - [ ] Implement role creation and editing
  - [ ] Create permission assignment interface
  - [ ] Implement role-based access control visualization
  - [ ] Add role usage statistics
  - [ ] **Security:** Permission hierarchy enforcement
  - [ ] **Deliverable:** Complete RBAC management system
  - [ ] **Dependencies:** F2.2

- **[ ] F2.4 Permission Integration**
  - [ ] Implement CASL ability integration
  - [ ] Create permission-based UI components:
    - [ ] ProtectedButton, ProtectedLink
    - [ ] Conditional rendering based on permissions
  - [ ] Setup real-time permission updates
  - [ ] Implement permission debugging tools
  - [ ] **Security:** Frontend-backend permission consistency
  - [ ] **Deliverable:** Seamless permission enforcement throughout app
  - [ ] **Dependencies:** F0.3, F2.3

### **Phase 2: Testing - User Management**

#### **F2.T1 User Management Test Suite**

- [ ] **Unit Tests:** User CRUD operations, form validation
- [ ] **Integration Tests:** User-role assignment, permission propagation
- [ ] **Security Tests:** Permission escalation attempts, admin access control

#### **F2.T2 RBAC Test Suite**

- [ ] **Unit Tests:** Permission checks, role validation
- [ ] **Integration Tests:** Multi-level permission enforcement, UI element protection
- [ ] **E2E Tests:** Complete role-based workflow testing

---

## **Phase 3: Project Structure (สัปดาห์ที่ 4)**

**Milestone:** การจัดการโครงสร้างโปรเจกต์และองค์กร

### **Phase 3: Tasks**

- **[ ] F3.1 Project Management UI**
  - [ ] Create project list with search and filters
  - [ ] Implement project creation and editing
  - [ ] Create project detail view
  - [ ] Implement project dashboard with statistics
  - [ ] Add project member management
  - [ ] **UX:** Intuitive project navigation and management
  - [ ] **Deliverable:** Complete project management interface
  - [ ] **Dependencies:** F1.1, F2.4

- **[ ] F3.2 Organization Management**
  - [ ] Create organization list and management
  - [ ] Implement organization creation and editing
  - [ ] Create organization detail view
  - [ ] Add organization user management
  - [ ] Implement organization hierarchy visualization
  - [ ] **Business Logic:** Proper organization-project relationships
  - [ ] **Deliverable:** Comprehensive organization management
  - [ ] **Dependencies:** F3.1

- **[ ] F3.3 Contract Management**
  - [ ] Create contract list within projects
  - [ ] Implement contract creation and editing
  - [ ] Create contract detail view
  - [ ] Add contract party management
  - [ ] Implement contract document associations
  - [ ] **Business Logic:** Contract-project-organization relationships
  - [ ] **Deliverable:** Complete contract management system
  - [ ] **Dependencies:** F3.1, F3.2

### **Phase 3: Testing - Project Structure**

#### **F3.T1 Project Management Test Suite**

- [ ] **Unit Tests:** Project CRUD operations, validation
- [ ] **Integration Tests:** Project-organization relationships, member management
- [ ] **Business Logic Tests:** Project hierarchy, access control

---

## **Phase 4: Correspondence System (สัปดาห์ที่ 5-6)**

**Milestone:** ระบบจัดการเอกสารโต้ตอบแบบสมบูรณ์

### **Phase 4: Tasks**

- **[ ] F4.1 Correspondence List & Search**
  - [ ] Create correspondence list with advanced filtering:
    - [ ] Filter by type, status, project, organization
    - [ ] Search by title, document number, content
    - [ ] Date range filtering
  - [ ] Implement responsive data table:
    - [ ] Desktop: Full table view
    - [ ] Mobile: Card view conversion
  - [ ] Add bulk operations (export, status change)
  - [ ] Implement real-time updates
  - [ ] **Performance:** Virtual scrolling for large datasets
  - [ ] **Deliverable:** High-performance correspondence listing
  - [ ] **Dependencies:** F1.1, F3.1

- **[ ] F4.2 Correspondence Creation Form**
  - [ ] Create dynamic form generator based on JSON schema
  - [ ] Implement form with multiple sections:
    - [ ] Basic information (type, title, recipients)
    - [ ] Content and details (JSON schema-based)
    - [ ] File attachments
    - [ ] Routing template selection
  - [ ] [New] Implement "Originator Selector" component: Dropdown สำหรับเลือกองค์กรผู้ส่ง (แสดงเฉพาะเมื่อผู้ใช้มีสิทธิ์ system.manage_all หรือสิทธิ์พิเศษ) หากไม่เลือกให้ใช้ Organization ของผู้ใช้ตามปกติ
  - [ ] Add draft auto-save functionality
  - [ ] Implement form validation with Zod
  - [ ] **UX:** Intuitive form with progress indication
  - [ ] **Deliverable:** Flexible correspondence creation interface
  - [ ] **Dependencies:** F0.4, F4.1

- **[ ] F4.3 Correspondence Detail View**
  - [ ] Create comprehensive detail page:
    - [ ] Document header with metadata
    - [ ] Content display based on type
    - [ ] Revision history
    - [ ] Related documents
    - [ ] Workflow status visualization
  - [ ] Implement document actions:
    - [ ] Edit, withdraw, cancel (with permissions)
    - [ ] Download, print
    - [ ] Create related documents
  - [ ] Add comments and activity timeline
  - [ ] **UX:** Clean, readable document presentation
  - [ ] **Deliverable:** Complete document detail experience
  - [ ] **Dependencies:** F4.1, F4.2

- **[ ] F4.4 File Upload Integration**
  - [ ] Create drag-and-drop file upload component
  - [ ] Implement file type validation and preview
  - [ ] Add virus scan status indication
  - [ ] Create file management interface:
    - [ ] Mark files as main/supporting documents
    - [ ] Reorder and manage attachments
    - [ ] File security status display
  - [ ] Implement two-phase upload progress
  - [ ] **Security:** File type restrictions, size limits, virus scan integration
  - [ ] **Deliverable:** Secure and user-friendly file management
  - [ ] **Dependencies:** F0.2, F4.2

### **Phase 4: Testing - Correspondence System**

#### **F4.T1 Correspondence Test Suite**

- [ ] **Unit Tests:** Form validation, file upload components
- [ ] **Integration Tests:** Complete document lifecycle, file attachment flow
- [ ] **E2E Tests:** End-to-end correspondence creation and management

#### **F4.T2 File Upload Test Suite**

- [ ] **Unit Tests:** File validation, type checking
- [ ] **Integration Tests:** Two-phase upload process, virus scan integration
- [ ] **Security Tests:** Malicious file upload attempts, security feedback

---

## **Phase 5: Workflow Management (สัปดาห์ที่ 7)**

**Milestone:** ระบบ Visualization และจัดการ Workflow

### **Phase 5: Tasks**

- **[ ] F5.1 Workflow Visualization Component**
  - [ ] Create horizontal workflow progress visualization
  - [ ] Implement step status indicators (pending, active, completed, skipped)
  - [ ] Add due date and assignee information
  - [ ] Create interactive workflow diagram
  - [ ] Implement workflow history timeline
  - [ ] **UX:** Clear visual representation of complex workflows
  - [ ] **Deliverable:** Intuitive workflow visualization
  - [ ] **Dependencies:** F4.3

- **[ ] F5.2 Routing Template Management**
  - [ ] Create routing template list and editor
  - [ ] Implement drag-and-drop step configuration
  - [ ] Add step configuration (purpose, duration, assignee rules)
  - [ ] Create template preview functionality
  - [ ] Implement template versioning
  - [ ] **Business Logic:** Proper step sequencing and validation
  - [ ] **Deliverable:** Comprehensive routing template management
  - [ ] **Dependencies:** F3.1, F4.2

- **[ ] F5.3 Workflow Step Actions**
  - [ ] Create step action interface:
    - [ ] Approve, reject, request changes
    - [ ] Add comments and attachments
    - [ ] Forward to other users
  - [ ] Implement bulk step actions
  - [ ] Add action confirmation with reason required
  - [ ] Create step delegation functionality
  - [ ] **UX:** Streamlined step completion process
  - [ ] **Deliverable:** Efficient workflow step management
  - [ ] **Dependencies:** F5.1

- **[ ] F5.4 Real-time Status Updates**
  - [ ] Implement WebSocket connections for real-time updates
  - [ ] Create status change notifications
  - [ ] Add auto-refresh for workflow states
  - [ ] Implement optimistic updates for better UX
  - [ ] Create update history and audit trail
  - [ ] **Performance:** Efficient real-time data synchronization
  - [ ] **Deliverable:** Real-time workflow monitoring
  - [ ] **Dependencies:** F5.1, F9.2

### **Phase 5: Testing - Workflow Management**

#### **F5.T1 Workflow Test Suite**

- [ ] **Unit Tests:** Workflow visualization, step status logic
- [ ] **Integration Tests:** Complete workflow execution, real-time updates
- [ ] **E2E Tests:** Multi-step workflow with different user roles

---

## **Phase 6: Drawing System (สัปดาห์ที่ 8)**

**Milestone:** ระบบจัดการแบบแปลนแบบสมบูรณ์

### **Phase 6: Tasks**

- **[ ] F6.1 Contract Drawings Management**
  - [ ] Create contract drawing list with categorization
  - [ ] Implement drawing upload and metadata management
  - [ ] Create drawing preview and viewer
  - [ ] Add drawing version control
  - [ ] Implement drawing search and filtering
  - [ ] **UX:** Efficient drawing navigation and access
  - [ ] **Deliverable:** Comprehensive contract drawing management
  - [ ] **Dependencies:** F3.1, F4.4

- **[ ] F6.2 Shop Drawings Management**
  - [ ] Create shop drawing list with revision tracking
  - [ ] Implement shop drawing creation and revision system
  - [ ] Create drawing comparison interface
  - [ ] Add drawing approval status tracking
  - [ ] Implement bulk drawing operations
  - [ ] **Business Logic:** Proper revision control and approval workflows
  - [ ] **Deliverable:** Complete shop drawing management system
  - [ ] **Dependencies:** F6.1

- **[ ] F6.3 Drawing Revision System**
  - [ ] Create revision history interface
  - [ ] Implement revision comparison functionality
  - [ ] Add revision notes and change tracking
  - [ ] Create revision approval workflow
  - [ ] Implement revision rollback capability
  - [ ] **UX:** Clear visualization of changes between revisions
  - [ ] **Deliverable:** Robust drawing revision control
  - [ ] **Dependencies:** F6.2

- **[ ] F6.4 Drawing References**
  - [ ] Create drawing reference management
  - [ ] Implement cross-drawing references
  - [ ] Add reference validation and integrity checks
  - [ ] Create reference visualization
  - [ ] Implement reference impact analysis
  - [ ] **Business Logic:** Maintain reference integrity during changes
  - [ ] **Deliverable:** Comprehensive drawing reference system
  - [ ] **Dependencies:** F6.2, F6.3

### **Phase 6: Testing - Drawing System**

#### **F6.T1 Drawing Management Test Suite**

- [ ] **Unit Tests:** Drawing CRUD operations, revision logic
- [ ] **Integration Tests:** Drawing approval workflows, reference management
- [ ] **E2E Tests:** Complete drawing lifecycle with revisions

---

## **Phase 7: RFA System (สัปดาห์ที่ 9-10)**

**Milestone:** ระบบขออนุมัติแบบสมบูรณ์พร้อม Dynamic Forms

### **Phase 7: Tasks**

- **[ ] F7.1 RFA List & Dashboard**
  - [ ] Create RFA dashboard with status overview
  - [ ] Implement advanced RFA filtering and search
  - [ ] Create RFA calendar view for deadlines
  - [ ] Add RFA statistics and reporting
  - [ ] Implement RFA bulk operations
  - [ ] **UX:** Comprehensive RFA overview and management
  - [ ] **Deliverable:** Complete RFA dashboard and listing
  - [ ] **Dependencies:** F4.1, F5.1

- **[ ] F7.2 RFA Creation with Dynamic Forms**
  - [ ] Create RFA type-specific form generator
  - [ ] Implement dynamic form fields based on RFA type:
    - [ ] RFA_DWG: Shop drawing selection
    - [ ] RFA_DOC: Document specifications
    - [ ] RFA_MES: Method statement details
    - [ ] RFA_MAT: Material specifications
  - [ ] Add form validation with JSON schema
  - [ ] Implement form data persistence and recovery
  - [ ] **UX:** Intuitive form experience for complex RFA types
  - [ ] Dynamic Form & Schema Validation: สร้าง Component Dynamic Form Generator ที่:
    - [ ] Fetch Schema: ดึงโครงสร้าง JSON Schema ที่ถูกต้องตาม rfa_type จาก Backend (ตาราง json_schemas ที่สร้างใหม่) ก่อนการ Render Form.
    - [ ] Client-side Validation: Implement AJV (Another JSON Schema Validator) หรือไลบรารีที่เทียบเท่า เพื่อทำ Client-side Validation บนข้อมูล JSON ก่อนส่ง Submit.
    - [ ] Implement dynamic form fields based on RFA type: RFA_DWG, RFA_DOC, RFA_MES, RFA_MAT.
    - [ ] Add form data persistence and recovery.
  - [ ] **Deliverable:** Flexible RFA creation system
  - [ ] **Dependencies:** F4.2, F6.2

- **[ ] F7.3 RFA Workflow Integration**
  - [ ] Integrate RFA with unified workflow engine
  - [ ] Create RFA-specific workflow steps and actions
  - [ ] Implement RFA approval interface
  - [ ] Add RFA workflow history and tracking
  - [ ] Create RFA workflow templates
  - [ ] **Business Logic:** Proper RFA approval sequencing and validation
  - [ ] **Deliverable:** Seamless RFA workflow integration
  - [ ] **Dependencies:** F5.1, F7.2

- **[ ] F7.4 RFA Approval Interface**
  - [ ] Create RFA review and approval interface
  - [ ] Implement side-by-side document comparison
  - [ ] Add approval comments and attachments
  - [ ] Create conditional approval workflows
  - [ ] Implement approval delegation and escalation
  - [ ] **UX:** Efficient approval process for technical reviews
  - [ ] **Deliverable:** Comprehensive RFA approval system
  - [ ] **Dependencies:** F7.1, F7.3

### **Phase 7: Testing - RFA System**

#### **F7.T1 RFA Test Suite**

- [ ] **Unit Tests:** RFA form generation, validation logic
- [ ] **Integration Tests:** Complete RFA lifecycle, workflow integration
- [ ] **E2E Tests:** Multi-type RFA creation and approval workflows

---

## **Phase 8: Internal Workflows (สัปดาห์ที่ 11)**

**Milestone:** ระบบใบเวียนและการจัดการงานภายใน

### **Phase 8: Tasks**

- **[ ] F8.1 Circulation Management**
  - [ ] Create circulation list and management interface
  - [ ] Implement circulation creation from correspondence
  - [ ] Create circulation template management
  - [ ] Add circulation status tracking
  - [ ] Implement circulation search and filtering
  - [ ] **Business Logic:** Proper circulation-correspondence relationships
  - [ ] **Deliverable:** Comprehensive circulation management
  - [ ] **Dependencies:** F4.1, F5.2

- **[ ] F8.2 Task Assignment Interface**
  - [ ] Create task assignment interface with user selection
  - [ ] Implement task priority and deadline setting
  - [ ] Add task dependency management
  - [ ] Create task progress tracking
  - [ ] Implement task reassignment and delegation
  - [ ] **UX:** Intuitive task management and assignment
  - [ ] **Deliverable:** Efficient task assignment system
  - [ ] **Dependencies:** F8.1

- **[ ] F8.3 Internal Approval Flows**
  - [ ] Create internal approval workflow interface
  - [ ] Implement multi-level approval processes
  - [ ] Add approval chain visualization
  - [ ] Create approval delegation system
  - [ ] Implement approval deadline management
  - [ ] **Business Logic:** Proper approval hierarchy and escalation
  - [ ] **Deliverable:** Robust internal approval system
  - [ ] **Dependencies:** F8.1, F8.2

### **Phase 8: Testing - Internal Workflows**

#### **F8.T1 Circulation Test Suite**

- [ ] **Unit Tests:** Circulation creation, task assignment logic
- [ ] **Integration Tests:** Complete circulation workflow, internal approvals
- [ ] **E2E Tests:** End-to-end circulation with task completion

---

## **Phase 9: Advanced Features (สัปดาห์ที่ 12)**

**Milestone:** ฟีเจอร์ขั้นสูงและการปรับปรุงประสบการณ์ผู้ใช้

### **Phase 9: Tasks**

- **[ ] F9.1 Advanced Search Interface**
  - [ ] Create unified search interface across all document types
  - [ ] Implement faceted search with multiple filters
  - [ ] Add search result highlighting and relevance scoring
  - [ ] Create saved search and search templates
  - [ ] Implement search result export functionality
  - [ ] **Performance:** Efficient search with large datasets
  - [ ] **Deliverable:** Powerful cross-document search system
  - [ ] **Dependencies:** F4.1, F7.1

- **[ ] F9.2 Notification System**
  - [ ] Create notification center with real-time updates
  - [ ] Implement notification preferences management
  - [ ] Add notification grouping and digest views
  - [ ] Create actionable notifications with quick actions
  - [ ] Implement notification read/unread status
  - [ ] **UX:** Non-intrusive but effective notification delivery
  - [ ] **Deliverable:** Comprehensive notification management
  - [ ] **Dependencies:** F1.3, F5.4

- **[ ] F9.3 Reporting & Analytics**
  - [ ] Create reporting dashboard with customizable widgets
  - [ ] Implement data visualization components (charts, graphs)
  - [ ] Add report scheduling and export
  - [ ] Create ad-hoc reporting interface
  - [ ] Implement performance metrics tracking
  - [ ] **Business Logic:** Accurate data aggregation and reporting
  - [ ] **Deliverable:** Powerful reporting and analytics system
  - [ ] **Dependencies:** F1.3, F7.1

- **[ ] F9.4 Mobile Optimization**
  - [ ] Implement touch-optimized interactions
  - [ ] Create mobile-specific navigation patterns
  - [ ] Add offline capability for critical functions
  - [ ] Optimize images and assets for mobile networks
  - [ ] Implement mobile-specific performance optimizations
  - [ ] **UX:** Seamless mobile experience comparable to desktop
  - [ ] **Deliverable:** Fully optimized mobile application
  - [ ] **Dependencies:** F1.4

### **Phase 9: Testing - Advanced Features**

#### **F9.T1 Advanced Features Test Suite**

- [ ] **Unit Tests:** Search algorithms, notification logic
- [ ] **Integration Tests:** Cross-module search, real-time notifications
- [ ] **Performance Tests:** Search performance, mobile responsiveness

---

## **Phase 10: Testing & Polish (สัปดาห์ที่ 13-14)**

**Milestone:** แอปพลิเคชันที่ผ่านการทดสอบและปรับปรุงอย่างสมบูรณ์

### **Phase 10: Tasks**

- **[ ] F10.1 Comprehensive Testing**
  - [ ] Idempotency Testing: เพิ่มการทดสอบเฉพาะสำหรับ Axios Interceptor เพื่อจำลองการส่ง Request POST/PUT/DELETE ที่มี Idempotency-Key ซ้ำไปยัง Mock API (MSW) เพื่อยืนยันว่า Client-side ไม่ส่ง Key ซ้ำในการทำงานปกติ และไม่เกิด Side Effect จากการ Replay Attack.
  - [ ] Write unit tests for all components and utilities
  - [ ] Create integration tests for critical user flows
  - [ ] Implement E2E tests for complete workflows
  - [ ] Perform cross-browser compatibility testing
  - [ ] Conduct accessibility testing (WCAG 2.1 AA)
  - [ ] **Quality:** 80%+ test coverage, all critical paths tested
  - [ ] **Deliverable:** Fully tested application
  - [ ] **Dependencies:** All previous phases

- **[ ] F10.2 Performance Optimization**
  - [ ] Implement code splitting and lazy loading
  - [ ] Optimize bundle size and asset delivery
  - [ ] Add performance monitoring and metrics
  - [ ] Implement caching strategies for static assets
  - [ ] Optimize API call patterns and reduce over-fetching
  - [ ] **Performance:** Core Web Vitals targets met
  - [ ] **Deliverable:** High-performance application
  - [ ] **Dependencies:** F10.1

- **[ ] F10.3 Security Hardening**
  - [ ] Conduct security audit and penetration testing
  - [ ] Implement Content Security Policy (CSP)
  - [ ] Add security headers and protections
  - [ ] Conduct dependency vulnerability scanning
  - [ ] Implement secure coding practices review
  - [ ] **Security:** No critical security vulnerabilities
  - [ ] **Deliverable:** Security-hardened application
  - [ ] **Dependencies:** F10.1

- **[ ] F10.4 Documentation**
  - [ ] Create user documentation and guides
  - [ ] Write technical documentation for developers
  - [ ] Create API integration documentation
  - [ ] Add inline code documentation
  - [ ] Create deployment and maintenance guides
  - [ ] **Quality:** Comprehensive and up-to-date documentation
  - [ ] **Deliverable:** Complete documentation suite
  - [ ] **Dependencies:** F10.1

### **Phase 10: Testing - Final Validation**

#### **F10.T1 Final Test Suite**

- [ ] **Performance Tests:** Load testing, stress testing
- [ ] **Security Tests:** Final security audit, vulnerability assessment
- [ ] **User Acceptance Tests:** Real user testing, feedback incorporation
- [ ] **Compatibility Tests:** Cross-browser, cross-device testing

---

## 📊 **สรุป Timeline**

| Phase    | ระยะเวลา     | จำนวนงาน      | Output หลัก                           |
| -------- | ------------ | ------------ | ------------------------------------ |
| Phase 0  | 1 สัปดาห์      | 4            | Foundation & Tooling Ready           |
| Phase 1  | 1 สัปดาห์      | 4            | Core Application Structure           |
| Phase 2  | 1 สัปดาห์      | 4            | User Management & Security           |
| Phase 3  | 1 สัปดาห์      | 3            | Project Structure Management         |
| Phase 4  | 2 สัปดาห์      | 4            | Correspondence System                |
| Phase 5  | 1 สัปดาห์      | 4            | Workflow Management                  |
| Phase 6  | 1 สัปดาห์      | 4            | Drawing System                       |
| Phase 7  | 2 สัปดาห์      | 4            | RFA System (Dynamic Forms)           |
| Phase 8  | 1 สัปดาห์      | 3            | Internal Workflows                   |
| Phase 9  | 1 สัปดาห์      | 4            | Advanced Features                    |
| Phase 10 | 2 สัปดาห์      | 4            | Testing & Polish (Idempotency Test)  |
| **รวม**  | **14 สัปดาห์** | **39 Tasks** | **Production-Ready Frontend v1.4.2** |

---

## 🎯 **Critical Success Factors**

1. **User Experience First:** ทุกฟีเจอร์ต้องออกแบบเพื่อประสบการณ์ผู้ใช้ที่ดี
2. **Responsive Design:** รองรับการใช้งานบนอุปกรณ์ทุกรูปแบบ
3. **Performance:** Core Web Vitals ต้องอยู่ในเกณฑ์ที่ดี
4. **Accessibility:** ต้องเป็นไปตามมาตรฐาน WCAG 2.1 AA
5. **Security:** ป้องกัน XSS, CSRF และความเสี่ยงด้านความปลอดภัยอื่นๆ
6. **Offline Support:** รองรับการทำงานแบบ Offline เบื้องต้น
7. **Real-time Updates:** การอัปเดตสถานะแบบ Real-time
8. **Testing Coverage:** ครอบคลุมการทดสอบทุก Critical Path
9. **Documentation:** เอกสารครบถ้วนสำหรับผู้ใช้และนักพัฒนา

---

## 📋 **Quality Assurance Checklist**

### **ก่อน Production Deployment**

- [ ] **Performance:** Core Web Vitals ผ่านเกณฑ์
- [ ] **Accessibility:** WCAG 2.1 AA compliant
- [ ] **Security:** Security audit ผ่าน
- [ ] **Testing:** Test coverage ≥ 80%
- [ ] **Browser Compatibility:** ทำงานได้บนเบราว์เซอร์หลัก
- [ ] **Mobile Responsive:** ใช้งานได้ดีบนมือถือ
- [ ] **Documentation:** เอกสารครบถ้วน
- [ ] **User Acceptance:** ได้รับการยอมรับจากผู้ใช้

---

## 🚀 **ขั้นตอนถัดไป**

1. **Approve แผนนี้** → ปรับแต่งตาม Feedback
2. **Coordinate กับ Backend Team** → Sync API Specifications
3. **เริ่มพัฒนา Phase 0** → Setup Foundation
4. **Regular Sync** → ประสานงานกับ Backend ทุกสัปดาห์
5. **User Testing** → ทดสอบกับผู้ใช้จริงระหว่างพัฒนา
6. **Deploy to Production** → Week 15 (พร้อม Backend)

## **Document Control:**

- **Document:** Frontend Development Plan v1.4.3
- **Version:** 1.4
- **Date:** 2025-11-22
- **Author:** NAP LCBP3-DMS & Gemini
- **Status:** FINAL
- **Classification:** Internal Technical Documentation
- **Approved By:** Nattanin

---

`End of Frontend Development Plan v1.4.3 (ฉบับปรับปรุง)`
