Files
lcbp3/specs/01-requirements/01-07-ui-wireframes.md
T
admin 9c0978f3fa
Build and Deploy / deploy (push) Successful in 4m24s
260311:1638 20260311:1700 n8n workflow
2026-03-11 16:38:49 +07:00

46 KiB
Raw Blame History

🖞ïļ UI/UX Wireframes & Screen Inventory — LCBP3-DMS v1.8.0


title: 'UI/UX Screen Inventory, Navigation Map, and Wireframes' version: 1.0.0 status: DRAFT owner: Nattanin Peancharoen (Product Owner) last_updated: 2026-03-11 related:

  • specs/01-Requirements/01-02-business-rules/01-02-03-ui-ux-rules.md
  • specs/01-Requirements/01-04-user-stories.md
  • specs/01-Requirements/01-05-acceptance-criteria.md

Note

Wireframes āđƒāļ™āđ€āļ­āļāļŠāļēāļĢāļ™āļĩāđ‰āđ€āļ›āđ‡āļ™ Low-fidelity ASCII/Text Wireframes āđ€āļžāļ·āđˆāļ­āļŠāļ·āđˆāļ­āļŠāļēāļĢ Layout āđāļĨāļ° Component Hierarchy
āļŠāļģāļŦāļĢāļąāļš High-fidelity Design āđƒāļŦāđ‰āđƒāļŠāđ‰ Figma āļŦāļĢāļ·āļ­ Shadcn/UI Components āļ•āļēāļĄ ADR-012


1. 🗚ïļ Navigation Map (Site Map)

[🔓 Public]
│
└── /login                          → āļŦāļ™āđ‰āļē Login (Anonymous)
    └── /login/forgot-password      → āļĨāļ·āļĄāļĢāļŦāļąāļŠāļœāđˆāļēāļ™
    └── /login/change-password      → āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āļ„āļĢāļąāđ‰āļ‡āđāļĢāļ (Force)

[🔒 Authenticated — App Shell (Sidebar + Navbar)]
│
├── /dashboard                      → āļŦāļ™āđ‰āļēāļŦāļĨāļąāļ (My Tasks + KPI)
│
├── /correspondences                → āļĢāļēāļĒāļāļēāļĢ Correspondence
│   ├── /correspondences/new        → āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆ
│   └── /correspondences/:id        → āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ” + Workflow
│
├── /rfas                           → āļĢāļēāļĒāļāļēāļĢ RFA
│   ├── /rfas/new                   → āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆ
│   └── /rfas/:id                   → āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ” + Workflow
│
├── /transmittals                   → āļĢāļēāļĒāļāļēāļĢ Transmittal
│   ├── /transmittals/new           → āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆ (āļĢāļ§āļĄ RFAs)
│   └── /transmittals/:id           → āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”
│
├── /drawings                       → Drawing Management
│   ├── /drawings/contract          → Contract Drawings
│   │   ├── /drawings/contract/new  → Upload āđƒāļŦāļĄāđˆ
│   │   └── /drawings/contract/:id  → āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”
│   └── /drawings/shop              → Shop Drawings
│       ├── /drawings/shop/new      → Upload āđƒāļŦāļĄāđˆ
│       └── /drawings/shop/:id      → āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ” + RFA History
│
├── /circulations                   → Circulation Sheets (Internal)
│   ├── /circulations/new           → āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆ
│   └── /circulations/:id           → āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ” + Assignees
│
├── /search                         → Full-text Search
│
├── /notifications                  → āļĢāļēāļĒāļāļēāļĢ Notifications
│
├── /profile                        → āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāđˆāļ§āļ™āļ•āļąāļ§ + āļ•āļąāđ‰āļ‡āļ„āđˆāļē
│
[🔒 Admin Routes]
│
├── /admin/users                    → āļˆāļąāļ”āļāļēāļĢ Users (Org Admin+)
│   ├── /admin/users/new            → āđ€āļžāļīāđˆāļĄ User
│   └── /admin/users/:id/edit       → āđāļāđ‰āđ„āļ‚ User + Role
│
├── /admin/organizations            → āļˆāļąāļ”āļāļēāļĢ Orgs (Superadmin)
│   └── /admin/organizations/new
│
├── /admin/projects                 → āļˆāļąāļ”āļāļēāļĢ Projects (Superadmin)
│   └── /admin/projects/:id/contracts
│
├── /admin/doc-numbering            → Document Number Config (Superadmin)
│
└── /admin/audit-logs               → Audit Log Viewer (Superadmin + OrgAdmin)

2. ðŸ§Đ App Shell Layout

┌─────────────────────────────────────────────────────────────────┐
│ NAVBAR                                                          │
│  [🏗ïļ LCBP3-DMS]     [Project: LCBP3 ▾]    [🔔 3] [ðŸ‘Ī āļŠāļĄāļŠāļēāļĒ â–ž] │
└─────────────────────────────────────────────────────────────────┘
┌──────────────┮──────────────────────────────────────────────────┐
│ SIDEBAR      │ MAIN CONTENT AREA                                │
│              │                                                  │
│ 📊 Dashboard │                                                  │
│ ðŸ“Ļ Corres.   │   [Page Content Here]                            │
│ 📋 RFA       │                                                  │
│ ðŸ“Ķ Transmit  │                                                  │
│ 📐 Drawings  │                                                  │
│ 📄 Circulat. │                                                  │
│ 🔍 Search    │                                                  │
│              │                                                  │
│ ─────────── │                                                  │
│ [Admin ▾]   │                                                  │
│  ðŸ‘Ĩ Users   │                                                  │
│  ðŸĒ Orgs    │                                                  │
│  ⚙ïļ Config  │                                                  │
└──────────────â”ī──────────────────────────────────────────────────┘

