122 lines
8.1 KiB
Markdown
122 lines
8.1 KiB
Markdown
# ð Section 1: Objectives (āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđ)
|
|
|
|
---
|
|
|
|
title: 'Objectives'
|
|
version: 1.8.1
|
|
status: updated
|
|
owner: Nattanin Peancharoen
|
|
last_updated: 2026-03-24
|
|
related:
|
|
|
|
- specs/00-Overview/00-03-product-vision.md
|
|
- specs/01-Requirements/01-04-user-stories.md
|
|
- specs/01-Requirements/01-05-acceptance-criteria.md
|
|
- specs/01-Requirements/01-03-modules/01-03-00-index.md
|
|
- specs/06-Decision-Records/ADR-005-technology-stack.md
|
|
|
|
---
|
|
|
|
> [!NOTE]
|
|
> āđāļāļāļŠāļēāļĢāļāļĩāđāļāļģāļŦāļāļ **āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāđāļĨāļ°āļāļāļāđāļāļāļāļāļ LCBP3-DMS** āļāļķāđāļāđāļāđāļāđāļāļāļŠāļēāļĢāļāđāļēāļāļāļīāļāļŦāļĨāļąāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļŠāļīāļāđāļāļāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāđāļĨāļ° Feature Prioritization
|
|
|
|
---
|
|
|
|
## 1. ðŊ āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđāļŦāļĨāļąāļ (Primary Objectives)
|
|
|
|
āļŠāļĢāđāļēāļāļĢāļ°āļāļāļāļĢāļīāļŦāļēāļĢāļāļąāļāļāļēāļĢāđāļāļāļŠāļēāļĢāđāļāļĢāļāļāļēāļĢ (Document Management System) āļŠāļģāļŦāļĢāļąāļāđāļāļĢāļāļāļēāļĢāļāđāļāļŠāļĢāđāļēāļāļāđāļēāđāļĢāļ·āļāđāļŦāļĨāļĄāļāļāļąāļāļĢāļ°āļĒāļ°āļāļĩāđ 3 āļāļĩāđāļĢāļāļāļĢāļąāļāļāļāļāđāļāļĢāļāļđāđāļĄāļĩāļŠāđāļ§āļāđāļāđāļŠāđāļ§āļāđāļŠāļĩāļĒāļŦāļĨāļēāļĒāļāđāļēāļĒ āđāļāđāđāļāđ āļāļāļ., āļŠāļ., āļāļĢāļĄ., āļāļāļ. āđāļāļĒāļĄāļĩāđāļāđāļēāļŦāļĄāļēāļĒāļāļąāļāļāļĩāđ:
|
|
|
|
| # | āļ§āļąāļāļāļļāļāļĢāļ°āļŠāļāļāđ | KPI āļāļĩāđāļ§āļąāļāđāļāđ | āļŠāļāļēāļāļ° |
|
|
|---|------------|------------|------|
|
|
| O-01 | āļāļąāļāļāļēāļĢāļ§āļāļāļĢāļāļĩāļ§āļīāļāđāļāļāļŠāļēāļĢ (Correspondence, RFA, Transmittal) āđāļāļāļāļĢāļāļ§āļāļāļĢ | Document turnaround time āļĨāļāļĨāļ âĨ 50% āļāļēāļ Manual | ð UAT |
|
|
| O-02 | āļāļąāļāļāļąāļāđāļāđ RBAC 4 āļĢāļ°āļāļąāļ (Global/Org/Project/Contract) āļāđāļēāļ CASL | āđāļĄāđāļāļ Unauthorized Access āđāļ Penetration Test | â
Done |
|
|
| O-03 | āļāđāļāļāļāļąāļ Race Condition āđāļāļāļēāļĢāļāļāļāđāļĨāļāđāļāļāļŠāļēāļĢ āļāđāļ§āļĒ Redis Redlock | Duplicate document number = 0 āđāļ load test 50 concurrent | â
Done |
|
|
| O-04 | āļāļĢāļ§āļāļŠāļāļāđāļ§āļĢāļąāļŠāļāļļāļāđāļāļĨāđāļāļĩāđāļāļąāļāđāļŦāļĨāļ āļāđāļ§āļĒ ClamAV | Malware detection rate = 100% āļāļēāļ EICAR test | â
Done |
|
|
| O-05 | āļĢāļāļāļĢāļąāļ Full-text Search āļāđāļēāļĄāđāļāļāļŠāļēāļĢāļāļąāđāļāļŦāļĄāļ āļāđāļ§āļĒ Elasticsearch | Search response time < 500ms āļŠāļģāļŦāļĢāļąāļ 10K documents | â
Done |
|
|
| O-06 | āļĢāļāļāļĢāļąāļ ~20,000 āđāļāļāļŠāļēāļĢāļāļĩāđāļĄāļĩāļāļĒāļđāđāđāļāļīāļĄ āļāđāļēāļ Migration Bot (n8n + Ollama) | Migration accuracy âĨ 95% | ð Planned |
|
|
| O-07 | āļāļąāļāļāļķāļ Audit Log āļāļļāļ Action āļāļĩāđāļŠāļģāļāļąāļāđāļāļĢāļ°āļāļ | Audit trail āļāļĢāļ 100% āļŠāļģāļŦāļĢāļąāļ CRUD + Workflow events | â
Done |
|
|
| O-08 | āļĢāļ°āļāļāļāļĢāđāļāļĄāļĢāļāļāļĢāļąāļ 100 concurrent users āđāļāļĒāđāļĄāđāļĄāļĩ degradation | API response time < 200ms (P95) āļāļĩāđ 100 VUs | ð UAT |
|
|
|
|
---
|
|
|
|
## 2. ð§Đ āļāļāļāđāļāļāļĢāļ°āļāļ (Scope)
|
|
|
|
### â
In Scope â āļāļĩāđāļāļāļĢāđāļāļĩāđāļāļąāļāļāļēāđāļ LCBP3-DMS
|
|
|
|
| Module | āļāļģāļāļāļīāļāļēāļĒ | āļāđāļēāļāļāļīāļ |
|
|
|--------|---------|--------|
|
|
| **Correspondence** | āļāļāļŦāļĄāļēāļĒ/āđāļāļāļŠāļēāļĢāļĢāļ°āļŦāļ§āđāļēāļāļāļāļāđāļāļĢ āļāļĢāđāļāļĄ Workflow | US-001~005 |
|
|
| **RFA (Request for Approval)** | āļāļāļāļāļļāļĄāļąāļāļī Shop Drawing āļāļĢāđāļāļĄ Transmittal | US-006~012c |
|
|
| **Transmittal** | āļŠāđāļāđāļāļāļŠāļēāļĢāļāļģāļāļ§āļāļĄāļēāļāļāļĢāđāļāļĄāļāļąāļ | US-013~015 |
|
|
| **Shop Drawing** | āļāļąāļāļāļēāļĢāđāļāļāļāđāļāļŠāļĢāđāļēāļāļāļĢāđāļāļĄ Revision History | US-016~018 |
|
|
| **Contract Drawing** | āļāļąāļāļāļēāļĢāđāļāļāļāļđāđāļŠāļąāļāļāļē | US-019~020 |
|
|
| **As-built Drawing** | āļāļąāļāļāļēāļĢāđāļāļ As-built āļāļĢāđāļāļĄ Revision | US-021~022 |
|
|
| **Circulation Sheet** | āđāļ§āļĩāļĒāļāđāļāļāļŠāļēāļĢāļ āļēāļĒāđāļāļāļāļāđāļāļĢ | US-023~025 |
|
|
| **Document Numbering** | āļāļāļāđāļĨāļāđāļāļāļŠāļēāļĢāļāļąāļāđāļāļĄāļąāļāļī āļāļĢāđāļāļĄ Format Config | ADR-002 |
|
|
| **Workflow Engine** | State machine āļŠāļģāļŦāļĢāļąāļāļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļāļļāļĄāļąāļāļī | ADR-001 |
|
|
| **RBAC** | āļŠāļīāļāļāļīāđ 4 āļĢāļ°āļāļąāļāļāđāļēāļ CASL | ADR-016 |
|
|
| **Full-text Search** | āļāđāļāļŦāļēāļāđāļēāļĄāđāļāļāļŠāļēāļĢāļāļąāđāļāļŦāļĄāļ | Elasticsearch |
|
|
| **Audit Log** | āļāļąāļāļāļķāļāļāļļāļ Action āļŠāļģāļāļąāļ | â |
|
|
| **Notifications** | āđāļāđāļāđāļāļ·āļāļ In-App, Email, LINE | ADR-008 |
|
|
| **Admin Panel** | āļāļąāļāļāļēāļĢ Users, Orgs, Projects, Configs | SCR-022~026 |
|
|
| **Migration Bot** | āļāļģāđāļāđāļēāđāļāļāļŠāļēāļĢāđāļāļīāļĄ ~20K docs | ADR-017 |
|
|
|
|
### â Out of Scope â āđāļĄāđāļĢāļ§āļĄāđāļāđāļāļĢāļāļāļēāļĢāļāļĩāđ
|
|
|
|
- āļĢāļ°āļāļāļāļąāļāļāļĩ / ERP Integration
|
|
- Mobile Native App (iOS/Android) â āļĢāļāļāļĢāļąāļāđāļāļāļēāļ° Responsive Web
|
|
- Electronic Signature (e-Signature) āļāļēāļĄāļāļāļŦāļĄāļēāļĒ
|
|
- Video Conference / Real-time Collaboration Editor
|
|
- IoT / Sensor Data Integration
|
|
|
|
---
|
|
|
|
## 3. ðïļ āļāļĢāļīāļāļāļāļļāļĢāļāļīāļ (Business Context)
|
|
|
|
**āđāļāļĢāļāļāļēāļĢ:** āļāđāļēāđāļĢāļ·āļāđāļŦāļĨāļĄāļāļāļąāļ āļĢāļ°āļĒāļ°āļāļĩāđ 3 (Laem Chabang Port Phase 3)
|
|
**āļāļđāđāđāļāđāļāļēāļ:** 4 āļāļāļāđāļāļĢāļŦāļĨāļąāļ â āļāļāļ. (PAT), āļŠāļ. (PMC), āļāļĢāļĄ. (Contractor), āļāļāļ. (Consultant)
|
|
**āļāļąāļāļŦāļēāđāļāļīāļĄāļāļĩāđāđāļāđāđāļ:**
|
|
|
|
- āđāļāļāļŠāļēāļĢāđāļāļīāļĄāļāļĒāļđāđāđāļāļĢāļđāļāđāļāļāļāļĢāļ°āļāļēāļĐāđāļĨāļ°āđāļāļĨāđāļāļĢāļ°āļāļąāļāļāļĢāļ°āļāļēāļĒ (~20,000 āļĢāļēāļĒāļāļēāļĢ)
|
|
- āđāļĄāđāļĄāļĩāļĢāļ°āļāļ Version Control āļŠāļģāļŦāļĢāļąāļāđāļāļāļāđāļāļŠāļĢāđāļēāļ
|
|
- āļāļĢāļ°āļāļ§āļāļāļēāļĢāļāļāļļāļĄāļąāļāļīāļāđāļāļāļŠāđāļāđāļāļāļŠāļēāļĢāļāđāļēāļāļāļĩāđāļĄāļĨāļŦāļĢāļ·āļāļĄāļ·āļ āđāļāđāđāļ§āļĨāļēāļāļēāļ
|
|
- āđāļĄāđāļĄāļĩāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļŠāļīāļāļāļīāđāļāļĩāđāļĢāļąāļāļāļļāļĄ āļāļģāđāļŦāđāļāđāļāļĄāļđāļĨāļĢāļąāđāļ§āđāļŦāļĨāđāļāđ
|
|
- āđāļĄāđāļĄāļĩ Audit Trail āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļĒāđāļāļāļŦāļĨāļąāļ
|
|
|
|
---
|
|
|
|
## 4. ð Architectural Principles (āļŦāļĨāļąāļāļāļēāļĢāļāļāļāđāļāļ)
|
|
|
|
| āļŦāļĨāļąāļāļāļēāļĢ | āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļ | ADR |
|
|
|--------|---------|-----|
|
|
| **Security-First** | RBAC āļāļļāļ Endpoint, JWT, Helmet.js, ClamAV | ADR-016 |
|
|
| **Data Integrity** | UUID-based routing (āļāđāļāļāļāļąāļ IDOR), Optimistic Locking | ADR-019 |
|
|
| **No Magic Migrations** | āđāļāđāđāļ Schema SQL āđāļāļĒāļāļĢāļ āđāļĄāđāđāļāđ ORM Migration | ADR-009 |
|
|
| **Thin Controller** | Business Logic āļāļĒāļđāđāđāļ Service Layer āđāļāđāļēāļāļąāđāļ | â |
|
|
| **Unified Workflow** | State Machine āđāļāļĩāļĒāļ§āļŠāļģāļŦāļĢāļąāļāļāļļāļ Workflow | ADR-001 |
|
|
| **Hybrid Identifier** | INT PK (internal) + UUIDv7 (public API) | ADR-019 |
|
|
| **Queue-based Notifications** | BullMQ â Email/LINE/In-App async | ADR-008 |
|
|
| **Observable System** | Prometheus + Loki + Grafana | ADR-010 |
|
|
|
|
---
|
|
|
|
## 5. â
āđāļāļāļāđāļāļ§āļēāļĄāļŠāļģāđāļĢāđāļ (Success Criteria)
|
|
|
|
āļĢāļ°āļāļāļāļ·āļāļ§āđāļēāļāļĢāđāļāļĄ Go-Live āđāļĄāļ·āđāļ:
|
|
|
|
- [ ] UAT āļāđāļēāļ âĨ 95% āļāļāļ Test Cases āđāļ `01-05-acceptance-criteria.md`
|
|
- [ ] āđāļĄāđāļāļ Critical Bug (Severity 1) āļāļĩāđāļāđāļēāļāļāļĒāļđāđ
|
|
- [ ] Performance Test āļāđāļēāļāļāļĩāđ 100 concurrent users (API < 200ms P95)
|
|
- [ ] Security Audit āļāđāļēāļ (0 High/Critical Vulnerabilities)
|
|
- [ ] Sign-off āļāļēāļāļāļąāļ§āđāļāļāļāļąāđāļ 4 āļāļāļāđāļāļĢ āļāļēāļĄ `00-04-stakeholder-signoff-and-risk.md`
|
|
- [ ] Runbook āđāļĨāļ° Backup/Recovery Plan āļāļĢāđāļāļĄ āļāļēāļĄ `04-02-backup-recovery.md`
|
|
|
|
---
|
|
|
|
## ð Document Control
|
|
|
|
- **Version:** 1.8.1 | **Status:** updated
|
|
- **Created:** 2026-02-23 | **Updated:** 2026-03-24 | **Owner:** Nattanin Peancharoen
|
|
- **Changes:** Expanded from stub to full objectives document â added KPI table, scope, business context, architectural principles, success criteria
|
|
- **Classification:** Internal Use Only
|