Mobile: Sidebar → Collapsible Hamburger Drawer (āļ•āļēāļĄ UI-Rule 5.11)

3. 📋 Screen Inventory

Screen ID Route āļŠāļ·āđˆāļ­āļŦāļ™āđ‰āļē Primary Role Priority
SCR-001 /login Login āļ—āļļāļ Role ðŸ”ī Must
SCR-002 /login/change-password Force Password Change āļ—āļļāļ Role ðŸ”ī Must
SCR-003 /dashboard Dashboard āļ—āļļāļ Role ðŸ”ī Must
SCR-004 /correspondences Correspondence List Doc Control ðŸ”ī Must
SCR-005 /correspondences/new Create Correspondence Doc Control ðŸ”ī Must
SCR-006 /correspondences/:id Correspondence Detail + Workflow āļ—āļļāļ Role ðŸ”ī Must
SCR-007 /rfas RFA List Doc Control ðŸ”ī Must
SCR-008 /rfas/new Create RFA Doc Control ðŸ”ī Must
SCR-009 /rfas/:id RFA Detail + Workflow āļ—āļļāļ Role ðŸ”ī Must
SCR-010 /transmittals Transmittal List Doc Control 🟠 Should
SCR-011 /transmittals/new Create Transmittal Doc Control 🟠 Should
SCR-012 /transmittals/:id Transmittal Detail āļ—āļļāļ Role 🟠 Should
SCR-013 /drawings/contract Contract Drawing List Doc Control 🟠 Should
SCR-014 /drawings/shop Shop Drawing List Doc Control 🟠 Should
SCR-015 /drawings/shop/:id Shop Drawing Detail āļ—āļļāļ Role 🟠 Should
SCR-016 /circulations Circulation List Doc Control 🟠 Should
SCR-017 /circulations/new Create Circulation Doc Control 🟠 Should
SCR-018 /circulations/:id Circulation Detail āļ—āļļāļ Role 🟠 Should
SCR-019 /search Search Results āļ—āļļāļ Role 🟠 Should
SCR-020 /notifications Notification Center āļ—āļļāļ Role ðŸŸĄ Could
SCR-021 /profile Profile & Settings āļ—āļļāļ Role 🟠 Should
SCR-022 /admin/users User Management Org Admin+ ðŸ”ī Must
SCR-023 /admin/organizations Organization Management Superadmin ðŸ”ī Must
SCR-024 /admin/projects Project & Contract Mgmt Superadmin ðŸ”ī Must
SCR-025 /admin/doc-numbering Document Number Config Superadmin 🟠 Should
SCR-026 /admin/audit-logs Audit Log Viewer Org Admin+ 🟠 Should

āļĢāļ§āļĄ: 26 āļŦāļ™āđ‰āļē (9 Must / 13 Should / 1 Could)


4. 🖞ïļ Wireframes — Key Screens

SCR-001: Login Page

┌─────────────────────────────────────────────────────────┐
│                                                         │
│              🏗ïļ LCBP3-DMS                               │
│         āļ—āđˆāļēāđ€āļĢāļ·āļ­āđāļŦāļĨāļĄāļ‰āļšāļąāļ‡ āđ€āļŸāļŠ 3                            │
│         Document Management System                      │
│                                                         │
│  ┌─────────────────────────────────────────────────┐    │
│  │                                                 │    │
│  │   āļŠāļ·āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰ (Username)                          │    │
│  │   [________________________________]            │    │
│  │                                                 │    │
│  │   āļĢāļŦāļąāļŠāļœāđˆāļēāļ™ (Password)                            │    │
│  │   [________________________________] [👁ïļ]       │    │
│  │                                                 │    │
│  │   [ āđ€āļ‚āđ‰āļēāļŠāļđāđˆāļĢāļ°āļšāļš (Login)           ] ← Primary  │    │
│  │                                                 │    │
│  │   [āļĨāļ·āļĄāļĢāļŦāļąāļŠāļœāđˆāļēāļ™?]                                │    │
│  │                                                 │    │
│  └─────────────────────────────────────────────────┘    │
│                                                         │
│   ❌ Error Banner (āđāļŠāļ”āļ‡āđ€āļĄāļ·āđˆāļ­ Login āļœāļīāļ”):                 │
│   [⚠ïļ āļŠāļ·āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰āļŦāļĢāļ·āļ­āļĢāļŦāļąāļŠāļœāđˆāļēāļ™āđ„āļĄāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡]                  │
│                                                         │
│   v1.8.0 | Internal Use Only                           │
└─────────────────────────────────────────────────────────┘

Component Rules:
- Error Toast: āđāļŠāļ”āļ‡āļ—āļąāļš Form (āđ„āļĄāđˆāļšāļ­āļāļ§āđˆāļēāļ­āļąāļ™āđ„āļŦāļ™āļœāļīāļ” â€” Security)
- Rate Limit: āļŦāļĨāļąāļ‡ 5 āļ„āļĢāļąāđ‰āļ‡ â†’ āļ›āļļāđˆāļĄ Disabled 60 āļ§āļīāļ™āļēāļ—āļĩ + Countdown
- Password: Toggle Show/Hide icon
- Auto-focus: Username field on load
- Enter key: Submit form

SCR-003: Dashboard

┌─ Dashboard ─────────────────────────────────────────────────────────┐
│                                                                      │
│  📊 āļ āļēāļžāļĢāļ§āļĄ â€” [āļŠāļĄāļŠāļēāļĒ āļˆāļēāļ āļŠāļ„.] āļ§āļąāļ™āļ™āļĩāđ‰ 11 āļĄāļĩ.āļ„. 2569                  │
│                                                                      │
│  ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐   │
│  │ ðŸ“Ļ Corres.  │ │ 📋 RFA      │ │ ⏰ Overdue   │ │ 🔒 Security │   │
│  │             │ │             │ │             │ │             │   │
│  │  Pending    │ │  Pending    │ │  Tasks      │ │  Files      │   │
│  │    [12]     │ │    [5]      │ │    [3]      │ │  Scanned    │   │
│  │             │ │             │ │             │ │   [847]     │   │
│  │ ← ↑3 āļˆāļēāļāđ€āļĄāļ·āđˆāļ­ â”‚ │ ← ↓1 āļˆāļēāļāđ€āļĄāļ·āđˆāļ­ â”‚ │ ⚠ïļ āđ€āļāļīāļ™āļāļģāļŦāļ™āļ” â”‚ │ 0 Threats  │   │
│  └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘   │
│                                                                      │
│  ═══ āļ‡āļēāļ™āļ‚āļ­āļ‡āļ‰āļąāļ™ (My Tasks) ════════════════════════════════════════  │
│                                                                      │
│  ┌──────────────────────────────────────────────────────────────┐   │
│  │ [Filter: āļ—āļąāđ‰āļ‡āļŦāļĄāļ” â–ž] [Status: Active ▾]   🔍 [āļ„āđ‰āļ™āļŦāļē...]      │   │
│  ├────────┮──────────────────┮──────────┮──────────┮────────────â”Ī   │
│  │ āļ›āļĢāļ°āđ€āļ āļ— â”‚ āđ€āļĨāļ‚āļ—āļĩāđˆ/Subject   │ āļŦāļ™āđ‰āļēāļ—āļĩāđˆ  â”‚ āļāļģāļŦāļ™āļ”   │ āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ│   │
│  ├────────┾──────────────────┾──────────┾──────────┾────────────â”Ī   │
│  │ 📄 RFA │ LCBP3-RFA-STR.. │ Approve  │⚠ïļ12 āļĄāļĩ.āļ„.│ [āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ]│   │
│  │ ðŸ“Ļ Cir │ āļŠāļ„.-āļāļ—āļ—.-001... │ Review   │ 15 āļĄāļĩ.āļ„. │ [āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ]│   │
│  │ ðŸ“Ļ Cir │ āļŠāļ„.-āļāļ—āļ—.-002... │ Info     │ 20 āļĄāļĩ.āļ„. │ [āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ]│   │
│  ├────────â”ī──────────────────â”ī──────────â”ī──────────â”ī────────────â”Ī   │
│  │  āđāļŠāļ”āļ‡ 3 āļˆāļēāļ 12 āļĢāļēāļĒāļāļēāļĢ               [āļ”āļđāļ—āļąāđ‰āļ‡āļŦāļĄāļ” â†’]          │   │
│  └──────────────────────────────────────────────────────────────┘   │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

Mobile (Card View):
┌───────────────────────┐
│ 📄 RFA                │
│ LCBP3-RFA-STR-0042    │
│ āļŦāļ™āđ‰āļēāļ—āļĩāđˆ: Approve      │
│ ⚠ïļ āļāļģāļŦāļ™āļ”: 12 āļĄāļĩ.āļ„.  │
│ [āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ â†’]         │
└───────────────────────┘

SCR-004: Correspondence List

┌─ Correspondence ────────────────────────────────────────────────────┐
│                                                                      │
│  [+ āļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆ]  [ðŸ“Ĩ āļĢāļąāļšāđ€āļ‚āđ‰āļē (12)] [ðŸ“Ī āļŠāđˆāļ‡āļ­āļ­āļ (8)]  [āļ—āļąāđ‰āļ‡āļŦāļĄāļ” (20)]   │
│                                                                      │
│  [ Filter: āļ›āļĢāļ°āđ€āļ āļ— â–ž ] [ Filter: āļŠāļ–āļēāļ™āļ° â–ž ] [ Filter: āļ§āļąāļ™āļ—āļĩāđˆ ▾ ]       │
│  🔍 [āļ„āđ‰āļ™āļŦāļēāđ€āļ­āļāļŠāļēāļĢ...                              ]  [āļĨāđ‰āļēāļ‡ Filter]   │
│                                                                      │
│  ┌─────────────────────────────────────────────────────────────┐    │
│  │☐ │ āđ€āļĨāļ‚āļ—āļĩāđˆāđ€āļ­āļāļŠāļēāļĢ        │ Subject    │ āļœāļđāđ‰āļŠāđˆāļ‡ â”‚āļ§āļąāļ™āļ—āļĩāđˆâ”‚āļŠāļ–āļēāļ™āļ°  │    │
│  ├──┾─────────────────────┾────────────┾────────┾──────┾───────â”Ī    │
│  │☐ │ LCBP3-āļŠāļ„-āļāļ—āļ—-L-001 │ āļ‚āļ­āđāļšāļšāļ‡āļēāļ™.  │ āļŠāļ„.    │11āļĄāļĩāļ„│✅ āļ›āļīāļ” â”‚    │
│  │☐ │ LCBP3-āļāļ—āļ—-āļŠāļ„-L-002 │ āļ•āļ­āļšāļĢāļąāļš...  │ āļāļ—āļ—.   │10āļĄāļĩāļ„│🔄 āļ”āļģāđ€āļ™āļīāļ™â”‚   │
│  │☐⚠ïļâ”‚ LCBP3-āļŠāļ„-āļāļ—āļ—-L-003 │ āļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨ.. │ āļŠāļ„.    │08āļĄāļĩāļ„│⏰ āđ€āļāļīāļ™ â”‚    │
│  │  │ ...                 │            │        │      │       │    │
│  └─────────────────────────────────────────────────────────────┘    │
│  [< 1 2 3 >]                              āđāļŠāļ”āļ‡ 15/47 āļĢāļēāļĒāļāļēāļĢ         │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

Status Badges:
ðŸŸĄ Draft | ðŸ”ĩ Submitted | 🔄 In Review | ✅ Closed | ❌ Cancelled | ⏰ Overdue

SCR-005: Create Correspondence (Form)

┌─ āļŠāļĢāđ‰āļēāļ‡ Correspondence ─────────────────────────────────────────────┐
│                                                                     │
│  Step 1: āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļąāđˆāļ§āđ„āļ› â—â”€â”€â”€â”€â”€â”€â”€ Step 2: āđāļ™āļšāđ„āļŸāļĨāđŒ ○─── Step 3: āļ•āļĢāļ§āļˆāļŠāļ­āļš â—‹â”‚
│                                                                     │
│  ┌───────────────────────────────────────────────────────────┐     │
│  │ āļ›āļĢāļ°āđ€āļ āļ—āđ€āļ­āļāļŠāļēāļĢ*          │ āļˆāļēāļ (Originator)*               │     │
│  │ [Letter ▾]             │ [āļŠāļ„. (āļāļģāļŦāļ™āļ”āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī)]          │     │
│  │                        │                                  │     │
│  │ āļ–āļķāļ‡ (To)*              │ āļŠāļģāđ€āļ™āļē (CC)                      │     │
│  │ [āđ€āļĨāļ·āļ­āļāļ­āļ‡āļ„āđŒāļāļĢ â–ž][+ āđ€āļžāļīāđˆāļĄ]│ [āđ€āļĨāļ·āļ­āļāļ­āļ‡āļ„āđŒāļāļĢ â–ž][+ āđ€āļžāļīāđˆāļĄ]      │     │
│  │ Tag: āļāļ—āļ—. ×            │                                  │     │
│  │                        │                                  │     │
│  │ Subject*                                                  │     │
│  │ [_____________________________________________]            │     │
│  │                        ○ āļ•āļąāļ§āļ­āļąāļāļĐāļĢāļ—āļĩāđˆāđ€āļŦāļĨāļ·āļ­: 200            │     │
│  │                                                           │     │
│  │ āđ€āļ­āļāļŠāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ (References)                                │     │
│  │ [🔍 āļ„āđ‰āļ™āļŦāļēāđ€āļĨāļ‚āļ—āļĩāđˆāđ€āļ­āļāļŠāļēāļĢ...           ]  [+ āđ€āļžāļīāđˆāļĄ]          │     │
│  │ āļŦāļĄāļ§āļ”āļŦāļĄāļđāđˆ (Tags)                                           │     │
│  │ [🔍 āļ„āđ‰āļ™āļŦāļē Tag...] [construction] × [rfa] ×               │     │
│  │                                                           │     │
│  │ āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ (Remark)                                         │     │
│  │ [_____________________________________________]            │     │
│  │ [_____________________________________________]            │     │
│  └───────────────────────────────────────────────────────────┘     │
│                                                                     │
│  ⚠ïļ Auto-save: āļšāļąāļ™āļ—āļķāļāļĨāđˆāļēāļŠāļļāļ” 13:28:45                               │
│                                                                     │
│  [← āļĒāļāđ€āļĨāļīāļ]                    [āļšāļąāļ™āļ—āļķāļ Draft]  [āļ•āđˆāļ­āđ„āļ›: āđāļ™āļšāđ„āļŸāļĨāđŒ →]  │
└─────────────────────────────────────────────────────────────────────┘

SCR-005b: File Attachment Step

┌─ āļŠāļĢāđ‰āļēāļ‡ Correspondence — āđāļ™āļšāđ„āļŸāļĨāđŒ ───────────────────────────────────┐
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │     📎 āļĨāļēāļāđāļĨāļ°āļ§āļēāļ‡āđ„āļŸāļĨāđŒāļ—āļĩāđˆāļ™āļĩāđˆ āļŦāļĢāļ·āļ­ [āđ€āļĨāļ·āļ­āļāđ„āļŸāļĨāđŒ]               │   │
│  │                                                             │   │
│  │     āļĢāļ­āļ‡āļĢāļąāļš: PDF, DWG, ZIP, DOCX, XLSX (āļŠāļđāļ‡āļŠāļļāļ” 100MB/āđ„āļŸāļĨāđŒ) │   │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  āđ„āļŸāļĨāđŒāļ—āļĩāđˆāđāļ™āļš:                                                         │
│  ┌────────────────────────────────────────────────────────────┐    │
│  │ ☑ïļ āđ€āļ­āļāļŠāļēāļĢāļŦāļĨāļąāļ â”‚ 📄 drawing-v2.pdf        │ 2.3MB │ ✅ Scan OK│[🗑ïļ]│
│  │ ☐ āđ€āļ­āļāļŠāļēāļĢāļŦāļĨāļąāļ â”‚ 📐 detail.dwg             │ 1.1MB │ 🔄 Scanning│[🗑ïļ]│
│  │ ☐ āđ€āļ­āļāļŠāļēāļĢāļŦāļĨāļąāļ â”‚ ðŸ“Ķ supporting-docs.zip   │ 5.8MB │ ✅ Scan OK│[🗑ïļ]│
│  └────────────────────────────────────────────────────────────┘    │
│                                                                     │
│  â„đïļ â˜‘ïļ = āđ€āļ­āļāļŠāļēāļĢāļŦāļĨāļąāļ (Main Document) — āđ€āļĨāļ·āļ­āļāđ„āļ”āđ‰ 1 āđ„āļŸāļĨāđŒ            │
│                                                                     │
│  ❌ Error File:                                                      │
│  ┌────────────────────────────────────────────────────────────┐    │
│  │ ðŸšĻ malware-test.pdf │ ❌ VIRUS DETECTED — āđ„āļŸāļĨāđŒāļ–āļđāļāļ›āļāļīāđ€āļŠāļ˜   │    │
│  └────────────────────────────────────────────────────────────┘    │
│                                                                     │
│  [← āļĒāđ‰āļ­āļ™āļāļĨāļąāļš]                  [āļšāļąāļ™āļ—āļķāļ Draft]  [āļ•āđˆāļ­āđ„āļ›: āļ•āļĢāļ§āļˆāļŠāļ­āļš â†’] │
└─────────────────────────────────────────────────────────────────────┘

SCR-006: Correspondence Detail + Workflow

┌─ LCBP3-āļŠāļ„.-āļāļ—āļ—.-LETTER-0001-68 ────────────────────────────────────┐
│  Subject: āļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨāđāļšāļšāļāđˆāļ­āļŠāļĢāđ‰āļēāļ‡āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄ                              │
│  āļŠāđˆāļ‡āđ‚āļ”āļĒ: āļŠāļ„.  →  āļ–āļķāļ‡: āļāļ—āļ—.   āļ§āļąāļ™āļ—āļĩāđˆ: 11 āļĄāļĩ.āļ„. 2569                │
│  Status: 🔄 IN REVIEW                                               │
│                                                                      │
│  ┌──────────────────────────────────────────────────────────────┐   │
│  │ TAB: [āļ‚āđ‰āļ­āļĄāļđāļĨ] [📎 āđ€āļ­āļāļŠāļēāļĢāđāļ™āļš (3)] [🔄 Workflow] [📋 Circulation]│   │
│  └──────────────────────────────────────────────────────────────┘   │
│                                                                      │
│  ═══ Workflow Diagram ════════════════════════════════════════════  │
│                                                                      │
│    ✅ Submit     ──→    🔄 Review    ──→    ○ āļ›āļīāļ”                    │
│    (āļŠāļ„.)               (āļāļ—āļ—.)              (āļŠāļ„.)                    │
│    11 āļĄāļĩ.āļ„.            āļāļģāļĨāļąāļ‡āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ        āļĢāļ­                     │
│    [āļ„āļĨāļīāļāļ”āļđ Log]        [āļ„āļĨāļīāļāļ”āļđāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”]                           │
│                                                                      │
│  ═══ Action Panel (āđāļŠāļ”āļ‡āđ€āļ‰āļžāļēāļ° Step āļ—āļĩāđˆ Active) ══════════════════   │
│  ┌──────────────────────────────────────────────────────────────┐   │
│  │ 📋 āļ‡āļēāļ™āļ‚āļ­āļ‡āļ„āļļāļ“: Review āđ€āļ­āļāļŠāļēāļĢāļ™āļĩāđ‰āđāļĨāļ°āļ•āļ­āļšāļāļĨāļąāļš                    │   │
│  │                                                              │   │
│  │ Comment / āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ:                                          │   │
│  │ [___________________________________________________]        │   │
│  │ [___________________________________________________]        │   │
│  │                                                              │   │
│  │ [❌ āļ›āļāļīāđ€āļŠāļ˜]  [✅ āļĢāļąāļšāļ—āļĢāļēāļš]  [ðŸ“Đ āļ•āļ­āļšāļāļĨāļąāļš]                    │   │
│  └──────────────────────────────────────────────────────────────┘   │
│                                                                      │
│  Admin Only: [⚡ Force Proceed →]  [â†Đïļ Revert ←]                   │
└──────────────────────────────────────────────────────────────────────┘

Workflow Step Popup (āļ„āļĨāļīāļ Step āļ—āļĩāđˆāļœāđˆāļēāļ™āđāļĨāđ‰āļ§):
┌─────────────────────────────────┐
│ ✅ Submit — 11 āļĄāļĩ.āļ„. 2569      │
│ āđ‚āļ”āļĒ: āļŠāļĄāļŠāļēāļĒ āļ. (āļŠāļ„.)            │
│ āđ€āļ§āļĨāļē: 09:32 āļ™.                 │
│ IP: 192.168.1.10               │
│ Comment: -                     │
└─────────────────────────────────┘

SCR-008: Create RFA (Form)

┌─ āļŠāļĢāđ‰āļēāļ‡ RFA ────────────────────────────────────────────────────────┐
│                                                                     │
│  Step 1: āļ‚āđ‰āļ­āļĄāļđāļĨ RFA ●── Step 2: Shop Drawing ○── Step 3: Transmittal ○│
│                                                                     │
│  ┌────────────────────────────────────────────────────────────┐    │
│  │ āļ›āļĢāļ°āđ€āļ āļ— RFA*                │ āļŠāļēāļ‚āļē (Discipline)*             │    │
│  │ [Shop Drawing ▾]           │ [Structural (STR) ▾]           │    │
│  │                                                             │    │
│  │ ⚠ïļ āđ€āļĨāļ‚āļ—āļĩāđˆ RFA (Auto-generated)                             │    │
│  │ Preview: LCBP3-RFA-STR-0043  (āļˆāļ°āļ­āļ­āļāđ€āļĄāļ·āđˆāļ­ Submit)          │    │
│  │                                                             │    │
│  │ Contract Drawing āļ—āļĩāđˆāļ­āđ‰āļēāļ‡āļ­āļīāļ‡                                 │    │
│  │ [🔍 āļ„āđ‰āļ™āļŦāļēāđāļšāļšāļ„āļđāđˆāļŠāļąāļāļāļē...    ]  [+ āđ€āļĨāļ·āļ­āļ]                  │    │
│  │ → CD-STR-001: Foundation Plan ×                            │    │
│  │                                                             │    │
│  │ āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ (Remark)                                           │    │
│  │ [____________________________________________]              │    │
│  └────────────────────────────────────────────────────────────┘    │
│                                                                     │
│  [← āļĒāļāđ€āļĨāļīāļ]                   [āļšāļąāļ™āļ—āļķāļ Draft]  [āļ•āđˆāļ­āđ„āļ›: āđāļ™āļšāđāļšāļš â†’]   │
└─────────────────────────────────────────────────────────────────────┘

SCR-009: RFA Detail + Workflow

┌─ LCBP3-RFA-STR-0042 ───────────────────────────────────────────────┐
│  āļ›āļĢāļ°āđ€āļ āļ—: Shop Drawing | āļŠāļēāļ‚āļē: Structural | Revision: A             │
│  āļĒāļ·āđˆāļ™āđ‚āļ”āļĒ: āļœāļĢāļĄ.1  →  āļœāđˆāļēāļ™ Transmittal: LCBP3-TRM-0015              │
│  Status: 🔄 UNDER REVIEW (āļ„āļ„āļ‡.)                                    │
│                                                                     │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │ TAB: [āļ‚āđ‰āļ­āļĄāļđāļĨ] [📎 Shop Drawing] [🔄 Workflow] [📝 Revision] │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  ═══ Shop Drawing Viewer ════════════════════════════════════════  │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │                                                             │   │
│  │         [ 📄 PDF Viewer — Streaming ]                      │   │
│  │                                                             │   │
│  │  ⮅ïļ āļŦāļ™āđ‰āļē 2/15 ➡ïļ         🔍 80%       [⮇ïļ āļ”āļēāļ§āļ™āđŒāđ‚āļŦāļĨāļ”] ← (āļ–āđ‰āļēāļĄāļĩ)│  │
│  │                                                             │   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
│  ═══ Action Panel (āđ€āļ‰āļžāļēāļ° Reviewer) ════════════════════════════   │
│  ┌─────────────────────────────────────────────────────────────┐   │
│  │ āļœāļĨāļāļēāļĢāļžāļīāļˆāļēāļĢāļ“āļē:                                               │   │
│  │ ○ Approved     ● Approved with Comments     ○ Rejected      │   │
│  │                                                             │   │
│  │ Comment (āļšāļąāļ‡āļ„āļąāļšāđ€āļĄāļ·āđˆāļ­ AW/C āļŦāļĢāļ·āļ­ Rejected):                  │   │
│  │ [āļžāļšāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”āđƒāļ™āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ” Connection Plate ...]           │   │
│  │                                                             │   │
│  │                          [āļĒāļāđ€āļĨāļīāļ]  [✅ āļĒāļ·āļ™āļĒāļąāļ™āļœāļĨāļāļēāļĢāļžāļīāļˆāļēāļĢāļ“āļē]│   │
│  └─────────────────────────────────────────────────────────────┘   │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

Workflow Diagram āļŠāļģāļŦāļĢāļąāļš RFA:
 ✅ Draft → ✅ Submitted → 🔄 TEAM Review → 🔄 āļ„āļ„āļ‡. Review → ○ APPROVED
                              (parallel)        (sequential)

SCR-017: Create Circulation Sheet

┌─ āļŠāļĢāđ‰āļēāļ‡āđƒāļšāđ€āļ§āļĩāļĒāļ™ (Circulation Sheet) ─────────────────────────────────┐
│  āļ­āđ‰āļēāļ‡āļ­āļīāļ‡: LCBP3-āļāļ—āļ—-āļŠāļ„-LETTER-0012 — āļ‚āļ­āļ‚āđ‰āļ­āļĄāļđāļĨāļ‡āļ§āļ”āļ‡āļēāļ™āļ—āļĩāđˆ 3         │
│                                                                     │
│  ┌────────────────────────────────────────────────────────────┐    │
│  │ āļœāļđāđ‰āļĢāļąāļšāļœāļīāļ”āļŠāļ­āļšāļŦāļĨāļąāļ (Main — āļ•āđ‰āļ­āļ‡āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ)*                  │    │
│  │ [🔍 āļ„āđ‰āļ™āļŦāļēāļŠāļ·āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰...     ]  [+ āđ€āļžāļīāđˆāļĄ]                  │    │
│  │ → [ðŸ‘Ī āļŠāļĄāļŠāļēāļĒ āļ. (āļŦāļąāļ§āļŦāļ™āđ‰āļē)] ×  [📅 āļāļģāļŦāļ™āļ”: 15 āļĄāļĩ.āļ„.]       │    │
│  │                                                             │    │
│  │ āļœāļđāđ‰āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ (Action — āļĢāđˆāļ§āļĄāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ)                     │    │
│  │ [🔍 āļ„āđ‰āļ™āļŦāļēāļŠāļ·āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰...    ]  [+ āđ€āļžāļīāđˆāļĄ]                   │    │
│  │ → [ðŸ‘Ī āļ§āļīāļŠāļąāļĒ āļŠ. (āļ§āļīāļĻāļ§āļāļĢ)] ×  [📅 āļāļģāļŦāļ™āļ”: 20 āļĄāļĩ.āļ„.]        │    │
│  │                                                             │    │
│  │ āļĢāļąāļšāļ—āļĢāļēāļš (Information — āđ€āļžāļ·āđˆāļ­āļ—āļĢāļēāļšāđ€āļ—āđˆāļēāļ™āļąāđ‰āļ™)                 │    │
│  │ [🔍 āļ„āđ‰āļ™āļŦāļēāļŠāļ·āđˆāļ­āļœāļđāđ‰āđƒāļŠāđ‰...    ]  [+ āđ€āļžāļīāđˆāļĄ]                   │    │
│  │ → [ðŸ‘Ī āļĄāļēāļ™āļ° āļž. (āļœāļˆāļ.)] ×                                   │    │
│  │                                                             │    │
│  │ āļŦāļĄāļēāļĒāđ€āļŦāļ•āļļ / āļ„āļģāļŠāļąāđˆāļ‡āļāļēāļĢ                                       │    │
│  │ [āđ‚āļ›āļĢāļ”āļ•āļĢāļ§āļˆāļŠāļ­āļšāđāļĨāļ°āđ€āļ•āļĢāļĩāļĒāļĄāļ‚āđ‰āļ­āļĄāļđāļĨāļ‡āļ§āļ”āļ‡āļēāļ™āļ—āļĩāđˆ 3...]                │    │
│  └────────────────────────────────────────────────────────────┘    │
│                                                                     │
│  [← āļĒāļāđ€āļĨāļīāļ]                                [✅ āļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļŠāđˆāļ‡ Notify] │
└─────────────────────────────────────────────────────────────────────┘

SCR-022: User Management (Admin)

┌─ āļˆāļąāļ”āļāļēāļĢāļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™ â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
│  āļ­āļ‡āļ„āđŒāļāļĢ: āļŠāļ„. (āļŠāļģāļ™āļąāļāļ‡āļēāļ™āđ‚āļ„āļĢāļ‡āļāļēāļĢ)     [+ āđ€āļžāļīāđˆāļĄ User āđƒāļŦāļĄāđˆ]             │
│                                                                      │
│  🔍 [āļ„āđ‰āļ™āļŦāļēāļŠāļ·āđˆāļ­ / āļ­āļĩāđ€āļĄāļĨ...]  [Role: āļ—āļąāđ‰āļ‡āļŦāļĄāļ” â–ž]  [āļŠāļ–āļēāļ™āļ°: Active ▾]  │
│                                                                      │
│  ┌──────────────────────────────────────────────────────────────┐   │
│  │ āļŠāļ·āđˆāļ­              │ Username    │ Role           │ Status │   │   │
│  ├───────────────────┾─────────────┾────────────────┾────────┾───â”Ī   │
│  │ āļŠāļĄāļŠāļēāļĒ āļāļīāļ•āļ•āļī      │ somchai.k   │ Document Ctrl  │ ✅     │[⚙ïļ]│   │
│  │ āļ§āļīāļŠāļąāļĒ āļŠāļĄāļĻāļĢāļĩ      │ wichai.s    │ Editor         │ ✅     │[⚙ïļ]│   │
│  │ āļĄāļēāļ™āļ° āļžāļ‡āļĐāđŒāļ”āļĩ      │ mana.p      │ Org Admin      │ ✅     │[⚙ïļ]│   │
│  │ āļŠāļĄāļŦāļāļīāļ‡ āļĢāļąāļāļ”āļĩ     │ somying.r   │ Viewer         │ ⛔     │[⚙ïļ]│   │
│  └──────────────────────────────────────────────────────────────┘   │
│                                                                      │
└──────────────────────────────────────────────────────────────────────┘

User Edit Drawer (Slide in from right):
┌──────────────────────────┐
│ āđāļāđ‰āđ„āļ‚āļœāļđāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™           │
│ ────────────────────     │
│ āļŠāļ·āđˆāļ­: [āļŠāļĄāļŠāļēāļĒ āļāļīāļ•āļ•āļī    ] │
│ Email: [somchai@...   ] │
│ Role: [Document Ctrl ▾] │
│ Status: ✅ Active [Toggle]│
│                          │
│ [āļĢāļĩāđ€āļ‹āđ‡āļ•āļĢāļŦāļąāļŠāļœāđˆāļēāļ™]         │
│ [❌ āļĒāļāđ€āļĨāļīāļ] [✅ āļšāļąāļ™āļ—āļķāļ]  │
└──────────────────────────┘

SCR-025: Document Number Config (Superadmin)

┌─ āļ•āļąāđ‰āļ‡āļ„āđˆāļēāđ€āļĨāļ‚āļ—āļĩāđˆāđ€āļ­āļāļŠāļēāļĢ â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”
│  Project: LCBP3  [+ āđ€āļžāļīāđˆāļĄ Format āđƒāļŦāļĄāđˆ]                               │
│                                                                       │
│  ┌─────────────────────────────────────────────────────────────────┐ │
│  │ āļ›āļĢāļ°āđ€āļ āļ—          │ Format Template                │ Reset  │ Actn │ │
│  ├─────────────────┾────────────────────────────────┾────────┾──────â”Ī │
│  │ Letter          │ {PROJECT}-{ORIG}-{RECP}-L-{SEQ:4}-{YY}│ Yearly│[✏ïļ]│ │
│  │ RFI             │ {PROJECT}-{ORIG}-{RECP}-I-{SEQ:4}-{YY}│ Yearly│[✏ïļ]│ │
│  │ RFA-Shop Dwg    │ {PROJECT}-RFA-{DISC}-{SEQ:4}   │ Never  │[✏ïļ]│ │
│  │ Transmittal     │ {PROJECT}-{ORIG}-{RECP}-T-{SEQ:4}-{YY}│ Yearly│[✏ïļ]│ │
│  └─────────────────────────────────────────────────────────────────┘ │
│                                                                       │
│  Edit Format Inline:                                                  │
│  ┌─────────────────────────────────────────────────────────────────┐ │
│  │ Template: [{PROJECT}-{ORIG}-{RECP}-L-{SEQ:4}-{YY}           ] │ │
│  │ Preview:  [LCBP3-āļŠāļ„.-āļāļ—āļ—.-L-0001-68]                          │ │
│  │           ✅ Format āļ–āļđāļāļ•āđ‰āļ­āļ‡                                    │ │
│  │ [āļĒāļāđ€āļĨāļīāļ]                                          [✅ āļšāļąāļ™āļ—āļķāļ]  │ │
│  └─────────────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────────────┘

5. ðŸŽĻ Design System Reference

Color Tokens

/* Primary — āđƒāļŠāđ‰āļāļąāļš Action Buttons, Links */
--primary:       hsl(221, 83%, 53%);   /* Blue-600 */
--primary-hover: hsl(221, 83%, 45%);

/* Status Colors */
--status-draft:      hsl(48, 96%, 53%);   /* Yellow */
--status-submitted:  hsl(217, 91%, 60%);  /* Blue */
--status-review:     hsl(24, 95%, 53%);   /* Orange */
--status-approved:   hsl(142, 71%, 45%);  /* Green */
--status-rejected:   hsl(0, 84%, 60%);    /* Red */
--status-cancelled:  hsl(215, 14%, 55%);  /* Gray */
--status-overdue:    hsl(0, 84%, 60%);    /* Red (same as rejected) */

/* Background */
--bg-base:    hsl(222, 47%, 11%);  /* Dark Navy (dark mode base) */
--bg-surface: hsl(222, 47%, 16%);  /* Card surface */
--bg-muted:   hsl(215, 28%, 17%);  /* Muted sections */

Typography

font-family: 'Inter', 'Noto Sans Thai', sans-serif;

/* Scale */
--text-xs:  0.75rem;   /* 12px — Badge, Caption */
--text-sm:  0.875rem;  /* 14px — Table cell, Label */
--text-base:1rem;      /* 16px — Body */
--text-lg:  1.125rem;  /* 18px — Subheading */
--text-xl:  1.25rem;   /* 20px — Page title */
--text-2xl: 1.5rem;    /* 24px — Dashboard KPI */

Component States

Component Default Hover Active Disabled Error
Button Primary bg-primary bg-primary-hover scale-95 opacity-50 —
Input border-gray-300 border-primary border-primary ring border-gray-200 border-red-500
Table Row bg-surface bg-muted — opacity-60 bg-red-50
Badge per status color — — — —

6. ðŸ“ą Responsive Breakpoints

Breakpoint Width Behavior
sm < 640px Mobile: Sidebar → Drawer, Table → Cards
md 640-1024px Tablet: Collapsed Sidebar
lg > 1024px Desktop: Full Sidebar

Mobile-specific Rules (UI-Rule 5.11):

  • āļ•āļēāļĢāļēāļ‡ â†’ Card View āļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļī
  • Sidebar → Collapsible Hamburger Drawer
  • Action Panel → Bottom Sheet āđāļ—āļ™ Inline Panel

7. ⚡ Interaction Patterns

Optimistic Updates (UI-Rule 5.10)

User āļāļ” "Approve" → UI āđ€āļ›āļĨāļĩāđˆāļĒāļ™āļŠāļ–āļēāļ™āļ°āļ—āļąāļ™āļ—āļĩ (āđ„āļĄāđˆāļĢāļ­ API)
   ↓
API āļ•āļ­āļšāļāļĨāļąāļš Success → āļĒāļ·āļ™āļĒāļąāļ™ UI āļ—āļĩāđˆāđ€āļ›āļĨāļĩāđˆāļĒāļ™āđāļĨāđ‰āļ§
   ↓ (āļ–āđ‰āļē API āļĨāđ‰āļĄāđ€āļŦāļĨāļ§)
Rollback UI → āđāļŠāļ”āļ‡ Toast Error: "āđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ” āļāļĢāļļāļ“āļēāļĨāļ­āļ‡āđƒāļŦāļĄāđˆ"

Auto-save Draft (UI-Rule 5.12)

User āļžāļīāļĄāļžāđŒāđƒāļ™ Form → debounce 2 āļ§āļīāļ™āļēāļ—āļĩ → āļšāļąāļ™āļ—āļķāļāļĨāļ‡ localStorage
āļ›āļīāļ” Browser → āđ€āļ›āļīāļ”āđƒāļŦāļĄāđˆ → āđāļŠāļ”āļ‡ Banner: "āļžāļš Draft āļ—āļĩāđˆāļšāļąāļ™āļ—āļķāļāđ„āļ§āđ‰ [āļāļđāđ‰āļ„āļ·āļ™] [āļ—āļīāđ‰āļ‡]"

File Upload Progress

āđ€āļĨāļ·āļ­āļāđ„āļŸāļĨāđŒ → āđāļŠāļ”āļ‡ Progress Bar → ClamAV Scan → ✅/❌

📝 Document Control

  • Version: 1.0.0 | Status: DRAFT
  • Created: 2026-03-11 | Owner: Nattanin Peancharoen
  • Next Step: āļŠāļĢāđ‰āļēāļ‡ High-fidelity Mockup āđƒāļ™ Figma āļ•āļēāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ™āļĩāđ‰
  • Figma Link: [TBD — āļŠāļĢāđ‰āļēāļ‡āđƒāļ™ Figma Community āļŦāļĢāļ·āļ­ Self-hosted Penpot]
  • Classification: Internal Use Only