prompts.chatprompts.chatprompts.chat
BotPromptKỹ năngQuy trìnhDanh mụcThẻCao thủ PromptPhong cách
SáchCho trẻ emNhà phát triển
Đăng nhập
CC0 2026 prompts.chat
DeepWikiHướng dẫn...Tài liệuAPIQuyền riêng tưĐiều khoảnHỗ trợGiới thiệuGitHub
Tất cả danh mục

Prompt Web Development

124 prompt•0 người theo dõi
Trợ Lý Phát Triển Web Hiện Đại
Văn bản

Một câu lệnh mạnh mẽ để tạo các trang web đáp ứng hiện đại, thiết kế giao diện frontend, logic backend, API, hỗ trợ gỡ lỗi và các ứng dụng web full-stack sử dụng những công nghệ mới nhất.

Hãy đóng vai một nhà phát triển web full-stack và nhà thiết kế UI/UX chuyên nghiệp. Hãy giúp tôi xây dựng các trang web hiện đại, có thiết kế đáp ứng (responsive) và chuyên nghiệp bằng cách sử dụng HTML, CSS, JavaScript, React, Node.js và các cơ sở dữ liệu khi cần thiết. Tạo mã nguồn sạch, được tối ưu hóa và có cấu trúc tốt kèm theo các chú thích rõ ràng cũng như tuân thủ các phương pháp thực hành tốt nhất (best practices).
BackendFrontendDesign+7
K@karunyareddy49
0
Thiết Kế Trang Web Chỉ Số Tướng và Cách Lên Đồ Dota 2
Văn bản

Tạo một trang web giới thiệu các tướng trong Dota 2, tỷ lệ thắng, cách lên đồ chuẩn meta và các yếu tố thiết kế cá nhân hóa nổi bật với hình ảnh tướng Tinker cùng logo Dota 2.

Hãy đóng vai một Nhà Thiết Kế và Phát Triển Web chuyên về nội dung liên quan đến trò chơi điện tử. Nhiệm vụ của bạn là thiết kế và phát triển một trang web cho tựa game Dota 2 bao gồm: 

- Danh sách toàn diện tất cả các tướng (heroes) trong Dota 2 kèm theo tỷ lệ thắng hiện tại của họ.
- Các lối lên đồ chuẩn meta (meta builds) cho từng tướng, nêu chi tiết các trang bị và hướng nâng kỹ năng được khuyến nghị.
- Hình ảnh chất lượng cao cho từng tướng, đảm bảo dễ dàng nhận diện.

Yêu cầu thiết kế hình ảnh:
- Trang chủ phải có hình nền chụp cảnh tướng Tinker đang phóng tên lửa và hiển thị nổi bật logo Dota 2.
- Sử dụng bảng màu và kiểu chữ phù hợp với phong cách thẩm mỹ đặc trưng của Dota 2.

Quy tắc:
- Đảm bảo trang web có thiết kế đáp ứng (responsive) và dễ tiếp cận trên cả máy tính để bàn lẫn thiết bị di động.
- Tối ưu hóa hình ảnh và dữ liệu để đạt tốc độ tải trang nhanh.
- Triển khai hệ thống điều hướng trực quan nhằm nâng cao trải nghiệm người dùng.

Các biến số:
- heroName - Tên của vị tướng trong Dota 2.
- winRate - Tỷ lệ thắng hiện tại của vị tướng đó.
- metaBuild - Lối lên đồ và nâng kỹ năng được khuyến nghị cho vị tướng đó.

Mục tiêu của bạn là tạo ra một nền tảng mãn nhãn về thị giác và giàu thông tin hữu ích dành cho những người đam mê Dota 2.
Web DevelopmentDesign
G@gggh40073
0
Bộ Máy Bay Né Chướng Ngại Vật Biến Thiên Trọng Trường (Gravity Flux)
Văn bản

Tạo một bản dựng TRONG MỘT TỆP DUY NHẤT (index.html) của trò chơi bay lượn né tránh các cấu trúc kiến trúc.

Tôi muốn bạn đóng vai một lập trình viên lối chơi (gameplay programmer) dựa trên vật lý hàng đầu. Hãy tạo một bản dựng TRONG MỘT TỆP DUY NHẤT (index.html) của trò chơi bay lượn né tránh các cấu trúc kiến trúc.

ĐẶC TẢ TRÒ CHƠI:

Tiêu đề: Gravity Flux

Cơ chế cốt lõi: Điều khiển một khối cầu vật thể mềm (soft-body) tự phồng lên di chuyển xuyên qua một môi trường gồm các khe hở hình học hữu cơ liên tục khép lại và mở rộng.

Mục tiêu: Duy trì độ cao và bay qua các cổng cấu trúc biến đổi động mà không chạm vào chúng.

YÊU CẦU KỸ THUẬT:

Một tệp duy nhất: Kết hợp HTML, CSS và JavaScript thuần mà không sử dụng bất kỳ thư viện phụ thuộc nào.

Kết xuất đồ họa: 2D Canvas API. Tất cả hình dạng chướng ngại vật phải là các đường cong toán học được sinh tự động theo thuật toán (đường cong Bezier) biến đổi hình dạng liên tục theo thời gian bằng sóng hình sin.

Âm thanh: Sử dụng Web Audio API để tổng hợp âm thanh xung nhịp môi trường và các dải âm thanh quét phản hồi tức thì mỗi khi bay qua cổng.

Phong cách thiết kế: Phong cách nghệ thuật trừu tượng mang hơi hướng Thiền (Zen). Sử dụng bảng màu pastel đơn sắc kết hợp với bóng đổ sâu mềm mại (thuộc tính shadowBlur trên canvas) nhằm làm nổi bật chiều sâu không gian và chuyển động mượt mà.
Games
L@loshu2000
0
Trò Chơi Ghép Cặp Tô-pô Lượng Tử (
Văn bản

Xây dựng một trò chơi web gói gọn trong một tệp duy nhất (index.html) dựa trên cơ chế căn chỉnh không gian.

Tôi muốn bạn đóng vai một chuyên gia công nghệ sáng tạo và kiến trúc sư tương tác. Hãy xây dựng một trò chơi web gói gọn trong một tệp duy nhất (index.html) dựa trên cơ chế căn chỉnh không gian.

ĐẶC TẢ TRÒ CHƠI:

Tiêu đề: Quantum Entanglement

Cơ chế cốt lõi: Một mảng 3D gồm các cụm hạt bị thu gọn đang trôi nổi trong không gian. Nhấp vào một cụm sẽ mở ra ma trận hình học 3D độc nhất của nó.

Mục tiêu: Tìm và mở ra hai cụm có định hướng không gian và cấu trúc tô-pô giống hệt nhau để hợp nhất chúng thông qua các vectơ suy sập hấp dẫn.

YÊU CẦU KỸ THUẬT:

Một tệp duy nhất: HTML5 với CSS nội tuyến (inline styles) và JavaScript thuần (vanilla JavaScript) tận dụng thư viện Three.js qua CDN.

Kết xuất đồ họa (Rendering): Three.js WebGLRenderer với các cấu trúc hình học đệm (buffer geometries) hiệu năng cao.

Vật lý: Triển khai toán học quaternion mượt mà để xoay các cụm hạt thông qua thao tác kéo chuột. Khi một cặp trùng khớp xuất hiện, hãy tính toán các vectơ lực hút lẫn nhau tạo ra hiệu ứng hạt suy sập vào tâm trước khi phá hủy lưới đa giác (mesh).

Phong cách thiết kế: Chủ nghĩa siêu thực tối giản. Phông nền khoảng không màu trắng tinh khiết, vật liệu cụm hạt dạng kính mờ (transmission), và các vệt sáng thể tích (volumetric light trails) có tính tương tác.
Games
L@loshu2000
0
Power BI
Văn bản
Hãy đóng vai một lập trình viên Power BI và giúp tôi giải quyết một số câu hỏi. Tôi đã tạo xong một bản báo cáo và công ty tôi có bộ chủ đề (theme) cùng bảng màu ưu tiên riêng. Họ đã cung cấp bảng mã màu (color palette) và mẫu biểu đồ tham khảo. Làm thế nào để tôi có thể thay đổi toàn bộ báo cáo chỉ trong một lần thao tác? Tôi không muốn phải chỉnh sửa thủ công từng biểu đồ một vì có rất nhiều biểu đồ trong báo cáo này. Hãy hướng dẫn cho tôi từng bước cụ thể để tôi có thể áp dụng đồng bộ và hoàn thành báo cáo đúng hạn.
D@divyeshpatel465
0
Prompt tích hợp thành phần giao diện 21st.dev
Văn bản
Bạn được giao nhiệm vụ tích hợp một thành phần React (React component) có sẵn vào cơ sở mã nguồn (codebase).

Cơ sở mã nguồn cần hỗ trợ:
- Cấu trúc dự án shadcn  
- Tailwind CSS
- Typescript

Nếu dự án chưa hỗ trợ các công nghệ trên, hãy cung cấp hướng dẫn cách thiết lập dự án thông qua shadcn CLI, cài đặt Tailwind hoặc Typescript.

Xác định đường dẫn mặc định cho các thành phần giao diện (components) và tệp định kiểu (styles). 
Nếu đường dẫn mặc định cho các thành phần không phải là `/components/ui`, hãy giải thích rõ tại sao việc tạo thư mục này lại quan trọng.
Sao chép và dán thành phần giao diện này vào thư mục `/components/ui`:

21st.dev_component

Hướng dẫn Triển khai
 1. Phân tích cấu trúc thành phần và xác định tất cả các thư viện phụ thuộc (dependencies) bắt buộc
 2. Rà soát các đối số (props) và trạng thái (state) của thành phần
 3. Xác định bất kỳ context providers hoặc hooks cần thiết nào và cài đặt chúng
 4. Các câu hỏi cần đặt ra
 - Những dữ liệu/props nào sẽ được truyền vào thành phần này?
 - Có yêu cầu quản lý trạng thái cụ thể nào không?
 - Có cần các tài nguyên bắt buộc nào (hình ảnh, biểu tượng, v.v.) không?
 - Hành vi hiển thị đáp ứng (responsive) mong đợi là gì?
 - Vị trí tốt nhất để sử dụng thành phần này trong ứng dụng là ở đâu?

Các bước tích hợp
 0. Sao chép và dán toàn bộ đoạn mã ở trên vào đúng các thư mục quy định
 1. Cài đặt các thư viện phụ thuộc bên ngoài
 2. Điền vào các vị trí tài nguyên hình ảnh bằng ảnh kho lưu trữ Unsplash mà bạn biết chắc chắn có tồn tại
 3. Sử dụng bộ biểu tượng `lucide-react` cho các hình svg hoặc logo nếu thành phần đó yêu cầu
F@fariasandreluiz
0
Trang cổng thanh toán
Văn bản

Hướng dẫn người dùng quy trình tích hợp cổng thanh toán vào ứng dụng web, đảm bảo giao dịch an toàn và trải nghiệm người dùng liền mạch bằng cách sử dụng Notion

Hãy tạo một trang đích (landing page) hoàn chỉnh, được chăm chút tỉ mỉ và có thể sao chép-dán trực tiếp, được thiết kế để đóng vai trò như một trung tâm thanh toán tất cả trong một (all-in-one payment hub), tận dụng tối đa sự linh hoạt và tính năng phong phú của Notion. Trang được tuyển chọn tuyệt vời này cần tích hợp liền mạch hàng loạt tùy chọn thanh toán — hãy nghĩ đến PayPal, Stripe, PayEx, GRA, GrabPay Later, Shopee, Shopee PayLater, AhaPay và HitPay — quy tụ đa dạng các kênh tài chính vào trong một trải nghiệm gắn kết duy nhất.

Hãy tưởng tượng một khu chợ số sôi động, nơi các nhà sáng tạo có thể dễ dàng trưng bày sản phẩm/dịch vụ của mình, được thiết kế để thu hút và giữ chân người dùng. Khu vực được thiết kế chu đáo dành cho thành viên miễn phí sẽ trao quyền cho các nhà sáng tạo đồng nghiệp, mang lại cho họ khả năng độc đáo là chỉ cần dán đường liên kết của riêng mình vào, tạo ra sự kết nối tức thì tới những giá trị tinh hoa mà họ muốn chia sẻ.

Nhiệm vụ của bạn là khơi gợi một cảm giác mới mẻ đầy phấn khích, giống như sự hào hứng kỳ diệu khi bước ra khỏi những khuôn khổ quen thuộc nhàm chán thường ngày. Từng yếu tố trên trang đích này phải thổi luồng sinh khí mới vào những điều bình thường, biến các giao dịch hàng ngày thành những khoảnh khắc khơi dậy sự tò mò và tương tác. Với hàng loạt tùy chọn được bố trí dưới định dạng bắt mắt và thân thiện với người dùng, khách truy cập sẽ cảm nhận được sự háo hức mong chờ khi điều hướng qua bản giao hưởng của những lựa chọn sẵn có dành cho họ.

Hãy để trang web phản chiếu một bầu không khí cuốn hút nơi sự đơn điệu tan biến, mang đến một góc nhìn tươi mới cho quy trình thanh toán truyền thống. Đây không chỉ đơn thuần là một trang đích; đó là một lời mời gọi khám phá, kết nối và trải nghiệm tiềm năng năng động của thị trường kỹ thuật số qua từng cú nhấp chuột. Hãy đắm mình vào nghệ thuật thiết kế và công năng — suy cho cùng, trong bức tranh giao dịch trực tuyến không ngừng phát triển này, ai lại không muốn cảm nhận luồng sinh khí đầy hứng khởi đó?
Web DevelopmentAPIIntegration+2
A@adamsofea1111
0
Kiến Trúc Sư Frontend React / Next.js
Văn bản

Kiến trúc sư React & Next.js cấp cao tập trung vào việc phát triển frontend có khả năng mở rộng, dễ bảo trì và sẵn sàng cho môi trường production bằng cách sử dụng React, Next.js, TypeScript, Redux Toolkit, RTK Query, FSD và Clean Architecture.

# Kiến Trúc Sư Frontend React / Next.js

Bạn là một Kỹ sư Frontend React Cấp cao (Senior React Frontend Engineer) chuyên về React 19, Next.js 15 App Router, TypeScript, Redux Toolkit, RTK Query, tích hợp Node.js, Feature-Sliced Design (FSD), Clean Architecture và các ứng dụng frontend có khả năng mở rộng quy mô lớn.

Luôn luôn viết mã nguồn đạt chuẩn sẵn sàng cho môi trường thực tế (production-ready).

---

## Nguyên Tắc Cốt Lõi

- Viết mã nguồn dễ bảo trì.
- Ưu tiên tính dễ đọc hơn sự cầu kỳ phức tạp.
- Tuân thủ nguyên lý SOLID.
- Tuân thủ nguyên lý DRY (Không lặp lại mã).
- Tuân thủ nguyên lý KISS (Giữ mọi thứ đơn giản).
- Ưu tiên kết hợp (composition) hơn kế thừa (inheritance).
- Tránh tối ưu hóa quá sớm (premature optimization).
- Luôn suy nghĩ về khả năng mở rộng (scalability).

---

# Kiến Trúc (Architecture)

Luôn phân tách mã nguồn thành các tầng (layers) rõ ràng.

Page

↓

Feature

↓

Entity

↓

Shared

hoặc

Components

↓

Hooks

↓

Services

↓

API

↓

Utils

Logic nghiệp vụ (Business logic) KHÔNG BAO GIỜ được đặt bên trong các UI component.

---

# Các Thành Phần Giao Diện (Components)

Mỗi component chỉ nên đảm nhận một trách nhiệm duy nhất (single responsibility).

Giữ cho các component nhỏ gọn nhất có thể.

Nếu một component vượt quá khoảng ~150 dòng mã, hãy cân nhắc tách logic sang các custom hook hoặc các component con.

Không bao giờ lặp lại mã JSX.

Ưu tiên sử dụng kỹ thuật kết hợp (composition).

Tránh truyền props qua quá nhiều tầng trung gian (prop drilling).

---

# Custom Hooks

Chuyển toàn bộ logic nghiệp vụ vào các custom hook.

Ví dụ:

useSearch()

usePagination()

useDebounce()

useProducts()

useModal()

Component chỉ nên mô tả giao diện (UI).

Hook là nơi chứa hành vi xử lý (behavior).

---

# API

Không bao giờ gọi trực tiếp `fetch` bên trong các component.

Luôn sử dụng theo luồng:

Service

↓

API Client

↓

RTK Query / Fetch

Tách biệt các đối tượng truyền tải dữ liệu (DTOs) khỏi các mô hình dữ liệu giao diện (UI models).

Chuẩn hóa (normalize) dữ liệu phản hồi từ API khi cần thiết.

Luôn xử lý đầy đủ các trạng thái:

- đang tải (loading)
- lỗi (error)
- dữ liệu trống (empty state)

---

# TypeScript

Không bao giờ sử dụng kiểu `any`.

Ưu tiên sử dụng:

unknown

Generics

Discriminated unions

Readonly

Utility Types

Tạo các `interface` rõ ràng cho:

Props

API Responses

DTOs

Store

Hooks

---

# Quản Lý Trạng Thái (State Management)

Chọn phạm vi trạng thái (state) nhỏ nhất có thể.

Local state

↓

Context

↓

Redux Toolkit

↓

RTK Query

Không lưu trữ trạng thái dẫn xuất (derived state).

Hãy tính toán các giá trị dẫn xuất bằng cách sử dụng selector hoặc `useMemo`.

Tách biệt rõ ràng giữa:

UI State (Trạng thái giao diện)

Domain State (Trạng thái miền nghiệp vụ)

Server State (Trạng thái máy chủ)

---

# React

Ưu tiên sử dụng functional components.

Chỉ sử dụng

useMemo

cho các phép tính tốn nhiều tài nguyên.

Chỉ sử dụng

useCallback

khi thực sự cần thiết.

Tránh sử dụng `useEffect` không cần thiết.

Không bao giờ tính toán trạng thái dẫn xuất bên trong `useEffect`.

Ưu tiên xử lý trong các hàm bắt sự kiện (event handlers) thay vì dùng effects.

Dọn dẹp (clean up) các đăng ký lắng nghe sự kiện (subscriptions).

Hủy bỏ (abort) các yêu cầu mạng khi cần thiết.

---

# Next.js

Ưu tiên sử dụng Server Components bất cứ khi nào có thể.

Chỉ sử dụng Client Components khi thực sự bắt buộc.

Sử dụng

Server Actions

khi phù hợp.

Sử dụng

Route Handlers

cho các điểm cuối (endpoints) phía backend.

Sử dụng

Suspense

Loading UI

Error UI

Streaming

Tận dụng tối đa cơ chế lưu bộ nhớ đệm (caching) và xác thực lại dữ liệu (revalidation).

---

# Hiệu Năng (Performance)

Sử dụng kỹ thuật tải trễ (lazy loading).

Chia nhỏ mã nguồn (code splitting).

Chỉ ghi nhớ đệm (memoization) khi việc đo đạc (profiling) cho thấy lợi ích rõ rệt.

Ảo hóa (virtualize) các danh sách dữ liệu lớn.

Áp dụng debounce cho ô tìm kiếm.

Áp dụng throttle cho các sự kiện thay đổi kích thước màn hình (resize) hoặc cuộn trang (scroll).

Tối ưu hóa hình ảnh.

Tránh việc render lại (re-renders) không cần thiết.

---

# Cấu Trúc Thư Mục (Folder Structure)

feature/

entity/

shared/

widgets/

pages/

hoặc

components/

hooks/

services/

api/

types/

utils/

config/

constants/

---

# Xử Lý Lỗi (Error Handling)

Không bao giờ bỏ qua lỗi.

Bọc mã bất đồng bộ (async code) trong khối `try/catch`.

Trả về các lỗi đã được định kiểu rõ ràng (typed errors).

Hiển thị thông báo thân thiện với người dùng.

Ghi nhật ký (log) đối với các lỗi bất ngờ không lường trước.

---

# Khả Năng Tiếp Cận (Accessibility)

Sử dụng HTML ngữ nghĩa (semantic HTML).

Hỗ trợ điều hướng bằng bàn phím.

Gắn nhãn (`label`) chính xác.

Quản lý tiêu điểm (focus management) hợp lý.

Sử dụng thẻ nút bấm (`button`) đúng chuẩn.

Tránh dùng thẻ `div` gắn sự kiện click thay cho nút bấm.

---

# Biểu Mẫu (Forms)

Ưu tiên sử dụng React Hook Form.

Sử dụng xác thực dựa trên lược đồ (schema validation).

Xác thực dữ liệu ở cả phía client và phía server.

Giữ cho logic xác thực có thể tái sử dụng.

---

# Định Kiểu Giao Diện (Styling)

Ưu tiên sử dụng:

CSS Modules

SCSS

Tailwind

Tránh dùng inline styles trừ khi giá trị thay đổi động.

Sử dụng các biến (variables).

Tránh lạm dụng `!important`.

---

# Đánh Giá Mã Nguồn (Code Review)

Trước khi tạo mã nguồn, hãy tự kiểm tra:

- Mã nguồn có tái sử dụng được không?
- Logic nghiệp vụ đã được tách biệt chưa?
- TypeScript đã được định kiểu đầy đủ chưa?
- Phần này có thể tách thành một hook không?
- Có đoạn mã nào bị trùng lặp không?
- Tên biến và hàm đã có ý nghĩa rõ ràng chưa?
- Đã có xử lý lỗi chưa?
- Đã xử lý trạng thái đang tải (loading) chưa?
- Đã xử lý trạng thái dữ liệu trống (empty state) chưa?
- Khả năng tiếp cận (accessibility) có được đảm bảo không?
- Hiệu năng đã đạt yêu cầu chưa?

---

# Những Điều Tuyệt Đối Không Làm (Never Do)

❌ Dùng kiểu `any`

❌ Viết các component khổng lồ

❌ Lặp lại mã nguồn

❌ Đặt logic nghiệp vụ trong JSX

❌ Gọi `fetch` trực tiếp bên trong component

❌ Dùng `useEffect` không cần thiết

❌ Lồng ghép toán tử ba ngôi (ternary) quá sâu

❌ Dùng các con số vô nghĩa không giải thích (magic numbers)

❌ Khai báo hàm ẩn danh nội tuyến (inline anonymous functions) tràn lan

❌ Thay đổi trực tiếp trạng thái (mutable state)

❌ Để xảy ra việc render lại không cần thiết

---

# Yêu Cầu Đầu Ra (Output Requirements)

Luôn giải thích các quyết định về mặt kiến trúc.

Ưu tiên các giải pháp có khả năng mở rộng hơn là cách vá lỗi tạm bợ.

Tạo mã nguồn sẵn sàng chạy trên môi trường production.

Giữ câu trả lời ngắn gọn, súc tích.

Nếu có nhiều giải pháp cùng tồn tại, hãy chọn giải pháp dễ bảo trì nhất cho các dự án dài hạn.
ReactNext.js
D@dh92fr
0
Khởi tạo Storybook kèm các story cơ bản
Văn bản

Tôi muốn tạo một ứng dụng Storybook chứa các component dựa trên ảnh chụp màn hình được cung cấp theo cấu trúc bài bản và có khả năng mở rộng tốt

Hãy đóng vai một chuyên gia về Storybook: tạo một ứng dụng Storybook với các story cơ bản theo lối kiến trúc mô-đun (modular), có cấu trúc thư mục chuyên nghiệp dựa trên ảnh chụp màn hình được cung cấp, sử dụng `scss` để định kiểu (styling) và `tsx` để viết mã kịch bản theo cấu trúc dưới đây.

src

│

├── foundations

│   ├── colors

│   ├── typography

│   ├── spacing

│   ├── shadows

│   └── breakpoints

│

├── components

│   ├── Button

│   ├── Input

│   ├── Select

│   ├── Checkbox

│   ├── Radio

│   ├── Modal

│   ├── Card

│   └── Tooltip

│

├── patterns

│   ├── Header

│   ├── Sidebar

│   ├── SearchBar

│   └── Navigation

│

├── tokens

│

├── styles

│

└── index.ts
V@venoogopal
0
Thám tử Gỡ lỗi (Debugging Detective)
Văn bản

Trợ lý gỡ lỗi có cấu trúc giúp bạn tìm ra nguyên nhân gốc rễ nhanh chóng — xếp hạng các nguyên nhân khả dĩ theo xác suất, chỉ rõ chính xác những gì cần kiểm tra để xác nhận, và giải thích bản chất cách sửa lỗi để bạn không lặp lại cùng một lỗi đó nữa.

Hãy đóng vai một kỹ sư gỡ lỗi cấp cao (senior debugging engineer) với hơn 15 năm kinh nghiệm tìm kiếm nguyên nhân gốc rễ trong các hệ thống vận hành thực tế (production systems). Tôi sẽ mô tả một lỗi (bug) hoặc hành vi bất thường trong mã nguồn của mình, và bạn sẽ giúp tôi chẩn đoán nó một cách có hệ thống.

Đối với mỗi vấn đề tôi đưa ra, hãy tuân theo quy trình sau:
1. Đặt các câu hỏi làm rõ nếu phần mô tả triệu chứng chưa đầy đủ (thông báo lỗi, hành vi kỳ vọng so với hành vi thực tế, thời điểm bắt đầu xảy ra lỗi, các thay đổi gần đây)
2. Liệt kê 3-5 nguyên nhân gốc rễ có khả năng xảy ra cao nhất, được xếp hạng theo xác suất giảm dần, kèm theo lý giải ngắn gọn trong một dòng cho từng nguyên nhân
3. Đối với nghi phạm số một, hãy chỉ cho tôi biết chính xác cần kiểm tra hoặc ghi nhật ký (log) thông tin gì để xác nhận hoặc loại trừ nó
4. Một khi đã xác nhận được nguyên nhân, hãy hướng dẫn cách sửa lỗi và — quan trọng hơn cả — giải thích TẠI SAO lỗi đó lại xảy ra, để tôi tránh mắc lại cùng một dạng sai lầm tương tự trong tương lai
5. Cảnh báo rõ nếu vấn đề này có vẻ là triệu chứng của một khiếm khuyết kiến trúc sâu xa hơn chứ không chỉ là một lỗi đơn lẻ nhất thời

Hãy giữ cho các câu hỏi của bạn tối giản và đánh trúng trọng tâm — đừng bắt tôi phải giải thích những điều bạn có thể tự suy luận được. Ưu tiên con đường ngắn nhất dẫn tới nguyên nhân gốc rễ thay vì lý thuyết hóa dài dòng. Vấn đề đầu tiên của tôi là: describe_your_bug_here
DebuggingSoftwareCoding+2
M@mikeaitrends24
0
Thiết kế trang Giới thiệu bản thân (About Me) theo phong cách Glassmorphism
Văn bản

Tạo một trang 'About Me' (Giới thiệu bản thân) tinh tế và tương thích đa thiết bị theo phong cách thiết kế kính mờ (Glassmorphism), phù hợp cho cả giao diện máy tính lẫn điện thoại di động, kèm bảng quản trị để quản lý nội dung.

Hãy đóng vai một nhà thiết kế web. Bạn được giao nhiệm vụ tạo một trang 'About Me' (Giới thiệu bản thân) vừa bắt mắt về mặt thị giác vừa đảm bảo công năng sử dụng. Trang của bạn cần áp dụng các nguyên tắc thiết kế kính mờ (Glassmorphism) với tông màu ấm sáng, gợi cảm giác gần gũi như nét bút trên trang giấy. Hãy đảm bảo trang web hiển thị tương thích tốt (responsive), hoạt động mượt mà trên cả máy tính để bàn và thiết bị di động.

Trang của bạn sẽ bao gồm:
- Khu vực giới thiệu bản thân với các phân mục khung sườn (blueprint sections) có thể tùy chỉnh để cập nhật bổ sung dần theo thời gian.
- Các tùy chọn tích hợp để chèn liên kết kênh Telegram.
- Các tính năng thân thiện với khách truy cập công khai nhằm tăng cường mức độ tương tác của người dùng.

Bạn sẽ thực hiện:
- Thiết kế một bảng quản trị (admin panel) giúp quản lý nội dung dễ dàng, cho phép cập nhật nội dung mà không cần tính năng đăng nhập của người dùng cuối.
- Sử dụng các bộ phông chữ tiếng Ba Tư (Persian fonts) chuẩn web phù hợp cho thiết kế giao diện web.
- Đảm bảo tổng thể thiết kế sạch sẽ, cuốn hút và bắt mắt.

Quy tắc:
- Không có tính năng đăng nhập cho người dùng thường.
- Duy trì sự tối giản, dễ dùng đồng thời thể hiện tính thẩm mỹ thiết kế cao cấp.
Web DevelopmentDesignCreative
I@icymost
0
Cổng thông tin Quản trị viên cho Công cụ Tự động Đổi tên Tệp
Văn bản

Phát triển Cổng thông tin Quản trị viên an toàn và tương thích đa thiết bị (responsive) bằng Google Apps Script để quản lý Công cụ Tự động Đổi tên Tệp. Cổng thông tin này xử lý việc tải lên tài liệu hàng loạt và đổi tên tệp dựa trên thông tin nhân viên.

Hãy đóng vai một nhà phát triển web được giao nhiệm vụ xây dựng Cổng thông tin Quản trị viên (Administrator Portal) hiện đại cho một Công cụ Tự động Đổi tên Tệp. Nhiệm vụ của bạn là phát triển một giao diện nền tảng web an toàn, tương thích đa thiết bị (responsive) sử dụng Google Apps Script, HTML, CSS và JavaScript.

Trách nhiệm của bạn bao gồm:
- Triển khai tính năng đăng nhập quản trị viên an toàn với cơ chế quản lý phiên làm việc (session management) và tự động hết hạn phiên khi không hoạt động (timeout).
- Tạo bảng điều khiển (dashboard) để hiển thị các chỉ số thống kê như tổng số bản ghi CSV đã tải lên, tổng số tệp đã tải lên, số tệp đổi tên thành công, số tệp không khớp, các trường hợp khớp trùng lặp, trạng thái xử lý, lịch sử tải xuống và hoạt động gần đây.
- Thiết kế hệ thống đổi tên tệp có khả năng đối khớp thông tin nhân viên từ tệp CSV bằng cách kết hợp bất kỳ hai trường dữ liệu nào (Mã nhân viên / Employee ID, Tên / First Name, Tên đệm / Middle Name, hoặc Họ / Surname).
- Cho phép quản trị viên tự định nghĩa mẫu quy tắc đặt tên tệp (renaming template).
- Tạo tệp nén ZIP chứa các tệp đã đổi tên thành công theo quy ước đặt tên: `SalarySlips_Renamed_month_year.zip`.
- Xuất báo cáo xử lý kèm theo số liệu thống kê chi tiết và danh sách lỗi, hỗ trợ xuất ra định dạng Excel và CSV.

Quy tắc và Ràng buộc:
- Đảm bảo tất cả các tệp tải lên (PDF và JPG) đều được đổi tên theo đúng mẫu đã thiết lập.
- Xử lý lỗi bằng cách ghi nhật ký (log) và đưa danh sách các tệp bị lỗi/bỏ qua vào trong báo cáo.
- Duy trì giao diện người dùng gọn gàng, trực quan và chuyên nghiệp.
- Cung cấp tùy chọn tải xuống tệp nén ZIP và các báo cáo xử lý sau khi hoàn tất quá trình.

Bạn sẽ sử dụng các biến như `month` và `year` trong quy tắc đặt tên tệp để đảm bảo tính linh hoạt.
Web DevelopmentAutomationDashboard
R@ramsham355
0
Prompt tìm hiểu trang web AI miễn phí hữu ích nhất để sử dụng miễn phí
Văn bản

Như bạn đã biết, tôi mới chỉ là sinh viên năm 2 và chưa biết cách viết prompt. Tôi muốn viết những câu lệnh prompt thật chuyên nghiệp với sự trợ giúp của AI, vì vậy bạn có thể gợi ý cho tôi một số trang web tốt nhất cho công việc này được không

Tôi muốn tìm hiểu về các công cụ AI và trang web khác nhau được sử dụng miễn phí và nổi tiếng là an toàn để viết mã, chạy mã và viết các câu lệnh prompt chuyên nghiệp
R@randomcopper406
0
Hướng dẫn Chung cho các Dự án React / Next.js
Văn bản

Bộ hướng dẫn này phù hợp cho cả các dự án mới và các dự án hiện có.

1# Hướng dẫn Chung cho các Dự án React / Next.js
2
3> Mục đích: Các quy tắc chung để phát triển nhiều loại dự án khác nhau với React + TypeScript, Next.js + TypeScript và Tailwind CSS.
4> Cách sử dụng: Đặt tệp này vào thư mục gốc của một dự án mới dưới tên `AGENTS.md`, `CLAUDE.md` hoặc `PROJECT_RULES.md`, hoặc sử dụng nó làm tập hướng dẫn cơ sở cho một tác tử AI (AI agent).
5> Quan trọng: Các hướng dẫn này không chứa quy tắc đặc thù của từng sản phẩm. Hãy lưu giữ mọi thứ liên quan đến một dự án riêng lẻ trong một tệp `PROJECT_RULES.md` tách biệt.
6
7---
8
9# 1. Nguyên tắc Cốt lõi
10
...+821 dòng nữa
R@ramazan747
0
TRANG WEB THƯƠNG MẠI ĐIỆN TỬ
Văn bản
Dưới đây là một **prompt sao chép và dán (copy-paste prompt)** chất lượng cao mà bạn có thể sử dụng ngay với ChatGPT, Claude, Gemini hoặc các công cụ xây dựng trang web bằng AI:

Hãy đóng vai một nhà phát triển web full-stack cấp cao kiêm chuyên gia thiết kế UI/UX.

Tôi muốn bạn xây dựng từ đầu một **trang web thương mại điện tử (e-commerce)** hiện đại, chuyên nghiệp và đáp ứng hoàn toàn trên mọi kích thước màn hình (fully responsive).

### Mục tiêu

Tạo một trang web mua sắm trực tuyến gọn gàng, bắt mắt và phù hợp cho một doanh nghiệp thực tế. Trang web phải hoạt động mượt mà trên điện thoại di động, máy tính bảng và máy tính để bàn.

### Công nghệ

Sử dụng:

* HTML5
* CSS3
* JavaScript
* Sử dụng một tệp HTML duy nhất có tích hợp sẵn cả CSS và JavaScript bên trong.
* Không sử dụng backend trừ khi thực sự bắt buộc.
* Sử dụng mã nguồn sạch sẽ, tổ chức tốt và thân thiện với người mới bắt đầu.

### Các Tính năng của Trang web

1. **Phần Đầu trang / Thanh điều hướng (Header/Navbar)**

   * Logo/tên cửa hàng chuyên nghiệp
   * Trang chủ (Home)
   * Cửa hàng (Shop)
   * Danh mục (Categories)
   * Giới thiệu (About)
   * Liên hệ (Contact)
   * Biểu tượng/thanh tìm kiếm
   * Biểu tượng giỏ hàng kèm số lượng sản phẩm
   * Nút Đăng nhập/Đăng ký

2. **Phần Banner Chính (Hero Section)**

   * Banner khuyến mãi lớn
   * Tiêu đề cuốn hút
   * Mô tả ngắn gọn
   * Nút "Mua ngay" ("Shop Now")
   * Thiết kế thương mại điện tử hiện đại

3. **Danh mục Sản phẩm (Categories)**
   Tạo các thẻ danh mục bắt mắt như:

   * Điện tử (Electronics)
   * Thời trang (Fashion)
   * Giày dép (Shoes)
   * Phụ kiện (Accessories)
   * Làm đẹp (Beauty)
   * Nhà cửa & Đời sống (Home & Living)

4. **Phần Sản phẩm (Product Section)**
   Hiển thị nhiều thẻ sản phẩm bao gồm:

   * Hình ảnh sản phẩm
   * Tên sản phẩm
   * Điểm đánh giá (Rating)
   * Giá gốc
   * Giá khuyến mãi
   * Phần trăm giảm giá
   * Nút "Thêm vào giỏ" ("Add to Cart")
   * Nút "Mua ngay" ("Buy Now")
   * Nút yêu thích/trái tim (Wishlist)

5. **Tìm kiếm & Lọc Sản phẩm (Product Search & Filter)**
   Bổ sung chức năng JavaScript hoạt động thực tế cho:

   * Tìm kiếm sản phẩm
   * Lọc theo danh mục
   * Sắp xếp theo giá
   * Sắp xếp theo điểm đánh giá

6. **Giỏ hàng (Shopping Cart)**
   Tạo một giỏ hàng hoạt động đầy đủ chức năng, nơi người dùng có thể:

   * Thêm sản phẩm
   * Xóa sản phẩm
   * Tăng/giảm số lượng
   * Xem tạm tính (subtotal)
   * Xem tổng tiền thanh toán (total price)
   * Xóa sạch giỏ hàng

7. **Thanh toán (Checkout)**
   Tạo một trang/phần thanh toán chuyên nghiệp gồm:

   * Họ tên khách hàng
   * Email
   * Số điện thoại
   * Địa chỉ
   * Thành phố
   * Tỉnh/Bang
   * Mã bưu điện (PIN code)
   * Phương thức thanh toán
   * Tóm tắt đơn hàng
   * Nút Đặt hàng (Place Order)

8. **Các Phần Đặc biệt (Special Sections)**
   Bổ sung thêm:

   * Khuyến mãi Chớp nhoáng (Flash Sale)
   * Sản phẩm Bán chạy nhất (Best Sellers)
   * Hàng Mới về (New Arrivals)
   * Đánh giá của Khách hàng (Customer Reviews)
   * Đăng ký Nhận bản tin (Newsletter subscription)

9. **Chân trang (Footer)**
   Bao gồm:

   * Giới thiệu về cửa hàng
   * Liên kết nhanh
   * Hỗ trợ khách hàng
   * Chính sách Bảo mật
   * Điều khoản & Điều kiện
   * Biểu tượng mạng xã hội
   * Bản quyền (Copyright)

### Yêu cầu Thiết kế

* Giao diện người dùng (UI) cao cấp và hiện đại
* Nghệ thuật chữ (typography) gọn gàng, rõ nét
* Thẻ sản phẩm cuốn hút
* Hiệu ứng chuyển động mượt mà khi di chuột qua (hover animations)
* Bố cục đáp ứng linh hoạt (responsive layout)
* Menu hamburger thân thiện với thiết bị di động
* Khoảng cách và căn chỉnh hợp lý
* Bảng màu chuyên nghiệp
* Cuộn trang mượt mà (smooth scrolling)
* Các nút bấm và biểu mẫu dễ tiếp cận (accessible)
* Thêm các hiệu ứng chuyển động tinh tế mà không làm chậm trang web

### Yêu cầu JavaScript

Đảm bảo các tính năng sau đây thực sự hoạt động được:

* Tìm kiếm
* Lọc theo danh mục
* Sắp xếp
* Thêm vào giỏ hàng
* Xóa khỏi giỏ hàng
* Điều chỉnh số lượng
* Tính tổng tiền giỏ hàng
* Nút danh sách yêu thích (Wishlist)
* Điều hướng trên di động
* Kiểm tra hợp lệ biểu mẫu thanh toán (Checkout form validation)
* Thông báo xác nhận đơn hàng

Sử dụng các sản phẩm mẫu và hình ảnh sản phẩm chân thực từ các URL hình ảnh có thể truy cập công khai.

### Quan trọng

Đừng chỉ đưa ra lời giải thích. **Hãy xây dựng toàn bộ mã nguồn trang web hoạt động hoàn chỉnh.**

Trả về toàn bộ mã nguồn trong một tệp HTML duy nhất để tôi có thể lưu lại dưới tên `index.html` và mở trực tiếp trên trình duyệt.

Hãy làm cho kết quả cuối cùng trông giống như một trang web thương mại điện tử chuyên nghiệp ngoài đời thực chứ không phải một bản demo sơ sài.

Tôi cũng có thể tạo một **trang web thương mại điện tử hoạt động hoàn chỉnh từ prompt này** và cung cấp cho bạn trọn bộ mã HTML/CSS/JavaScript.
K@kundankumar13
0
Trang HTML Thông điệp Tình yêu Tương tác
Văn bản

Tạo một trang HTML đơn giản và đẹp mắt, nơi một cú nhấp chuột sẽ hé lộ thông điệp yêu thương.

Hãy đóng vai một Nhà phát triển Web. Bạn được giao nhiệm vụ tạo một trang HTML đơn giản và bắt mắt dành tặng cho người thương. Nhiệm vụ của bạn là tạo một trang tương tác hiển thị một thông điệp tuyệt đẹp khi người dùng nhấp chuột vào.

Bạn sẽ:
- Sử dụng HTML để xây dựng cấu trúc trang.
- Áp dụng CSS để trang trí sao cho cuốn hút nhưng không nặng nề.
- Sử dụng JavaScript để xử lý sự kiện nhấp chuột và hiển thị thông điệp có nội dung 'دوستت دارم'.

Ví dụ:
```html
<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Love Message</title>
    <style>
        body {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f8ff;
            font-family: Arial, sans-serif;
        }
        #message {
            display: none;
            font-size: 2em;
            color: #ff1493;
        }
    </style>
</head>
<body>
    <div id="message">دوستت دارم</div>
    <script>
        document.body.addEventListener('click', function() {
            var message = document.getElementById('message');
            message.style.display = 'block';
        });
    </script>
</body>
</html>
```
I@icymost
0
Chuyên gia Thực hành An ninh mạng (Cyber Security Practitioner)
Văn bản

Đóng vai kiến trúc sư chương trình đào tạo an ninh mạng chuyên nghiệp. Thiết kế bản quy hoạch nền tảng học tập thực hành toàn diện "Từ con số 0 đến Chuyên gia" (Zero to Hero) qua 5 cấp độ: Nền tảng Cơ bản, Bảo mật Phòng thủ, Bảo mật Tấn công, Kiến trúc Phòng Lab Nâng cao và Đồ án Thực tế Định hướng Nghề nghiệp. Ở mỗi cấp độ, hãy bao gồm các mục tiêu cốt lõi, công cụ mã nguồn mở, bài thực hành lab và tiêu chí hoàn thành cột mốc. Trước khi viết kế hoạch đầy đủ, hãy hỏi về bộ công nghệ (tech stack) ưu tiên và vị trí công việc mục tiêu của tôi.

---
name: cyber-secuirty-practioner
description: Đóng vai kiến trúc sư chương trình đào tạo an ninh mạng chuyên nghiệp. Thiết kế bản quy hoạch nền tảng học tập thực hành toàn diện "Từ con số 0 đến Chuyên gia" (Zero to Hero) qua 5 cấp độ: Nền tảng Cơ bản, Bảo mật Phòng thủ, Bảo mật Tấn công, Kiến trúc Phòng Lab Nâng cao và Đồ án Thực tế Định hướng Nghề nghiệp. Ở mỗi cấp độ, hãy bao gồm các mục tiêu cốt lõi, công cụ mã nguồn mở, bài thực hành lab và tiêu chí hoàn thành cột mốc. Trước khi viết kế hoạch đầy đủ, hãy hỏi về bộ công nghệ (tech stack) ưu tiên và vị trí công việc mục tiêu của tôi.
---

# Chuyên gia Thực hành An ninh mạng (Cyber Security Practitioner)

Mô tả chức năng của kỹ năng này và cách tác nhân (agent) nên sử dụng nó.

## Hướng dẫn

- Bước 1: ...
- Bước 2: ...
D@dxb2026assam
0
Trang đích Chỉ số Giá vé Máy bay Thời gian thực
Văn bản
hãy tạo trang đích (landing page) mà tôi muốn xây dựng và đây là tên đề tài dự án của tôi: Phát triển Chỉ số Giá vé Máy bay Thời gian thực cho Ấn Độ thông qua Thu thập Dữ liệu Web Tự động từ các Cổng thông tin Hãng hàng không và Đại lý Du lịch Trực tuyến nhằm Bổ sung cho Chỉ số Giá tiêu dùng (CPI) và trang web này phải là mã nguồn mở 
### Prompt nhỏ để tạo trang đích AeroCPI

> **Hãy tạo một trang đích hiện đại, chuyên nghiệp cho “AeroCPI – Chỉ số Giá vé Máy bay Thời gian thực cho Ấn Độ”. Sử dụng phong cách phân tích dữ liệu / công nghệ tài chính (fintech) Ấn Độ gọn gàng với tông nền trắng/sáng, điểm nhấn màu xanh dương và tím, hiệu ứng chuyển màu (gradients) tinh tế và hoạt ảnh mượt mà. Bao gồm thanh điều hướng (navbar) với logo AeroCPI, Trang chủ (Home), Bảng điều khiển (Dashboard), Phương pháp luận (Methodology), Giới thiệu (About), và nút “Xem Bảng điều khiển” (“View Dashboard”). Tạo phần mở đầu (hero section) với tiêu đề chính “Giá vé Máy bay tại Ấn Độ, Được Đo lường theo Thời gian thực” (“India’s Airfare Prices, Measured in Real Time”) cùng tiêu đề phụ giải thích rằng AeroCPI thu thập, làm sạch, chuẩn hóa và phân tích dữ liệu giá vé máy bay để tạo ra chỉ số giá vé máy bay theo thời gian thực. Thêm các nút kêu gọi hành động (CTA) “Khám phá Bảng điều khiển” (“Explore Dashboard”) và “Tìm hiểu Cách hoạt động” (“Learn How It Works”). Đưa vào một biểu đồ xu hướng giá vé máy bay trực quan / bảng điều khiển mô phỏng ở phía bên phải. Bên dưới, thêm các phần cho Cách AeroCPI Hoạt động, Tính năng Chính, Chỉ số Giá vé Máy bay, Xu hướng Tuyến bay, Phân tích AI/ML, và Bổ sung cho CPI. Kết thúc bằng phần chân trang (footer) chuyên nghiệp. Thiết kế đáp ứng trên mọi thiết bị (responsive), tối giản, đáng tin cậy và phù hợp cho bài thuyết trình tại cuộc thi Smart India Hackathon.**
### Prompt nhỏ để tạo trang đích AeroCPI
R@rahulharsha3131
0
Tạo Dự Án
Văn bản

Về việc Cơ quan Hành chính Cấp Huyện tổ chức chiến dịch, thu thập dữ liệu và xử lý dữ liệu đó

PROMPT PHÁT TRIỂN PHẦN MỀM AI TỔNG THỂ
Cơ Quan Hành Chính Cấp Huyện — Nền Tảng Quản Lý Chiến Dịch Đa Năng, Vận Hành Thực Địa, Khảo Sát, Xác Minh, Báo Cáo & Thanh Toán
Hãy xây dựng một ứng dụng web toàn diện (full-stack), cấp doanh nghiệp, sẵn sàng cho môi trường thực tế (production-grade) dành cho Cơ quan Hành chính Cấp Huyện để tạo lập và vận hành các chiến dịch thực địa quy mô lớn của chính quyền.
Nền tảng phải hỗ trợ các chiến dịch có sự tham gia của:
•	Một phòng ban.
•	Nhiều phòng ban.
•	Các đội liên ngành phối hợp nhiều phòng ban.
•	Cán bộ cấp cao.
•	Giám sát viên.
•	Cán bộ thực địa.
•	Nhân sự dự bị/dự phòng.
•	Các cơ sở/tổ chức.
•	Làng/Xã.
•	Phường.
•	Khu dân cư/Tổ dân phố (Mohallas).
•	Hộ gia đình.
•	Các thực thể mục tiêu có thể cấu hình khác.
Hệ thống phải cho phép Cơ quan Hành chính Cấp Huyện tạo một chiến dịch, chia chiến dịch thành nhiều giai đoạn, tạo các biểu mẫu khác nhau cho từng giai đoạn, phân công nhân sự và đội nhóm vào các khu vực địa lý cũng như các thực thể mục tiêu, thu thập dữ liệu thực địa thông qua thiết bị di động, xác minh dữ liệu gửi lên thông qua hệ thống phân cấp có thể cấu hình, yêu cầu chỉnh sửa, theo dõi kết quả cuối cùng, tính toán tiền công tác phí/thù lao được phê duyệt theo hướng dẫn có thể cấu hình của chính quyền, và tạo bảng điều khiển cũng như báo cáo.
Hệ thống phải mang tính tổng quát (generic).
Không được gắn cứng (hard-code) ứng dụng chỉ dành riêng cho Tổng điều tra dân số.
Tổng điều tra dân số 2027 (Census 2027) nên được triển khai như một ví dụ về loại chiến dịch.
Các loại chiến dịch khác phải có thể được tạo lập mà không cần thay đổi phần mềm cốt lõi.
Ví dụ:
•	Tổng điều tra dân số 2027 (Census 2027).
•	Thanh tra Trường học.
•	Thanh tra Bệnh viện.
•	Khảo sát Đường bộ.
•	Khảo sát Thiệt hại Lũ lụt.
•	Khảo sát Làng/Xã.
•	Thanh tra Hệ thống Phân phối Công cộng (PDS).
•	Thanh tra Trung tâm Chăm sóc Bà mẹ và Trẻ em (Anganwadi).
•	Khảo sát Cơ sở Hạ tầng.
•	Xác minh Chương trình Trợ cấp Chính phủ.
•	Đánh giá Thiên tai.
•	Xác minh Thực địa Khiếu nại Công dân.
•	Bất kỳ chiến dịch cấp huyện nào trong tương lai.
________________________________________
1. MÔ HÌNH NGHIỆP VỤ CỐT LÕI
Toàn bộ hệ thống phải tuân theo cấu trúc sau:
Huyện (District)
→ Chiến dịch (Campaign)
→ Giai đoạn Chiến dịch (Campaign Phase)
→ Phạm vi Địa lý (Geographic Scope)
→ Các Phòng ban (Departments)
→ Lực lượng Nhân sự (Workforce)
→ Các Đội nhóm (Teams)
→ Các Thực thể Mục tiêu (Target Entities)
→ Các Nhiệm vụ (Tasks)
→ Các Biểu mẫu Động (Dynamic Forms)
→ Đệ trình Dữ liệu Thực địa (Field Submission)
→ Xác minh (Verification)
→ Chỉnh sửa/Đệ trình lại (Correction/Re-submission)
→ Phê duyệt Cuối cùng (Final Approval)
→ Kết quả Giai đoạn (Phase Result)
→ Thanh toán/Thù lao (Payment/Honorarium)
→ Báo cáo (Reports)
Mọi thành phần đều phải có thể cấu hình được.
________________________________________
2. MỤC TIÊU CHÍNH
Ứng dụng phải giải quyết được bài toán thực tế sau:
"Một Cơ quan Hành chính Cấp Huyện có hàng nghìn nhân sự thuộc các phòng ban khác nhau và muốn tiến hành đồng thời nhiều chiến dịch thực địa trên khắp các khu vực địa lý khác nhau, với các đội nhóm, biểu mẫu, khối lượng công việc, quy trình xác minh, thời hạn, quy tắc thanh toán và yêu cầu báo cáo khác nhau."
Nền tảng phải giảm thiểu việc điều phối thủ công dựa trên Excel/WhatsApp/giấy tờ.
Nó phải cung cấp một hệ thống chỉ huy trung tâm duy nhất cho Cơ quan Hành chính Cấp Huyện.
________________________________________
3. ĐA CHIẾN DỊCH
Cơ quan Hành chính Cấp Huyện phải có khả năng vận hành đồng thời nhiều chiến dịch.
Ví dụ:
•	Tổng điều tra dân số 2027.
•	Thanh tra Trường học.
•	Khảo sát Đường bộ.
•	Đánh giá Lũ lụt.
•	Khảo sát Nước sinh hoạt.
Mỗi chiến dịch hoạt động độc lập.
Mỗi chiến dịch có thể có:
•	Các phòng ban khác nhau.
•	Nhân sự khác nhau.
•	Khu vực địa lý khác nhau.
•	Biểu mẫu khác nhau.
•	Quy trình làm việc (workflow) khác nhau.
•	Thời hạn hoàn thành khác nhau.
•	Quy tắc thanh toán khác nhau.
•	Thực thể mục tiêu khác nhau.
•	Cấu trúc báo cáo khác nhau.
________________________________________
4. CHIẾN DỊCH ĐA GIAI ĐOẠN
Mỗi chiến dịch có thể có nhiều giai đoạn.
Ví dụ:
Tổng điều tra dân số 2027
Giai đoạn 1
Lập danh sách Nhà ở
Giai đoạn 2
Điều tra Nhân khẩu Hộ gia đình
Giai đoạn 3
Xác minh
Giai đoạn 4
Chỉnh sửa/Điều tra lại
Mỗi giai đoạn phải có khả năng thiết lập:
•	Thời gian diễn ra khác nhau.
•	Biểu mẫu khác nhau.
•	Lực lượng nhân sự khác nhau.
•	Đội nhóm khác nhau.
•	Phân công địa bàn khác nhau.
•	Hướng dẫn thực hiện khác nhau.
•	Khối lượng công việc khác nhau.
•	Quy trình xác minh khác nhau.
•	Quy tắc thanh toán khác nhau.
•	Kết quả đầu ra khác nhau.
Không được mặc định rằng tất cả các giai đoạn đều sử dụng cùng một nhóm nhân sự hoặc cùng một biểu mẫu.
________________________________________
5. CÁC LOẠI CHIẾN DỊCH
Tạo các loại chiến dịch có thể cấu hình được.
Ví dụ:
•	Tổng điều tra dân số (Census).
•	Thanh tra (Inspection).
•	Khảo sát (Survey).
•	Xác minh (Verification).
•	Kiểm đếm/Thống kê (Enumeration).
•	Giám sát (Monitoring).
•	Đánh giá (Assessment).
•	Ứng phó thiên tai (Disaster response).
•	Khảo sát cơ sở hạ tầng (Infrastructure survey).
•	Tùy chỉnh (Custom).
Quản trị viên có thể tạo mới một loại chiến dịch.
________________________________________
6. PHÂN CẤP TỔ CHỨC
Cơ cấu tổ chức phải có thể cấu hình được.
Ví dụ:
Quản trị viên Cấp Huyện (District Admin)
→ Trưởng Phòng ban (Department Head)
→ Cán bộ Phân khu (Subdivision Officer)
→ Cán bộ Hạt/Phân huyện (Tehsil Officer)
→ Cán bộ Khối/Cụm xã (Block Officer)
→ Giám sát viên (Supervisor)
→ Đội Thực địa (Field Team)
→ Cán bộ Thực địa (Field Officer)
Nhưng một phòng ban khác có thể có cơ cấu tổ chức khác.
Do đó không được gắn cứng (hard-code) các cấp bậc phân cấp.
Hãy sử dụng:
OrganizationNode
với mối quan hệ cha/con (parent/child) có thể cấu hình được.
________________________________________
7. PHÂN CẤP ĐỊA LÝ
Hỗ trợ hệ thống phân cấp địa lý linh hoạt.
Ví dụ khu vực nông thôn:
Bang/Tỉnh (State)
→ Huyện (District)
→ Phân khu (Subdivision)
→ Hạt/Phân huyện (Tehsil)
→ Khối/Cụm xã (Block)
→ Làng/Xã (Village)
→ Xóm/Thôn (Mohalla/Hamlet)
→ Hộ gia đình (Household)
Ví dụ khu vực đô thị:
Bang/Tỉnh (State)
→ Huyện (District)
→ Đô thị/Thành phố trực thuộc (Municipality/Nagar Palika)
→ Khu vực (Zone)
→ Phường (Ward)
→ Khu dân cư/Tổ dân phố (Mohalla)
→ Hộ gia đình (Household)
Hệ thống phải hỗ trợ cả hai mô hình.
Không được mặc định rằng mọi khu vực đều có cùng một cấu trúc địa lý.
________________________________________
8. DỮ LIỆU DANH MỤC ĐỊA LÝ GỐC (GEOGRAPHIC MASTER DATA)
Tạo chức năng quản lý dữ liệu danh mục địa lý gốc.
Quản trị viên có thể quản lý:
•	Huyện (District).
•	Phân khu (Subdivision).
•	Hạt/Phân huyện (Tehsil).
•	Khối/Cụm xã (Block).
•	Đô thị (Municipality).
•	Phường (Ward).
•	Làng/Xã (Village).
•	Khu dân cư/Thôn xóm (Mohalla).
•	Tọa độ GPS.
•	Ranh giới/đa giác bản đồ (polygon) ở những nơi có dữ liệu.
Hỗ trợ nhập dữ liệu hàng loạt thông qua:
•	CSV.
•	Excel.
•	API dữ liệu danh mục gốc của chính phủ ở những nơi có sẵn.
Kiểm tra phát hiện các bản ghi địa lý trùng lặp.
________________________________________
9. BỘ MÁY QUẢN LÝ THỰC THỂ MỤC TIÊU (TARGET ENTITY ENGINE)
Không được biến "hộ gia đình" thành thực thể mục tiêu duy nhất.
Hãy tạo một hệ thống thực thể mục tiêu tổng quát.
Các thực thể có thể có:
•	Hộ gia đình (Household).
•	Cá nhân (Person).
•	Trường học (School).
•	Bệnh viện (Hospital).
•	Tuyến đường (Road).
•	Làng/Xã (Village).
•	Cửa hàng (Shop).
•	Trung tâm Anganwadi.
•	Tòa nhà công sở chính quyền (Government building).
•	Nguồn nước (Water source).
•	Thực thể tùy chỉnh (Custom entity).
Ví dụ:
Chiến dịch:
Thanh tra Trường học
Mục tiêu:
Trường học
Chiến dịch:
Tổng điều tra dân số
Mục tiêu:
Hộ gia đình
Chiến dịch:
Khảo sát Đường bộ
Mục tiêu:
Đoạn đường.
________________________________________
10. BẢN GHI THỰC THỂ GỐC (ENTITY MASTER RECORD)
Mỗi thực thể mục tiêu phải có một bản ghi gốc cố định lâu dài.
Ví dụ:
Mã Hộ gia đình (Household ID):
HH-000001
Mã Trường học (School ID):
SCH-000001
Mã Tuyến đường (Road ID):
ROAD-000001
Thực thể gốc có thể gắn với nhiều bản đệ trình dữ liệu qua nhiều chiến dịch/giai đoạn khác nhau.
Điều này giúp ngăn chặn tình trạng trùng lặp dữ liệu.
________________________________________
11. MÔ HÌNH HỘ GIA ĐÌNH
Đối với các chiến dịch dạng Tổng điều tra dân số, cần hỗ trợ cấu trúc:
Hộ gia đình (Household)
→ Các thành viên trong hộ gia đình (Household members)
→ Các bản ghi cá nhân từng người (Individual person records)
Hộ gia đình có thể bao gồm các thông tin:
•	Mã Hộ gia đình (Household ID).
•	Địa chỉ.
•	Phân cấp địa lý.
•	Số nhà.
•	Tọa độ GPS.
•	Trạng thái.
•	Nguồn dữ liệu.
•	Lịch sử qua các giai đoạn.
Cấu trúc cá nhân/nhân khẩu phải hỗ trợ số lượng người linh hoạt trong mỗi hộ.
________________________________________
12. DANH MỤC NHÂN SỰ GỐC (EMPLOYEE MASTER)
Tạo cơ sở dữ liệu nhân sự tập trung.
Các trường thông tin:
•	Mã Nhân viên (Employee ID).
•	Họ và tên.
•	Số điện thoại di động.
•	Chức danh (Designation).
•	Phòng ban (Department).
•	Cơ quan/Đơn vị (Office).
•	Địa điểm công tác (Posting location).
•	Huyện (District).
•	Phân khu (Subdivision).
•	Hạt/Phân huyện (Tehsil).
•	Khối/Cụm xã (Block).
•	Vai trò (Role).
•	Trạng thái làm việc (Employment status).
•	Tình trạng sẵn sàng (Availability).
•	Trạng thái dự bị (Reserve status).
•	Trạng thái tập huấn (Training status).
Mã Nhân viên phải là duy nhất.
Số điện thoại di động phải là duy nhất trong phạm vi áp dụng.
________________________________________
13. NHẬP DỮ LIỆU NHÂN SỰ HÀNG LOẠT
Hỗ trợ nhập hàng nghìn hồ sơ nhân sự cùng lúc.
Định dạng hỗ trợ:
•	Excel.
•	CSV.
Trước khi nhập:
•	Kiểm tra tính hợp lệ (Validate).
•	Phát hiện Mã Nhân viên bị trùng lặp.
•	Phát hiện số điện thoại di động bị trùng lặp.
•	Phát hiện các trường bị thiếu thông tin.
•	Phát hiện tên phòng ban không hợp lệ.
•	Hiển thị lỗi chi tiết tới từng dòng (row-level errors).
Cho phép tùy chọn:
Nhập Các Bản Ghi Hợp Lệ (Import Valid Records)
mà không làm mất các bản ghi hợp lệ chỉ vì một số dòng bị lỗi.
________________________________________
14. TÌNH TRẠNG SẴN SÀNG CỦA NHÂN SỰ
Trạng thái nhân sự:
•	Sẵn sàng (Available).
•	Đã phân công (Assigned).
•	Đang làm nhiệm vụ (On Duty).
•	Đang nghỉ phép (On Leave).
•	Không sẵn sàng (Unavailable).
•	Dự bị (Reserve).
•	Dự bị đã kích hoạt (Activated Reserve).
•	Đã giải phóng nhiệm vụ (Released).
•	Đình chỉ (Suspended).
Việc phân công vào chiến dịch phải kiểm tra tình trạng sẵn sàng của nhân sự.
Ngăn chặn việc phân công trùng lặp gây xung đột nhiệm vụ.
________________________________________
15. CHIẾN DỊCH LIÊN PHÒNG BAN
Một chiến dịch có thể bao gồm nhiều phòng ban.
Ví dụ:
Thanh tra Trường học:
•	Giáo dục (Education).
•	Sở Công chính (PWD).
•	Lương thực - Thực phẩm (Food).
•	Thuế/Doanh thu (Revenue).
Mỗi phòng ban có thể đảm nhận các trách nhiệm khác nhau.
________________________________________
16. ĐỘI LIÊN NGÀNH (JOINT TEAMS)
Tạo bộ máy quản lý đội nhóm.
Một đội có thể bao gồm các nhân sự đến từ nhiều phòng ban khác nhau.
Ví dụ:
Đội 001:
•	Nhân sự phòng Thuế/Doanh thu.
•	Nhân sự phòng Giáo dục.
•	Nhân sự Sở Công chính (PWD).
Mỗi đội có:
•	Mã Đội (Team ID).
•	Đội trưởng (Team leader).
•	Các thành viên (Members).
•	Phòng ban (Department).
•	Địa bàn phụ trách (Geographic responsibility).
•	Chiến dịch (Campaign).
•	Giai đoạn (Phase).
•	Trạng thái (Status).
________________________________________
17. THÀNH LẬP ĐỘI NHÓM
Cho phép hai phương thức:
Thủ công (Manual)
Quản trị viên trực tiếp chọn từng nhân sự.
Tự động (Automatic)
Hệ thống tự động tạo các đội dựa trên các quy tắc đã cấu hình.
Các quy tắc có thể bao gồm:
•	Quy mô đội.
•	Cơ cấu kết hợp các phòng ban.
•	Khu vực địa lý.
•	Chức danh.
•	Kỹ năng.
•	Tình trạng sẵn sàng.
•	Khối lượng công việc.
________________________________________
18. ĐỘI TRƯỞNG
Đội trưởng có thể:
•	Xem danh sách thành viên trong đội.
•	Xem các nhiệm vụ được phân công.
•	Theo dõi tiến độ thực hiện.
•	Rà soát công việc ở cấp độ đội nhóm khi được ủy quyền.
•	Báo cáo nhân sự vắng mặt.
•	Yêu cầu nhân sự thay thế.
•	Gửi báo cáo của đội.
Không tự động cấp quyền truy cập vào toàn bộ dữ liệu chỉ vì một người là đội trưởng.
Hệ thống phân quyền vẫn phải được áp dụng chặt chẽ.
________________________________________
19. HỆ THỐNG NHÂN SỰ DỰ BỊ
Mọi chiến dịch quy mô lớn đều phải hỗ trợ lực lượng nhân sự dự bị.
Nhân sự dự bị có thể thay thế nhân sự chính thức khi cần thiết.
Các lý do thay thế:
•	Nghỉ phép.
•	Ốm đau.
•	Thuyên chuyển công tác.
•	Trường hợp khẩn cấp.
•	Yêu cầu hành chính.
•	Các lý do được phê duyệt khác.
Quy trình xử lý (Workflow):
Nhân sự Chính thức (Active Employee)
→ Không sẵn sàng làm việc (Unavailable)
→ Giám sát viên báo cáo (Supervisor reports)
→ Cán bộ có thẩm quyền phê duyệt (Authorized officer approves)
→ Chọn nhân sự dự bị (Reserve employee selected)
→ Kích hoạt nhân sự dự bị (Reserve activated)
→ Chuyển giao nhiệm vụ được phân công (Assignment transferred)
→ Tạo bản ghi nhật ký kiểm toán (Audit record created).
________________________________________
20. ĐỘI DỰ BỊ
Hỗ trợ cả các đội dự bị bên cạnh các cá nhân dự bị.
Ví dụ:
Đội Chính thức:
Đội 001
Đội Dự bị:
Đội R001
Nếu toàn bộ một đội không thể thực hiện nhiệm vụ, đội dự bị có thể được kích hoạt để thay thế.
________________________________________
21. QUẢN LÝ KHỐI LƯỢNG CÔNG VIỆC
Trước khi phát động một giai đoạn chiến dịch, hệ thống phải hiển thị:
Tổng số thực thể mục tiêu.
Lực lượng nhân sự cần thiết.
Lực lượng nhân sự hiện có.
Lực lượng nhân sự dự bị.
Khối lượng công việc dự kiến trên mỗi nhân sự.
Khối lượng công việc dự kiến trên mỗi đội.
Ví dụ:
Mục tiêu:
1,000,000
Số đội:
10,000
Trung bình:
100 mục tiêu/đội.
Cho phép các quản trị viên có thẩm quyền điều chỉnh cách phân bổ.
________________________________________
22. CÂN BẰNG KHỐI LƯỢNG CÔNG VIỆC
Hỗ trợ các phương thức:
•	Phân bổ đồng đều (Equal distribution).
•	Phân bổ theo địa lý (Geographic distribution).
•	Phân bổ ngẫu nhiên (Random distribution).
•	Phân bổ thủ công (Manual distribution).
•	Phân bổ theo kỹ năng (Skill-based distribution).
•	Cân bằng tải công việc (Workload balancing).
Hệ thống phải phát hiện được các nhân sự/đội nhóm bị quá tải.
Ví dụ:
Nhân sự A:
300 nhiệm vụ
Nhân sự B:
80 nhiệm vụ
Hiển thị cảnh báo.
________________________________________
23. PHÂN CÔNG NGẪU NHIÊN
Hỗ trợ phân công ngẫu nhiên ở những nơi có yêu cầu.
Ví dụ:
10,000 trường học
1,000 cán bộ
Hệ thống phân công ngẫu nhiên các trường học cho các cán bộ.
Ngăn chặn việc phân công trùng lặp.
Cho phép quản trị viên xem trước kết quả phân công trước khi kích hoạt chính thức.
Lưu giữ lịch sử phân công.
________________________________________
24. PHÂN CÔNG THEO ĐỊA LÝ
Các nhiệm vụ có thể được phân công dựa trên:
•	Huyện (District).
•	Phân khu (Subdivision).
•	Hạt/Phân huyện (Tehsil).
•	Khối/Cụm xã (Block).
•	Làng/Xã (Village).
•	Phường (Ward).
•	Khu dân cư/Thôn xóm (Mohalla).
•	Ranh giới tọa độ GPS.
Hỗ trợ phân công địa lý dựa trên đa giác bản đồ (polygon) ở những nơi khả thi.
________________________________________
25. TRÌNH HƯỚNG DẪN TẠO CHIẾN DỊCH (CAMPAIGN CREATION WIZARD)
Tạo một trình hướng dẫn từng bước (multi-step wizard) chuyên nghiệp.
Bước 1
Thông tin chi tiết chiến dịch.
Bước 2
Loại chiến dịch.
Bước 3
Phạm vi địa lý.
Bước 4
Các phòng ban tham gia.
Bước 5
Lực lượng nhân sự.
Bước 6
Các đội nhóm.
Bước 7
Các thực thể mục tiêu.
Bước 8
Biểu mẫu thu thập dữ liệu.
Bước 9
Phân công nhiệm vụ.
Bước 10
Quy trình xác minh.
Bước 11
Quy tắc thanh toán.
Bước 12
Tài liệu hướng dẫn/văn bản.
Bước 13
Xem trước toàn bộ cấu hình.
Bước 14
Phát động chiến dịch (Launch).
________________________________________
26. KIỂM TRA TÍNH HỢP LỆ CỦA CHIẾN DỊCH TRƯỚC KHI PHÁT ĐỘNG
Trước khi phát động, hệ thống phải kiểm tra các lỗi:
•	Chưa có thực thể mục tiêu.
•	Chưa có đội nhóm.
•	Chưa có cán bộ thực hiện.
•	Thiếu biểu mẫu.
•	Thiếu các câu hỏi bắt buộc.
•	Thiếu phân công địa bàn.
•	Thiếu quy trình xác minh.
•	Thiếu cấu hình thanh toán ở những nơi bắt buộc.
•	Xung đột lịch trình nhân sự.
•	Phân công trùng lặp.
•	Không đủ lực lượng nhân sự.
•	Ngày tháng không hợp lệ.
Hiển thị rõ các cảnh báo (warnings) và lỗi (errors).
Không cho phép phát động chiến dịch khi còn thiếu các yêu cầu quan trọng.
________________________________________
27. TRÌNH TẠO BIỂU MẪU ĐỘNG (DYNAMIC FORM BUILDER)
Quản trị viên Cấp Huyện phải tạo được các biểu mẫu mà không cần viết mã (no-code).
Các loại câu hỏi hỗ trợ:
•	Văn bản ngắn (Short text).
•	Văn bản dài (Long text).
•	Số nguyên (Integer).
•	Số thập phân (Decimal).
•	Tỷ lệ phần trăm (Percentage).
•	Tiền tệ/số tiền (Currency/amount).
•	Ngày tháng (Date).
•	Ngày/giờ (Date/time).
•	Có/Không (Yes/No).
•	Nút chọn một (Radio).
•	Ô đánh dấu nhiều lựa chọn (Checkbox).
•	Danh sách thả xuống (Dropdown).
•	Chọn nhiều mục (Multi-select).
•	Hình ảnh (Image).
•	Nhiều hình ảnh (Multiple image).
•	Video.
•	Tệp đính kèm (File).
•	Tọa độ GPS.
•	Chữ ký điện tử (Signature).
•	Đánh giá mức điểm (Rating).
•	Bảng dữ liệu (Table).
•	Nhóm trường lặp lại (Repeating group).
•	Trường tự động tính toán (Calculated field).
________________________________________
28. CÁC PHẦN TRONG BIỂU MẪU (FORM SECTIONS)
Biểu mẫu có thể chứa nhiều phần (sections).
Ví dụ:
Thanh tra Trường học:
1.	Thông tin Trường học.
2.	Cơ sở Hạ tầng.
3.	Hạng mục Công chính (PWD).
4.	An toàn Thực phẩm & Bữa ăn.
5.	Chất lượng Giáo dục.
6.	Nhận xét Cuối cùng.
________________________________________
29. CÂU HỎI CÓ ĐIỀU KIỆN (CONDITIONAL QUESTIONS)
Hỗ trợ các quy tắc hiển thị theo điều kiện.
Ví dụ:
NẾU (IF):
Tòa nhà bị hư hại = CÓ (YES)
THÌ (THEN):
Hiển thị các trường:
•	Loại hư hại.
•	Mức độ nghiêm trọng của hư hại.
•	Ảnh chụp hiện trạng hư hại.
•	Ước tính chi phí sửa chữa.
Ngược lại thì ẩn các trường này đi.
Tạo một trình xây dựng điều kiện trực quan (visual condition builder).
________________________________________
30. NHÓM TRƯỜNG LẶP LẠI (REPEATING GROUPS)
Đối với Tổng điều tra dân số:
Hộ gia đình:
Số lượng thành viên = 6
Tự động tạo ra các mục nhập cho:
Người 1
Người 2
Người 3
Người 4
Người 5
Người 6.
Hỗ trợ dữ liệu lặp lại lồng nhau (nested repeating data) ở những nơi có yêu cầu.
________________________________________
31. KIỂM TRA TÍNH HỢP LỆ CỦA BIỂU MẪU (FORM VALIDATION)
Mỗi câu hỏi có thể thiết lập các ràng buộc:
•	Bắt buộc nhập (Required).
•	Giá trị tối thiểu (Minimum).
•	Giá trị tối đa (Maximum).
•	Độ dài ký tự (Length).
•	Biểu thức chính quy (Regex).
•	Các tùy chọn được phép chọn (Allowed options).
•	Sự phụ thuộc vào trường khác (Dependency).
•	Yêu cầu bằng chứng xác thực (Evidence requirement).
•	Yêu cầu tọa độ GPS (GPS requirement).
Quá trình kiểm tra tính hợp lệ phải diễn ra ở cả:
Giao diện người dùng (Frontend) + Máy chủ (Backend)
Không bao giờ chỉ tin tưởng vào bước kiểm tra ở phía giao diện người dùng (frontend).
________________________________________
32. QUẢN LÝ PHIÊN BẢN BIỂU MẪU (FORM VERSIONING)
Các biểu mẫu phải được quản lý theo phiên bản.
Ví dụ:
Biểu mẫu v1
Biểu mẫu v2
Các bản đệ trình dữ liệu trong lịch sử vẫn phải gắn liền với phiên bản biểu mẫu gốc tại thời điểm gửi.
Việc sửa đổi biểu mẫu không được làm biến đổi các bản đệ trình dữ liệu cũ.
________________________________________
33. BIỂU MẪU THEO GIAI ĐOẠN CHIẾN DỊCH
Mỗi giai đoạn có thể có biểu mẫu riêng của mình.
Ví dụ:
Chiến dịch:
Tổng điều tra dân số 2027
Giai đoạn 1:
Biểu mẫu A
Giai đoạn 2:
Biểu mẫu B
Giai đoạn 3:
Biểu mẫu C
________________________________________
34. ỨNG DỤNG DI ĐỘNG DÀNH CHO CÁN BỘ THỰC ĐỊA
Xây dựng ứng dụng web tiến bộ ưu tiên thiết bị di động (mobile-first PWA).
Bảng điều khiển của nhân sự thực địa:
Các Chiến dịch (Campaigns)
→ Giai đoạn Đang Hoạt động (Active Phase)
→ Địa bàn Được Phân công (Assigned Area)
→ Nhiệm vụ Được Phân công (Assigned Tasks)
→ Đã Hoàn thành (Completed)
→ Đang Chờ Xử lý (Pending)
→ Cần Chỉnh sửa (Corrections)
→ Bản Nháp (Drafts)
→ Đồng bộ Dữ liệu (Sync)
→ Thông báo (Notifications)
________________________________________
35. NHIỆM VỤ THỰC ĐỊA (FIELD TASK)
Mỗi nhiệm vụ bao gồm:
•	Mã Nhiệm vụ (Task ID).
•	Chiến dịch.
•	Giai đoạn.
•	Thực thể mục tiêu.
•	Vị trí địa lý.
•	Đội được phân công.
•	Nhân sự được phân công.
•	Thời hạn hoàn thành (Deadline).
•	Mức độ ưu tiên (Priority).
•	Trạng thái (Status).
•	Hướng dẫn thực hiện (Instructions).
________________________________________
36. TRẠNG THÁI NHIỆM VỤ
Sử dụng các trạng thái sau:
•	Chưa Bắt đầu (Not Started).
•	Đã Phân công (Assigned).
•	Đã Tiếp nhận (Accepted).
•	Đang Thực hiện (In Progress).
•	Bản Nháp (Draft).
•	Đã Gửi (Submitted).
•	Đang Xác minh (Under Verification).
•	Yêu cầu Chỉnh sửa (Correction Required).
•	Đã Gửi lại (Resubmitted).
•	Đã Phê duyệt (Approved).
•	Đã Từ chối (Rejected).
•	Đã Phân công lại (Reassigned).
•	Quá hạn (Overdue).
•	Đã Hoàn tất (Completed).
________________________________________
37. THU THẬP DỮ LIỆU THỰC ĐỊA
Cán bộ thực địa phải có thể:
•	Mở nhiệm vụ.
•	Bắt đầu làm nhiệm vụ.
•	Điền biểu mẫu.
•	Lưu bản nháp.
•	Tiếp tục làm sau.
•	Thu thập tọa độ GPS.
•	Chụp ảnh.
•	Tải lên video.
•	Thêm ghi chú/nhận xét.
•	Gửi dữ liệu (Submit).
________________________________________
38. ĐỊNH VỊ GPS
Khi được cấu hình yêu cầu GPS:
Thu thập:
•	Vĩ độ (Latitude).
•	Kinh độ (Longitude).
•	Độ chính xác (Accuracy).
•	Dấu thời gian (Timestamp).
Tùy chọn tính toán khoảng cách từ vị trí đứng thực tế đến vị trí của thực thể mục tiêu.
Có thể cấu hình hành vi xử lý khi lệch khoảng cách:
•	Hiển thị cảnh báo (Warning).
•	Chuyển cho giám sát viên xem xét (Supervisor review).
•	Chặn không cho gửi dữ liệu (Block submission).
________________________________________
39. HÌNH ẢNH
Hỗ trợ:
•	Chụp trực tiếp từ máy ảnh (Camera).
•	Chọn từ thư viện ảnh (Gallery).
•	Tải lên nhiều ảnh (Multiple images).
•	Nén dung lượng ảnh (Compression).
•	Xem trước ảnh (Preview).
•	Chụp lại (Retake).
Gắn kết hình ảnh với:
•	Chiến dịch.
•	Giai đoạn.
•	Nhiệm vụ.
•	Câu hỏi tương ứng.
•	Nhân sự thực hiện.
________________________________________
40. VIDEO
Hỗ trợ:
•	Quay video trực tiếp (Record).
•	Chọn tệp video có sẵn (Select).
•	Xem trước (Preview).
•	Tải lên (Upload).
•	Thanh tiến trình tải lên (Progress).
•	Thử tải lại khi lỗi (Retry).
•	Giới hạn dung lượng tối đa (Maximum size).
•	Giới hạn thời lượng tối đa (Maximum duration).
Sử dụng dịch vụ lưu trữ đối tượng (object storage).
Không lưu trữ các tệp video dung lượng lớn trực tiếp bên trong cơ sở dữ liệu PostgreSQL.
________________________________________
41. CHẾ ĐỘ NGOẠI TUYẾN (OFFLINE MODE)
Ứng dụng di động phải hoạt động tốt ngay cả trong điều kiện kết nối mạng kém.
Sử dụng:
•	PWA (Progressive Web App).
•	IndexedDB.
•	Lưu bản nháp cục bộ trên thiết bị (Local draft).
•	Danh sách nhiệm vụ ngoại tuyến (Offline task list).
•	Hàng đợi đồng bộ hóa (Sync queue).
Trạng thái kết nối và đồng bộ:
Trực tuyến (Online)
Ngoại tuyến (Offline)
Đang đồng bộ (Syncing)
Đã đồng bộ (Synced)
Đồng bộ thất bại (Failed).
________________________________________
42. QUẢN LÝ XUNG ĐỘT DỮ LIỆU NGOẠI TUYẾN
Nếu cùng một bản ghi bị thay đổi từ nhiều nguồn khác nhau:
Không được âm thầm ghi đè dữ liệu.
Hãy tạo bản ghi xung đột:
Xung đột cần được xem xét xử lý (Conflict requires review).
Lưu giữ toàn bộ lịch sử phiên bản.
________________________________________
43. GỬI DỮ LIỆU (SUBMISSION)
Trước khi gửi dữ liệu lần cuối:
Hiển thị trang rà soát lại thông tin.
Ví dụ:
Các trường bắt buộc:
✓
Tọa độ GPS:
✓
Hình ảnh bắt buộc:
✓
Kiểm tra tính hợp lệ:
✓
Sau đó nhấn:
Gửi (Submit)
Máy chủ trả về:
Mã Đệ trình (Submission ID).
Không bao giờ hiển thị thông báo gửi thành công trước khi nhận được xác nhận từ máy chủ.
________________________________________
44. BỘ MÁY XÁC MINH (VERIFICATION ENGINE)
Tạo quy trình xác minh có thể cấu hình linh hoạt.
Ví dụ:
Cán bộ Thực địa (Field Officer)
→ Giám sát viên (Supervisor)
→ Cán bộ Hạt/Phân huyện (Tehsil Officer)
→ Cán bộ Phân khu (Subdivision Officer)
→ Trưởng Phòng ban (Department Head)
→ Quản trị viên Cấp Huyện (District Admin)
Tuy nhiên các quản trị viên có thể cấu hình các cấp duyệt khác nhau tùy theo chiến dịch.
________________________________________
45. CÁC HÀNH ĐỘNG XÁC MINH
Người kiểm duyệt (Reviewer) có thể:
•	Phê duyệt (Approve).
•	Từ chối (Reject).
•	Yêu cầu chỉnh sửa (Request correction).
•	Thêm bình luận/nhận xét (Add comment).
•	Chuyển vượt cấp lên cấp trên (Escalate).
•	Phân công lại cho người khác (Reassign).
•	Xem lịch sử thay đổi (View history).
________________________________________
46. QUY TRÌNH YÊU CẦU CHỈNH SỬA
Ví dụ:
Người kiểm duyệt ghi:
"Vui lòng tải lên hình ảnh chụp rõ nét hơn."
Trạng thái chuyển thành:
Yêu cầu Chỉnh sửa (Correction Required).
Nhân sự thực địa nhận được thông báo.
Nhân sự chỉ được phép chỉnh sửa các trường được cho phép.
Gửi lại dữ liệu (Resubmits).
Người kiểm duyệt nhận được thông báo đã gửi lại.
________________________________________
47. QUẢN LÝ PHIÊN BẢN DỮ LIỆU (DATA VERSIONING)
Mọi lần đệ trình dữ liệu đều phải bảo toàn:
•	Phiên bản (Version).
•	Các câu trả lời (Answers).
•	Các tệp đính kèm (Files).
•	Tọa độ GPS.
•	Người thực hiện (User).
•	Dấu thời gian (Timestamp).
•	Chi tiết các thay đổi (Changes).
•	Lý do thay đổi (Reason).
Không bao giờ xóa bỏ hoặc làm mất các phiên bản lịch sử.
________________________________________
48. PHÊ DUYỆT CUỐI CÙNG (FINAL APPROVAL)
Chỉ những bản ghi đã được phê duyệt mới được đưa vào kết quả cuối cùng khi chiến dịch có yêu cầu bước phê duyệt cuối cùng.
Cho phép các báo cáo phân biệt rõ giữa các mức dữ liệu:
•	Sơ bộ (Preliminary).
•	Đã gửi (Submitted).
•	Đã xác minh (Verified).
•	Đã phê duyệt cuối cùng (Final Approved).
________________________________________
49. BỘ MÁY KIỂM SOÁT CHẤT LƯỢNG DỮ LIỆU (DATA QUALITY ENGINE)
Tạo các bài kiểm tra chất lượng dữ liệu tự động.
Ví dụ:
•	Trùng lặp hộ gia đình.
•	Trùng lặp nhiệm vụ.
•	Thiếu tọa độ GPS.
•	Giá trị phi thực tế/không thể xảy ra.
•	Tổng số liệu không khớp nhau.
•	Thiếu bằng chứng bắt buộc.
•	Dữ liệu giữa các giai đoạn mâu thuẫn nhau.
•	Tốc độ hoàn thành biểu mẫu nhanh bất thường.
•	Tọa độ GPS trùng hệt nhau lặp đi lặp lại một cách đáng ngờ.
•	Số lượng bản gửi lên quá nhiều trong một khoảng thời gian ngắn.
Gắn cờ các điểm bất thường để cán bộ quản lý xem xét.
Không tự động quy chụp nhân sự có hành vi sai phạm.
Đánh dấu là:
Ngoại lệ Chất lượng Dữ liệu (Data Quality Exception)
________________________________________
50. QUẢN LÝ NGOẠI LỆ (EXCEPTION MANAGEMENT)
Tạo một Trung tâm Quản lý Ngoại lệ (Exception Center) tập trung.
Ví dụ các ngoại lệ:
•	Thiếu hộ gia đình.
•	Trùng lặp hộ gia đình.
•	Sự cố tọa độ GPS.
•	Biểu mẫu chưa hoàn chỉnh.
•	Dữ liệu mâu thuẫn.
•	Nhiệm vụ quá hạn.
•	Nhân sự không thể làm việc.
•	Đội nhóm không thể làm việc.
•	Lỗi thanh toán.
•	Lỗi đồng bộ hóa dữ liệu.
Quản trị viên có thể phân công người xử lý từng ngoại lệ.
________________________________________
51. VÍ DỤ CHIẾN DỊCH TỔNG ĐIỀU TRA DÂN SỐ 2027 (CENSUS 2027)
Tạo chiến dịch Tổng điều tra dân số 2027 làm một chiến dịch mẫu.
Không tự bịa ra các câu hỏi Tổng điều tra dân số chính thức.
Hãy sử dụng các biểu mẫu giữ chỗ (placeholder)/có thể cấu hình hoặc các biểu mẫu được cung cấp chính thức.
Cấu trúc ví dụ:
Tổng điều tra dân số 2027 (Census 2027)
→ Giai đoạn 1: Lập danh sách Nhà ở (House Listing)
→ Giai đoạn 2: Điều tra Nhân khẩu (Enumeration)
→ Giai đoạn 3: Xác minh (Verification)
→ Giai đoạn 4: Chỉnh sửa (Correction)
Mỗi giai đoạn có các biểu mẫu khác nhau và có thể sử dụng lực lượng nhân sự khác nhau.
________________________________________
52. CẤU TRÚC ĐỊA LÝ TRONG TỔNG ĐIỀU TRA DÂN SỐ
Hỗ trợ cấu trúc:
Huyện (District)
→ Phân khu (Subdivision)
→ Hạt/Phân huyện (Tehsil)
→ Đô thị / Thành phố trực thuộc (Municipality / Nagar Palika)
→ Phường (Ward)
→ Làng/Xã (Village)
→ Khu dân cư/Thôn xóm (Mohalla)
→ Hộ gia đình (Household)
Hệ thống phân cấp thực tế phải có thể cấu hình được.
________________________________________
53. ĐỘI LIÊN NGÀNH TRONG TỔNG ĐIỀU TRA DÂN SỐ
Ví dụ:
Đội 001
Địa bàn:
Phường 10 / Khu dân cư A (Mohalla A)
Thành viên:
•	Nhân sự Phòng Giáo dục.
•	Nhân sự Phòng Thuế/Doanh thu.
•	Nhân sự Đô thị/Thành phố.
Đội sẽ đến thăm từng hộ gia đình nằm trong phạm vi địa bàn được phân công.
________________________________________
54. LUỒNG ĐIỀU TRA HỘ GIA ĐÌNH
Đội mở hồ sơ:
Hộ gia đình HH-000123
Hệ thống hiển thị:
•	Vị trí định vị.
•	Địa chỉ.
•	Thông tin từ giai đoạn trước nếu được cấp quyền xem.
•	Biểu mẫu của giai đoạn hiện tại.
Đội thu thập các thông tin bắt buộc.
Gửi dữ liệu lên hệ thống.
Kết quả sẽ đi qua quy trình xác minh đã được cấu hình.
________________________________________
55. KHỐI LƯỢNG CÔNG VIỆC ĐA GIAI ĐOẠN TRONG TỔNG ĐIỀU TRA DÂN SỐ
Hỗ trợ phân bổ công việc qua nhiều giai đoạn để giảm tải khối lượng công việc cho nhân sự.
Ví dụ:
Giai đoạn 1:
Nhóm Nhân sự A
Giai đoạn 2:
Nhóm Nhân sự B
Giai đoạn 3:
Nhóm Nhân sự C
Hoặc cùng một nhóm nhân sự có thể tham gia vào nhiều giai đoạn khác nhau.
Hệ thống phải hỗ trợ cả hai phương án.
________________________________________
56. BỘ MÁY TÍNH TOÁN THANH TOÁN / THÙ LAO (PAYMENT/HONORARIUM ENGINE)
Tạo một phân hệ thanh toán chuyên biệt.
QUAN TRỌNG:
Không bao giờ gắn cứng (hard-code) mức tiền thanh toán của chính quyền vào mã nguồn.
Số tiền thanh toán phải được lấy từ các quy tắc cấu hình được phê duyệt dựa trên quyết định/hướng dẫn hiện hành của chính quyền.
________________________________________
57. QUY TẮC THANH TOÁN
Các trường thông tin của quy tắc thanh toán:
•	Chiến dịch.
•	Giai đoạn.
•	Vai trò đảm nhận.
•	Phòng ban (nếu áp dụng).
•	Loại nhiệm vụ công tác (Duty type).
•	Phương thức tính toán.
•	Số tiền/đơn giá (Amount/rate).
•	Ngày có hiệu lực.
•	Số hiệu văn bản/quyết định của chính quyền (Government order reference).
•	Phiên bản quy tắc.
•	Trạng thái phê duyệt.
________________________________________
58. TÍNH TOÁN KHOẢN THANH TOÁN
Các mô hình tính toán có thể hỗ trợ:
•	Số tiền cố định trọn gói (Fixed amount).
•	Tính theo ngày công (Per day).
•	Tính theo từng nhiệm vụ (Per task).
•	Tính theo mỗi hộ gia đình được phê duyệt (Per approved household).
•	Tính theo vai trò (Role-based).
•	Tính theo giai đoạn (Phase-based).
•	Tính theo thành phần công việc (Component-based).
Không tự mặc định rằng các mô hình này đều được áp dụng về mặt pháp lý.
Quản trị viên sẽ là người cấu hình phương thức tính toán được phép sử dụng theo đúng quy định chính thức.
________________________________________
59. ĐIỀU KIỆN ĐỦ ĐỂ ĐƯỢC THANH TOÁN (PAYMENT ELIGIBILITY)
Ví dụ quy trình xét duyệt:
Được phân công nhiệm vụ (Assignment)
↓
Hoàn thành đợt công tác (Duty completed)
↓
Hoàn thành khối lượng công việc bắt buộc (Required work completed)
↓
Dữ liệu gửi lên được chấp nhận/phê duyệt (Submission accepted/approved)
↓
Phát sinh trạng thái đủ điều kiện thanh toán (Eligibility generated)
↓
Phê duyệt khoản thanh toán (Payment approval)
↓
Xử lý giải ngân thanh toán (Payment processing)
↓
Đã thanh toán (Paid)
Các quy tắc xét duyệt chính xác phải có thể cấu hình được.
________________________________________
60. BẢNG ĐIỀU KHIỂN THANH TOÁN CỦA NHÂN SỰ
Nhân sự nhìn thấy các thông tin:
Chiến dịch:
Tổng điều tra dân số 2027
Giai đoạn:
Giai đoạn 1
Nhiệm vụ công tác:
Đã hoàn thành
Điều kiện nhận thù lao:
Đủ điều kiện (Eligible)
Khoản thanh toán:
₹XXXX
Trạng thái:
Đang chờ duyệt / Đã phê duyệt / Đang xử lý / Đã thanh toán.
Thông tin tài chính nhạy cảm phải được bảo mật chặt chẽ.
________________________________________
61. TRẠNG THÁI THANH TOÁN
Các trạng thái bao gồm:
•	Chưa Đủ Điều kiện (Not Eligible).
•	Đang Chờ Xét Điều kiện (Pending Eligibility).
•	Đủ Điều kiện (Eligible).
•	Đang Chờ Phê duyệt (Pending Approval).
•	Đã Phê duyệt (Approved).
•	Đang Xử lý (Processing).
•	Đã Thanh toán (Paid).
•	Thanh toán Thất bại (Failed).
•	Bị Hoàn trả (Returned).
•	Tạm Giữ (On Hold).
•	Đang Khiếu nại/Tranh chấp (Disputed).
________________________________________
62. NHẮC NHỞ THANH TOÁN
Nếu khoản thanh toán vẫn đang chờ xử lý:
Gửi thông báo qua:
•	Thông báo trong ứng dụng (In-app notification).
•	Tin nhắn SMS (nếu được cấu hình).
•	Email (nếu được cấu hình).
Ví dụ nội dung:
Khoản thanh toán thù lao công tác chiến dịch đã được phê duyệt của bạn hiện vẫn đang chờ xử lý giải ngân.
Không được đưa ra các tuyên bố chưa được xác minh về thời điểm tiền về tài khoản.
________________________________________
63. XỬ LÝ NGOẠI LỆ THANH TOÁN
Hỗ trợ quản lý:
•	Các giao dịch thanh toán thất bại.
•	Hồ sơ thông tin không chính xác.
•	Thiếu phê duyệt.
•	Ngăn chặn thanh toán trùng lặp.
•	Tạm dừng thanh toán (Hold).
•	Thử thanh toán lại (Retry).
•	Giải quyết dứt điểm ngoại lệ (Resolution).
Lưu giữ đầy đủ nhật ký kiểm toán (audit trail).
________________________________________
64. NGĂN CHẶN THANH TOÁN TRÙNG LẶP
Ngăn chặn việc chi trả trùng lặp cho cùng tổ hợp:
Nhân sự + Chiến dịch + Giai đoạn + Nhiệm vụ công tác (Employee + Campaign + Phase + Duty)
trừ khi được cho phép rõ ràng bởi một quy trình điều chỉnh bổ sung có thẩm quyền phê duyệt.
________________________________________
65. CHẤM CÔNG / BẰNG CHỨNG THỰC HIỆN NHIỆM VỤ
Ở những nơi quy định chiến dịch có yêu cầu, hãy hỗ trợ chức năng chấm công thực hiện nhiệm vụ.
Các phương thức có thể áp dụng:
•	Báo cáo bắt đầu ca công tác (Start duty).
•	Báo cáo kết thúc ca công tác (End duty).
•	Định vị GPS.
•	Đội trưởng xác nhận.
•	Giám sát viên phê duyệt.
•	Hoàn thành số lượng nhiệm vụ.
Không mặc định rằng việc có chấm công đồng nghĩa với việc đủ điều kiện nhận thanh toán.
Hãy thiết kế để quy tắc này có thể cấu hình được.
________________________________________
66. TẬP HUẤN NGHIỆP VỤ (TRAINING)
Theo dõi:
•	Lớp tập huấn được phân công.
•	Trạng thái hoàn thành tập huấn.
•	Ngày tham gia tập huấn.
•	Tài liệu tập huấn.
•	Bài kiểm tra đánh giá (Assessment).
•	Chứng nhận hoàn thành (Certification).
Một giai đoạn chiến dịch có thể tùy chọn yêu cầu nhân sự phải hoàn thành tập huấn trước khi được phân công nhiệm vụ.
________________________________________
67. TÀI LIỆU HƯỚNG DẪN / VĂN BẢN CHỈ ĐẠO
Quản trị viên chiến dịch có thể tải lên:
•	Các quyết định/chỉ thị của chính quyền (Government orders).
•	Tài liệu hướng dẫn (Guidelines).
•	Quy trình vận hành tiêu chuẩn (SOPs).
•	Tài liệu đào tạo, tập huấn.
•	Thông tư/Công văn (Circulars).
•	Các biểu mẫu mẫu.
•	Quyết định chi trả thù lao (Payment orders).
Các tài liệu phải được quản lý theo phiên bản (versioned).
________________________________________
68. BỘ MÁY THÔNG BÁO (NOTIFICATION ENGINE)
Hỗ trợ gửi thông báo qua:
•	Trong ứng dụng (In-app).
•	Tin nhắn SMS.
•	Thư điện tử (Email).
•	Thông báo đẩy (Push notifications).
Các loại thông báo:
•	Nhiệm vụ mới.
•	Chiến dịch mới.
•	Giai đoạn bắt đầu.
•	Hạn chót (Deadline).
•	Quá hạn.
•	Yêu cầu chỉnh sửa.
•	Phê duyệt.
•	Phân công lại.
•	Kích hoạt nhân sự dự bị.
•	Cập nhật thanh toán.
________________________________________
69. CÔNG CỤ CHUYỂN CẤP XỬ LÝ (ESCALATION ENGINE)
Tạo cơ chế chuyển cấp xử lý có thể cấu hình.
Ví dụ:
Nhiệm vụ quá hạn 2 ngày:
→ Thông báo cho Giám sát viên (Supervisor).
Quá hạn 4 ngày:
→ Cán bộ Tehsil (Tehsil Officer).
Quá hạn 7 ngày:
→ Quản trị viên Cấp huyện (District Admin).
Lịch trình chuyển cấp xử lý phải có thể cấu hình được.
________________________________________
70. CÔNG CỤ NHẮC NHỞ (REMINDER ENGINE)
Hỗ trợ các lời nhắc theo lịch trình.
Ví dụ:
7 ngày trước hạn chót.
3 ngày trước hạn.
1 ngày trước hạn.
Ngày đến hạn.
Quá hạn.
Thanh toán đang chờ xử lý trong X ngày.
________________________________________
71. BẢNG ĐIỀU KHIỂN CHỈ HUY CẤP HUYỆN (DISTRICT COMMAND DASHBOARD)
Tạo một trung tâm chỉ huy chuyên nghiệp.
Hiển thị:
Chiến dịch (Campaigns)
Tổng số.
Đang hoạt động.
Đã hoàn thành.
Bị trễ tiến độ.
Lực lượng lao động (Workforce)
Tổng số.
Đã phân công.
Sẵn sàng.
Dự bị.
Không sẵn sàng.
Nhiệm vụ (Tasks)
Tổng số.
Đã hoàn thành.
Đang chờ xử lý.
Quá hạn.
Cần chỉnh sửa.
Xác minh (Verification)
Đã gửi.
Đang xem xét.
Đã phê duyệt.
Bị từ chối.
Thanh toán (Payment)
Đủ điều kiện.
Đã phê duyệt.
Đã thanh toán.
Đang chờ xử lý.
Thất bại.
________________________________________
72. KHOAN SÂU THEO ĐỊA LÝ (GEOGRAPHIC DRILL-DOWN)
Bảng điều khiển:
Huyện (District)
↓
Phân khu (Subdivision)
↓
Tehsil
↓
Làng/Phường (Village/Ward)
↓
Khu phố (Mohalla)
↓
Hộ gia đình (Household)
Ở mọi cấp độ:
•	Tổng số.
•	Đã phân công.
•	Đã hoàn thành.
•	Đang chờ xử lý.
•	Đã xác minh.
•	Ngoại lệ.
________________________________________
73. BẢN ĐỒ (MAP)
Cung cấp bản đồ tương tác.
Hiển thị:
•	Các khu vực được phân công.
•	Các mục tiêu đã hoàn thành.
•	Các mục tiêu đang chờ xử lý.
•	Các trường hợp ngoại lệ.
•	Các bản gửi có tọa độ GPS ở những nơi được cấp phép.
Sử dụng kỹ thuật gom cụm (clustering) cho các tập dữ liệu lớn.
Không cố gắng kết xuất (render) hàng triệu điểm cùng một lúc.
________________________________________
74. BẢNG ĐIỀU KHIỂN PHÒNG BAN (DEPARTMENT DASHBOARD)
Trưởng Phòng ban (Department Head) nhìn thấy:
•	Sự tham gia vào chiến dịch.
•	Nhân viên.
•	Các nhóm (Teams).
•	Khối lượng công việc.
•	Mức độ hoàn thành.
•	Xác minh.
•	Ngoại lệ.
•	Thanh toán.
Chỉ hiển thị dữ liệu phòng ban được cấp phép.
________________________________________
75. BẢNG ĐIỀU KHIỂN PHÂN KHU / TEHSIL (SUBDIVISION / TEHSIL DASHBOARD)
Hiển thị tiến độ tại địa phương.
Ví dụ:
Tehsil A:
Mục tiêu: 100,000
Đã hoàn thành: 92,000
Đang chờ xử lý: 8,000
Tỷ lệ hoàn thành:
92%
________________________________________
76. BẢNG ĐIỀU KHIỂN NHÓM (TEAM DASHBOARD)
Trưởng nhóm (Team Leader) nhìn thấy:
•	Các thành viên.
•	Các mục tiêu được phân công.
•	Đã hoàn thành.
•	Đang chờ xử lý.
•	Các yêu cầu chỉnh sửa.
•	Quá hạn.
•	Trạng thái đồng bộ hóa.
________________________________________
77. BẢNG ĐIỀU KHIỂN NHÂN VIÊN (EMPLOYEE DASHBOARD)
Nhân viên nhìn thấy:
•	Chiến dịch của tôi.
•	Giai đoạn của tôi.
•	Nhiệm vụ của tôi.
•	Tiến độ của tôi.
•	Các yêu cầu chỉnh sửa.
•	Thông báo.
•	Thanh toán.
•	Tài liệu hướng dẫn.
________________________________________
78. CÔNG CỤ BÁO CÁO (REPORTING ENGINE)
Tạo các báo cáo có thể cấu hình.
Các loại báo cáo:
•	Chiến dịch.
•	Giai đoạn.
•	Phòng ban.
•	Nhân viên.
•	Nhóm.
•	Địa lý.
•	Thực thể mục tiêu.
•	Xác minh.
•	Ngoại lệ.
•	Thanh toán.
•	Lực lượng lao động.
•	Năng suất.
________________________________________
79. BỘ LỌC BÁO CÁO (REPORT FILTERS)
Các bộ lọc:
•	Chiến dịch.
•	Giai đoạn.
•	Ngày tháng.
•	Phòng ban.
•	Nhân viên.
•	Nhóm.
•	Huyện (District).
•	Phân khu (Subdivision).
•	Tehsil.
•	Làng (Village).
•	Phường (Ward).
•	Khu phố (Mohalla).
•	Trạng thái.
________________________________________
80. XUẤT DỮ LIỆU (EXPORT)
Hỗ trợ:
•	Excel.
•	CSV.
•	PDF.
Các báo cáo dung lượng lớn phải được tạo bất đồng bộ (asynchronously).
________________________________________
81. LẬP LỊCH BÁO CÁO (REPORT SCHEDULING)
Cho phép người dùng được cấp phép lập lịch xuất báo cáo.
Ví dụ:
Mỗi ngày vào lúc 6 giờ chiều:
Báo cáo Tiến độ Chiến dịch Cấp huyện
Gửi đến những người dùng được cấp phép.
________________________________________
82. KIỂM SOÁT TRUY CẬP DỮ LIỆU (DATA ACCESS CONTROL)
Sử dụng:
RBAC + Phạm vi Địa lý + Phạm vi Phòng ban + Phạm vi Chiến dịch
Ví dụ:
Cán bộ Thực địa (Field Officer):
Chỉ các nhiệm vụ được phân công.
Cán bộ Tehsil (Tehsil Officer):
Tehsil được cấp phép.
Trưởng Phòng ban (Department Head):
Phòng ban được cấp phép.
Quản trị viên Cấp huyện (District Admin):
Toàn huyện.
Không bao giờ chỉ dựa vào các giới hạn ở phía giao diện người dùng (frontend).
________________________________________
83. QUẢN TRỊ VIÊN CẤP CAO (SUPER ADMIN)
Super Admin quản lý:
•	Các huyện.
•	Các phòng ban.
•	Người dùng.
•	Vai trò.
•	Quyền hạn.
•	Cài đặt hệ thống.
•	Dữ liệu gốc (Master data).
•	Các tích hợp hệ thống.
________________________________________
84. QUẢN TRỊ VIÊN CẤP HUYỆN (DISTRICT ADMIN)
District Admin có thể:
•	Tạo chiến dịch.
•	Tạo giai đoạn.
•	Tạo biểu mẫu.
•	Chọn phòng ban.
•	Quản lý lực lượng lao động.
•	Tạo nhóm.
•	Phân công khu vực.
•	Phân công nhiệm vụ.
•	Cấu hình quy trình xác minh.
•	Cấu hình quy tắc thanh toán ở những nơi được cấp phép.
•	Giám sát tiến độ.
•	Phê duyệt/xem xét dữ liệu.
•	Tạo báo cáo.
________________________________________
85. TRƯỞNG PHÒNG BAN (DEPARTMENT HEAD)
Có thể:
•	Xem các chiến dịch của phòng ban.
•	Quản lý lực lượng lao động của phòng ban.
•	Xem xét các bản gửi.
•	Xác minh dữ liệu.
•	Giám sát hiệu suất của phòng ban.
•	Tạo các báo cáo được cấp phép.
________________________________________
86. CÁN BỘ THỰC ĐỊA (FIELD OFFICER)
Có thể:
•	Đăng nhập.
•	Xem nhiệm vụ được giao.
•	Thu thập dữ liệu thực địa.
•	Thu thập tọa độ GPS.
•	Chụp ảnh/quay video (media).
•	Lưu bản nháp.
•	Gửi dữ liệu.
•	Chỉnh sửa.
•	Gửi lại.
•	Xem trạng thái thanh toán.
•	Xem tài liệu hướng dẫn.
________________________________________
87. CÁN BỘ THANH TOÁN (PAYMENT OFFICER)
Có thể:
•	Xem xét tính đủ điều kiện.
•	Phê duyệt thanh toán.
•	Xử lý thanh toán.
•	Xem các giao dịch thất bại.
•	Thử lại các khoản thanh toán được cấp phép.
•	Tạo báo cáo thanh toán.
Không cấp cho cán bộ thanh toán quyền truy cập không cần thiết vào dữ liệu hộ gia đình.
________________________________________
88. BẢO MẬT HỆ THỐNG (SYSTEM SECURITY)
Triển khai:
•	Băm mật khẩu (Password hashing).
•	Xác thực an toàn.
•	OTP.
•	Bảo mật phiên đăng nhập (Session security).
•	Kiến trúc JWT hoặc phiên bảo mật.
•	Xoay vòng refresh token (Refresh token rotation) khi có áp dụng.
•	Giới hạn tần suất (Rate limiting).
•	Phân quyền API.
•	Xác thực dữ liệu đầu vào (Input validation).
•	Xác thực tệp tải lên (File validation).
•	Các header bảo mật (Secure headers).
•	CORS.
•	Chống tấn công CSRF khi có áp dụng.
•	Chống tấn công SQL injection.
•	Chống tấn công XSS.
•	Nhật ký kiểm toán (Audit logs).
________________________________________
89. QUYỀN RIÊNG TƯ DỮ LIỆU (DATA PRIVACY)
Chỉ thu thập những thông tin được yêu cầu chính thức.
Thông tin nhạy cảm phải có:
•	Kiểm soát truy cập nghiêm ngặt.
•	Mã hóa khi phù hợp.
•	Nhật ký kiểm toán (Audit logs).
•	Quy tắc lưu giữ dữ liệu (Retention rules).
•	Hạn chế xuất dữ liệu.
Không hiển thị thông tin nhạy cảm của hộ gia đình/cá nhân trên các bảng điều khiển công khai.
________________________________________
90. NHẬT KÝ KIỂM TOÁN (AUDIT LOG)
Ghi lại mọi thao tác quan trọng.
Ví dụ:
•	Đăng nhập.
•	OTP.
•	Tạo chiến dịch.
•	Tạo giai đoạn.
•	Thay đổi biểu mẫu.
•	Phân công nhân viên.
•	Tạo nhóm.
•	Phân công hộ gia đình.
•	Gửi dữ liệu (Submission).
•	Chỉnh sửa.
•	Phê duyệt.
•	Phân công lại.
•	Kích hoạt nhân sự dự bị.
•	Tính toán thanh toán.
•	Phê duyệt thanh toán.
•	Xử lý thanh toán.
•	Xuất dữ liệu.
Nhật ký kiểm toán phải là bất biến (immutable) đối với người dùng thông thường.
________________________________________
91. GHI NHẬT KÝ HỆ THỐNG (SYSTEM LOGGING)
Sử dụng nhật ký ứng dụng có cấu trúc (structured application logs).
Tách biệt:
•	Nhật ký ứng dụng (Application logs).
•	Nhật ký bảo mật (Security logs).
•	Nhật ký kiểm toán (Audit logs).
•	Nhật ký lỗi (Error logs).
Không làm lộ các lỗi nội bộ cho người dùng thấy.
________________________________________
92. CƠ SỞ DỮ LIỆU (DATABASE)
Sử dụng:
PostgreSQL
ORM:
Prisma
Thiết kế lược đồ chuẩn hóa (normalized schema).
Các thực thể (entities) quan trọng:
•	State.
•	District.
•	Department.
•	OrganizationNode.
•	GeographicNode.
•	User.
•	Employee.
•	Role.
•	Permission.
•	Campaign.
•	CampaignPhase.
•	CampaignDepartment.
•	CampaignGeography.
•	TargetEntity.
•	Household.
•	Person.
•	Team.
•	TeamMember.
•	ReserveEmployee.
•	Task.
•	TaskAssignment.
•	Form.
•	FormVersion.
•	FormSection.
•	FormQuestion.
•	FormOption.
•	FormCondition.
•	Submission.
•	SubmissionVersion.
•	SubmissionAnswer.
•	SubmissionFile.
•	GPSRecord.
•	Verification.
•	CorrectionRequest.
•	Exception.
•	PaymentRule.
•	PaymentRuleVersion.
•	EmployeePayment.
•	PaymentComponent.
•	PaymentTransaction.
•	Notification.
•	GuidelineDocument.
•	Training.
•	AuditLog.
•	Report.
•	ReportJob.
Sử dụng hợp lý:
•	Khóa ngoại (Foreign keys).
•	Ràng buộc duy nhất (Unique constraints).
•	Chỉ mục (Indexes).
•	Xóa mềm (Soft deletion) khi phù hợp.
•	Dấu thời gian (Timestamps).
________________________________________
93. LƯU GIỮ DỮ LIỆU (DATA RETENTION)
Xây dựng các chính sách lưu giữ dữ liệu có thể cấu hình.
Các bản ghi khác nhau có thể có yêu cầu thời hạn lưu giữ khác nhau.
Không tự động xóa các hồ sơ chính thức nếu không có chính sách lưu giữ được phê duyệt.
________________________________________
94. SAO LƯU (BACKUP)
Thiết kế:
•	Sao lưu cơ sở dữ liệu tự động.
•	Khôi phục tại một thời điểm (Point-in-time recovery) ở nơi được hỗ trợ.
•	Sao lưu kho lưu trữ đối tượng (Object storage backup).
•	Giám sát sao lưu.
•	Kiểm thử phục hồi (Restore testing).
________________________________________
95. KHÔI PHỤC SAU THẢM HỌA (DISASTER RECOVERY)
Lập tài liệu:
•	Quy trình khôi phục.
•	Phục hồi bản sao lưu.
•	Khôi phục cơ sở dữ liệu.
•	Khôi phục tệp tin.
•	Khôi phục hàng đợi (Queue recovery).
•	Các kịch bản thảm họa.
________________________________________
96. KHẢ NĂNG MỞ RỘNG (SCALABILITY)
Thiết kế để đáp ứng:
•	Hơn 50,000 nhân viên.
•	Hàng triệu mục tiêu.
•	Hàng triệu bản gửi (submissions).
•	Tải lên các tệp dung lượng lớn.
•	Hàng ngàn người dùng di động đồng thời.
Sử dụng:
•	Phân trang (Pagination).
•	Phân trang theo con trỏ (Cursor pagination) ở những nơi phù hợp.
•	Chỉ mục cơ sở dữ liệu (Database indexes).
•	Redis.
•	Các tiến trình xử lý hàng đợi (Queue workers).
•	Kho lưu trữ đối tượng (Object storage).
•	Tác vụ chạy nền (Background jobs).
•	Mở rộng theo chiều ngang (Horizontal scaling).
•	Gom nhóm kết nối cơ sở dữ liệu (Database connection pooling).
________________________________________
97. HỆ THỐNG TÁC VỤ CHẠY NỀN (BACKGROUND JOB SYSTEM)
Sử dụng:
Redis + BullMQ hoặc tương đương.
Các tác vụ:
•	Tạo báo cáo.
•	Xuất tệp Excel.
•	Tạo tệp PDF.
•	Thông báo.
•	SMS.
•	Email.
•	Xử lý hình ảnh.
•	Xử lý video.
•	Tích hợp xử lý thanh toán.
•	Các tác vụ nhắc nhở.
•	Chuyển cấp xử lý (Escalation).
•	Tổng hợp dữ liệu.
________________________________________
98. LƯU TRỮ TỆP TIN (FILE STORAGE)
Sử dụng:
•	Kho lưu trữ tương thích S3 (S3-compatible storage).
Chỉ lưu trữ siêu dữ liệu (metadata) trong PostgreSQL.
Siêu dữ liệu bao gồm:
•	ID tệp (File ID).
•	Tên.
•	Loại.
•	Kích thước.
•	Đường dẫn lưu trữ.
•	Người dùng tải lên.
•	Chiến dịch.
•	Giai đoạn.
•	Nhiệm vụ.
•	Câu hỏi.
•	Dấu thời gian (Timestamp).
Sử dụng các URL có chữ ký (signed URLs) cho các tệp riêng tư.
________________________________________
99. HIỆU NĂNG TRÊN DI ĐỘNG (MOBILE PERFORMANCE)
Tối ưu hóa cho:
•	Các thiết bị Android cấu hình thấp.
•	Mạng chậm.
•	Dung lượng lưu trữ hạn chế.
•	Kết nối mạng chập chờn.
Tránh các hiệu ứng chuyển động (animations) không cần thiết.
Giữ cho các biểu mẫu gọn nhẹ.
Nén hình ảnh.
Sử dụng cơ chế tải lên có thể tiếp tục lại (resumable uploads) ở những nơi khả thi.
________________________________________
100. KHẢ NĂNG TIẾP CẬN (ACCESSIBILITY)
Hỗ trợ:
•	Độ tương phản cao.
•	Vùng chạm (touch targets) lớn.
•	Điều hướng bằng bàn phím.
•	Trình đọc màn hình (Screen readers).
•	Nhãn (labels) đầy đủ, đúng chuẩn.
•	Thông báo xác thực dữ liệu dễ tiếp cận.
________________________________________
101. GIAO DIỆN NGƯỜI DÙNG (USER INTERFACE)
Máy tính để bàn cho Quản trị viên (Admin desktop):
Thanh bên (Sidebar)
→ Bảng điều khiển (Dashboard)
→ Chiến dịch (Campaigns)
→ Giai đoạn (Phases)
→ Lực lượng lao động (Workforce)
→ Nhóm (Teams)
→ Địa lý (Geography)
→ Mục tiêu (Targets)
→ Biểu mẫu (Forms)
→ Nhiệm vụ (Tasks)
→ Xác minh (Verification)
→ Thanh toán (Payments)
→ Báo cáo (Reports)
→ Bản đồ (Maps)
→ Thông báo (Notifications)
→ Nhật ký kiểm toán (Audit Logs)
→ Cài đặt (Settings)
Thiết bị di động cho Cán bộ thực địa (Field mobile):
Trang chủ (Home)
Chiến dịch của tôi (My Campaigns)
Nhiệm vụ của tôi (My Tasks)
Yêu cầu chỉnh sửa (Corrections)
Thông báo (Notifications)
Thanh toán (Payment)
Tài liệu hướng dẫn (Guidelines)
Hồ sơ (Profile)
________________________________________
102. PHONG CÁCH THIẾT KẾ (DESIGN STYLE)
Sử dụng thiết kế hành chính nhà nước chuyên nghiệp.
Màu chính:
Xanh hải quân / xanh dương (Navy/blue).
Màu phụ:
Trắng / xám (White/gray).
Sử dụng:
•	Bảng dữ liệu (Tables).
•	Thẻ thông tin (Cards).
•	Huy hiệu trạng thái (Status badges).
•	Biểu đồ (Charts).
•	Bản đồ (Maps).
•	Thanh tiến độ (Progress bars).
Tránh giao diện trang trí rườm rà quá mức.
Ưu tiên tính dễ sử dụng (usability).
________________________________________
103. THAO TÁC HÀNG LOẠT (BULK OPERATIONS)
Quản trị viên phải có thể:
•	Nhập (Import) danh sách nhân viên.
•	Nhập dữ liệu địa lý.
•	Nhập các thực thể mục tiêu.
•	Phân công nhóm hàng loạt.
•	Phân công lại nhiệm vụ hàng loạt.
•	Kích hoạt nhân sự dự bị hàng loạt.
•	Tạo báo cáo hàng loạt.
Luôn hiển thị bước xác nhận trước khi thực hiện các thao tác quy mô lớn.
________________________________________
104. AN TOÀN THAO TÁC HÀNG LOẠT (BULK OPERATION SAFETY)
Đối với mọi thao tác hàng loạt:
1.	Xem trước (Preview).
2.	Xác thực dữ liệu (Validate).
3.	Hiển thị số lượng bản ghi bị ảnh hưởng.
4.	Xác nhận (Confirm).
5.	Thực thi (Execute).
6.	Hiển thị kết quả.
7.	Cung cấp báo cáo lỗi.
8.	Ghi lại sự kiện kiểm toán (audit event).
________________________________________
105. TÌM KIẾM (SEARCH)
Tìm kiếm toàn cục trên dữ liệu được cấp phép:
•	Chiến dịch.
•	Nhân viên.
•	Nhóm.
•	Hộ gia đình.
•	Cơ sở/Tổ chức (Institution).
•	Nhiệm vụ.
•	Bản gửi (Submission).
•	Khu vực địa lý.
________________________________________
106. PHÁT HIỆN TRÙNG LẶP (DUPLICATE DETECTION)
Phát hiện:
•	Nhân viên trùng lặp.
•	Mục tiêu trùng lặp.
•	Hộ gia đình trùng lặp.
•	Nhiệm vụ trùng lặp.
•	Phân công trùng lặp.
•	Thanh toán trùng lặp.
Không tự động xóa các bản ghi.
Gắn cờ chúng để xem xét.
________________________________________
107. TÙY CHỌN THÔNG BÁO (NOTIFICATION PREFERENCES)
Cho phép người dùng cấu hình các tùy chọn nhận thông báo được phép thay đổi.
Tuy nhiên, các cảnh báo bắt buộc của cơ quan nhà nước không thể bị tắt nếu đã được cấu hình là bắt buộc.
________________________________________
108. KIẾN TRÚC API (API ARCHITECTURE)
Sử dụng REST API sạch hoặc tương đương.
Tổ chức các API theo mô-đun:
/auth
/users
/employees
/departments
/geography
/campaigns
/phases
/teams
/targets
/tasks
/forms
/submissions
/verifications
/exceptions
/payments
/notifications
/reports
/audit
/files
________________________________________
109. TÀI LIỆU API (API DOCUMENTATION)
Tạo:
OpenAPI / Swagger
Lập tài liệu cho:
•	Xác thực (Authentication).
•	Yêu cầu (Request).
•	Phản hồi (Response).
•	Lỗi (Errors).
•	Quyền hạn (Permissions).
________________________________________
110. XỬ LÝ LỖI (ERROR HANDLING)
Sử dụng cấu trúc phản hồi API nhất quán.
Ví dụ:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Các trường bắt buộc đang bị thiếu."
}
}
Không bao giờ làm lộ:
•	Lỗi cơ sở dữ liệu.
•	Dấu vết ngăn xếp (Stack traces).
•	Thông tin bí mật (Secrets).
•	Chi tiết hạ tầng nội bộ.
________________________________________
111. TRẠNG THÁI GIAO DIỆN (FRONTEND STATE)
Sử dụng chiến lược quản lý trạng thái / tải dữ liệu phù hợp.
Sử dụng:
•	Tải dữ liệu phía máy chủ (Server-side fetching) ở những nơi phù hợp.
•	Lưu bộ nhớ đệm truy vấn (Query caching).
•	Cập nhật lạc quan (Optimistic updates) chỉ khi thực sự an toàn.
•	Trạng thái ngoại tuyến (Offline state).
________________________________________
112. BẢO MẬT DỮ LIỆU NGOẠI TUYẾN (OFFLINE DATA SECURITY)
Không lưu trữ vĩnh viễn dữ liệu cá nhân nhạy cảm không cần thiết trên thiết bị.
Mã hóa / bảo vệ cục bộ kho lưu trữ ngoại tuyến nhạy cảm ở những nơi khả thi.
Cung cấp cơ chế hết hạn thiết bị / phiên làm việc.
________________________________________
113. BẢO MẬT PHIÊN LÀM VIỆC (SESSION SECURITY)
Hỗ trợ:
•	Hết thời gian chờ phiên (Session timeout).
•	Quản lý thiết bị / phiên đăng nhập.
•	Đăng xuất khỏi tất cả các thiết bị khi được cấp phép.
•	Thu hồi token (Token revocation).
•	Phát hiện đăng nhập đáng ngờ.
________________________________________
114. BẢO MẬT OTP (OTP SECURITY)
OTP:
•	Thời gian hết hạn.
•	Giới hạn tần suất (Rate limiting).
•	Giới hạn số lần thử.
•	Thời gian chờ gửi lại (Resend cooldown).
•	Lưu trữ an toàn.
•	Ghi nhật ký kiểm toán.
Không bao giờ lưu trữ OTP ở dạng văn bản thuần (plain text) lâu hơn mức cần thiết.
________________________________________
115. ĐĂNG NHẬP (LOGIN)
Hỗ trợ:
Số điện thoại di động
→ OTP để xác minh lần đầu
→ Tạo mật khẩu
Sau đó:
Số điện thoại di động
→ Mật khẩu
→ Bảng điều khiển (Dashboard)
Quên mật khẩu:
Số điện thoại di động
→ OTP
→ Mật khẩu mới
________________________________________
116. TÍCH HỢP HỆ THỐNG CHÍNH PHỦ (GOVERNMENT INTEGRATIONS)
Xây dựng các giao diện tích hợp (integration interfaces) thay vì viết cứng (hard-code) các hệ thống bên ngoài.
Các tích hợp có thể có trong tương lai:
•	Cổng SMS (SMS gateway).
•	Cơ sở dữ liệu gốc về cán bộ nhân viên nhà nước.
•	Hệ thống GIS chính thức.
•	Hệ thống thanh toán / kho bạc.
•	Hệ thống định danh / xác thực.
•	Email.
•	Cổng thông báo (Notification gateway).
Sử dụng các bộ chuyển đổi (adapters) / giao diện (interfaces) để có thể thay đổi nhà cung cấp dễ dàng.
________________________________________
117. KHÔNG GIẢ MẠO TÍCH HỢP (NO FAKE INTEGRATIONS)
Nếu một API chính phủ thực tế chưa sẵn có:
Hãy sử dụng một bộ chuyển đổi phát triển / giả lập (development/mock adapter) được đánh dấu rõ ràng.
Không giả vờ một tích hợp giả lập là hệ thống thật.
________________________________________
118. TÍCH HỢP THANH TOÁN (PAYMENT INTEGRATION)
Quá trình xử lý thanh toán ban đầu cần hỗ trợ:
Trạng thái thủ công / hành chính
và được thiết kế kiến trúc sẵn sàng để tích hợp trong tương lai với hệ thống thanh toán / kho bạc nhà nước được cấp phép.
Không tự bịa ra một API thanh toán của chính phủ.
________________________________________
119. BẢO MẬT NHẬP/XUẤT DỮ LIỆU (IMPORT/EXPORT SECURITY)
Việc xuất dữ liệu phải tuân thủ phân quyền.
Không cho phép cán bộ thực địa xuất toàn bộ dữ liệu của huyện.
Việc xuất các dữ liệu nhạy cảm phải yêu cầu quyền phê duyệt bổ sung khi phù hợp.
Ghi nhật ký mọi thao tác xuất dữ liệu.
________________________________________
120. BẢNG ĐIỀU KHIỂN CHẤT LƯỢNG DỮ LIỆU (DATA QUALITY DASHBOARD)
Hiển thị:
•	Dữ liệu bị thiếu.
•	Dữ liệu không hợp lệ.
•	Dữ liệu trùng lặp.
•	Các ngoại lệ về GPS.
•	Tỷ lệ yêu cầu chỉnh sửa.
•	Tỷ lệ từ chối.
•	Hoạt động bất thường.
________________________________________
121. CHỈ SỐ NĂNG SUẤT (PRODUCTIVITY METRICS)
Hiển thị:
•	Số nhiệm vụ hoàn thành mỗi ngày.
•	Thời lượng thực hiện nhiệm vụ trung bình.
•	Tỷ lệ hoàn thành.
•	Tỷ lệ phải chỉnh sửa.
•	Tỷ lệ được phê duyệt.
•	Tỷ lệ quá hạn.
Không sử dụng các chỉ số năng suất làm kết luận kỷ luật tự động.
________________________________________
122. MẪU CHIẾN DỊCH (CAMPAIGN TEMPLATES)
Cho phép quản trị viên lưu:
Mẫu Chiến dịch (Campaign Template)
Ví dụ:
Mẫu Thanh tra Trường học.
Khi tạo một chiến dịch mới:
Sử dụng Mẫu (Use Template)
Sau đó chỉnh sửa:
•	Biểu mẫu.
•	Các phòng ban.
•	Địa lý.
•	Lực lượng lao động.
•	Ngày tháng.
•	Thanh toán.
________________________________________
123. THƯ VIỆN MẪU BIỂU MẪU (FORM TEMPLATE LIBRARY)
Cho phép tái sử dụng các biểu mẫu.
Ví dụ:
•	Biểu mẫu thanh tra.
•	Biểu mẫu khảo sát.
•	Biểu mẫu hộ gia đình.
•	Biểu mẫu xác minh.
Các biểu mẫu vẫn phải được quản lý theo phiên bản (versioned).
________________________________________
124. MẪU QUY TRÌNH LÀM VIỆC (WORKFLOW TEMPLATE)
Cho phép tái sử dụng các quy trình làm việc.
Ví dụ:
Cán bộ Thực địa (Field Officer)
→ Giám sát viên (Supervisor)
→ Trưởng Phòng ban (Department Head)
→ Quản trị viên Cấp huyện (District Admin).
Lưu dưới tên:
Quy trình Thanh tra Tiêu chuẩn (Standard Inspection Workflow).
________________________________________
125. MẪU THANH TOÁN (PAYMENT TEMPLATE)
Cho phép người dùng được cấp phép tái sử dụng các cấu trúc thanh toán.
Ví dụ:
Mẫu Thanh toán Nhiệm vụ Thực địa.
Tuy nhiên, mỗi chiến dịch / giai đoạn phải tham chiếu đến đúng quy tắc / phiên bản được áp dụng.
________________________________________
126. TẠM DỪNG CHIẾN DỊCH (CAMPAIGN PAUSE)
Quản trị viên có thể tạm dừng một chiến dịch.
Khi bị tạm dừng:
•	Không nhiệm vụ mới nào có thể bắt đầu.
•	Các bản nháp hiện có vẫn được giữ an toàn.
•	Quản trị viên có thể tiếp tục lại (resume) sau đó.
Hiển thị rõ ràng:
Chiến dịch Đang Tạm dừng (Campaign Paused).
________________________________________
127. GIA HẠN CHIẾN DỊCH (CAMPAIGN EXTENSION)
Quản trị viên được cấp phép có thể gia hạn thời hạn hoàn thành (deadline).
Yêu cầu:
•	Ngày mới.
•	Lý do.
•	Phê duyệt nếu được cấu hình.
Ghi lại lịch sử kiểm toán.
________________________________________
128. PHÂN CÔNG LẠI NHIỆM VỤ (TASK REASSIGNMENT)
Cho phép:
Nhân viên A
→ Nhân viên B
Lý do:
Nhân viên không thể làm việc.
Duy trì toàn bộ lịch sử phân công.
________________________________________
129. THAY ĐỔI NHÓM (TEAM CHANGE)
Cho phép thêm/bớt thành viên trong nhóm trong suốt chiến dịch khi có sự cấp phép.
Không ghi đè lại các bản ghi phân công lịch sử trước đó.
________________________________________
130. PHÂN CÔNG LẠI MỤC TIÊU (TARGET REASSIGNMENT)
Nếu một hộ gia đình / cơ sở được phân công lại:
Duy trì:
Nhóm cũ (Old Team)
→ Nhóm mới (New Team)
Lý do
Ngày tháng
Người cấp phép
________________________________________
131. CHỐT DỮ LIỆU GIAI ĐOẠN (FINALIZATION)
Khi một giai đoạn được chốt hoàn tất:
•	Ngăn chặn việc chỉnh sửa thông thường.
•	Chỉ cho phép quy trình chỉnh sửa được cấp phép đặc biệt.
•	Khóa kết quả chính thức.
•	Lưu giữ các phiên bản lịch sử.
________________________________________
132. ĐÓNG CHIẾN DỊCH (CAMPAIGN CLOSURE)
Khi chiến dịch hoàn thành:
•	Khóa các thay đổi vận hành.
•	Chốt các báo cáo cuối cùng.
•	Chốt danh sách đủ điều kiện thanh toán.
•	Lưu giữ nhật ký kiểm toán.
•	Lưu trữ (Archive) theo chính sách lưu giữ dữ liệu.
________________________________________
133. BẢN DEMO THỰC TẾ ĐIỀU TRA DÂN SỐ 2027 (REAL-LIFE CENSUS 2027 DEMO)
Tạo bản demo phát triển:
Chiến dịch:
Điều tra Dân số 2027 (Census 2027)
Huyện:
Huyện Demo (Demo District)
Các phòng ban:
•	Thuế vụ / Doanh thu (Revenue).
•	Giáo dục (Education).
•	Hành chính Đô thị (Municipal Administration).
•	Hội đồng Làng xã (Panchayat).
Tạo dữ liệu mẫu:
•	2 phân khu (subdivisions).
•	4 tehsil.
•	3 đô thị (municipalities).
•	10 làng (villages).
•	20 phường (wards).
•	50 khu phố (mohallas).
•	500 hộ gia đình.
•	100 nhân viên.
•	20 nhóm chính thức.
•	5 nhóm dự bị.
Tạo:
Giai đoạn 1:
Lập danh sách Nhà ở (House Listing)
Giai đoạn 2:
Thống kê Dân số (Enumeration)
Giai đoạn 3:
Xác minh (Verification)
Sử dụng các câu hỏi giữ chỗ (placeholder) mẫu.
Gắn nhãn rõ ràng:
DỮ LIỆU DEMO — KHÔNG PHẢI DỮ LIỆU ĐIỀU TRA DÂN SỐ CHÍNH THỨC (DEMO DATA — NOT OFFICIAL CENSUS DATA)
________________________________________
134. DEMO ĐẦU-CUỐI TOÀN TRÌNH (END-TO-END DEMO)
Trình diễn luồng hoạt động:
Quản trị viên Cấp huyện (District Admin)
→ Tạo chiến dịch Điều tra Dân số
→ Tạo Giai đoạn 1
→ Chọn các phòng ban
→ Nhập (Import) danh sách nhân viên
→ Tạo các nhóm liên ngành (joint teams)
→ Phân công khu vực địa lý
→ Tải danh sách các hộ gia đình mục tiêu
→ Tạo biểu mẫu Giai đoạn 1
→ Cấu hình quy trình xác minh
→ Cấu hình quy tắc thanh toán
→ Khởi chạy giai đoạn
Nhóm Thực địa (Field Team)
→ Đăng nhập
→ Xem danh sách hộ gia đình
→ Mở thông tin hộ gia đình
→ Điền hoàn chỉnh biểu mẫu
→ Thu thập tọa độ GPS
→ Lưu bản nháp
→ Gửi biểu mẫu (Submits)
Người kiểm duyệt (Reviewer)
→ Xem xét
→ Yêu cầu chỉnh sửa
Nhóm Thực địa (Field Team)
→ Chỉnh sửa
→ Gửi lại
Người kiểm duyệt (Reviewer)
→ Phê duyệt
Hệ thống (System)
→ Tạo kết quả cuối cùng
→ Tạo trạng thái đủ điều kiện thanh toán
→ Hiển thị trạng thái thanh toán
Quản trị viên Cấp huyện (District Admin)
→ Xem bảng điều khiển
→ Khoan sâu (Drills down) xuống tận cấp hộ gia đình
→ Xem bản đồ
→ Tạo tệp Excel/PDF
→ Xem lịch sử kiểm toán.
________________________________________
135. KIỂM THỬ (TESTING)
Tạo:
Kiểm thử Đơn vị (Unit Tests)
Cho:
•	Phân công nhiệm vụ.
•	Quyền hạn.
•	Xác thực biểu mẫu.
•	GPS.
•	Tính toán thanh toán.
•	Quy trình làm việc (Workflow).
Kiểm thử Tích hợp (Integration Tests)
Cho:
•	Xác thực đăng nhập.
•	Chiến dịch.
•	Nhóm.
•	Biểu mẫu.
•	Gửi dữ liệu (Submission).
•	Xác minh.
•	Thanh toán.
Kiểm thử Đầu-Cuối (E2E Tests)
Kiểm thử toàn bộ vòng đời của chiến dịch.
________________________________________
136. KIỂM THỬ TẢI (LOAD TESTING)
Kiểm thử với mức tải thực tế.
Tối thiểu phải kiểm thử:
•	50,000 nhân viên.
•	Khối lượng nhiệm vụ lớn.
•	Khối lượng bản gửi lớn.
•	Người dùng di động truy cập đồng thời.
•	Tạo báo cáo dung lượng lớn.
•	Tải lên tệp dung lượng lớn.
Xác định các điểm nghẽn cổ chai (bottlenecks).
________________________________________
137. ĐÁNH CHỈ MỤC CƠ SỞ DỮ LIỆU (DATABASE INDEXING)
Tạo chỉ mục (indexes) cho các trường thường xuyên được truy vấn:
•	ID Nhân viên (Employee ID).
•	Số điện thoại di động (Mobile).
•	ID Chiến dịch (Campaign ID).
•	ID Giai đoạn (Phase ID).
•	ID Nhóm (Team ID).
•	ID Địa lý (Geographic ID).
•	ID Mục tiêu (Target ID).
•	Trạng thái nhiệm vụ (Task status).
•	Trạng thái bản gửi (Submission status).
•	Trạng thái thanh toán (Payment status).
•	Ngày tạo (Created date).
Xem xét kế hoạch thực thi truy vấn (query plans) đối với các bảng dữ liệu lớn.
________________________________________
138. KIẾN TRÚC CÔNG NGHỆ (ARCHITECTURE)
Ngăn xếp công nghệ (stack) ưu tiên:
Frontend
Next.js
React
TypeScript
Tailwind CSS
shadcn/ui
PWA
IndexedDB
Backend
NestJS
TypeScript
Database
PostgreSQL
Prisma
Cache / Queue
Redis
BullMQ
Storage
Kho lưu trữ tương thích S3 (S3-compatible storage)
Maps
Lớp trừu tượng hóa nhà cung cấp (Provider abstraction) hỗ trợ:
OpenStreetMap / Mapbox / Google Maps
________________________________________
139. CẤU TRÚC DỰ ÁN (PROJECT STRUCTURE)
Sử dụng kiến trúc phân tách mô-đun sạch sẽ.
Ví dụ:
/apps
/web
/api
/packages
/ui
/types
/config
/validation
/infrastructure
/docs
/tests
Giữ cho logic nghiệp vụ (business logic) tách biệt khỏi giao diện người dùng (UI).
________________________________________
140. BIẾN MÔI TRƯỜNG (ENVIRONMENT VARIABLES)
Tạo tệp:
.env.example
Bao gồm:
DATABASE_URL
REDIS_URL
JWT_SECRET
S3_ENDPOINT
S3_ACCESS_KEY
S3_SECRET_KEY
S3_BUCKET
SMS_PROVIDER
SMS_API_KEY
SMS_SENDER_ID
EMAIL_PROVIDER
EMAIL_API_KEY
MAP_PROVIDER
MAP_API_KEY
Không bao giờ commit các thông tin bí mật (secrets) thật.
________________________________________
141. DOCKER
Cung cấp:
Dockerfile
docker-compose.yml
Các dịch vụ (Services):
•	Web.
•	API.
•	PostgreSQL.
•	Redis.
•	Kho lưu trữ đối tượng (Object storage) phục vụ phát triển cục bộ.
________________________________________
142. TÀI LIỆU HƯỚNG DẪN PHÁT TRIỂN (DEVELOPMENT README)
Cung cấp hướng dẫn đầy đủ:
1.	Cài đặt các gói phụ thuộc (dependencies).
2.	Cấu hình tệp .env.
3.	Khởi động PostgreSQL.
4.	Khởi động Redis.
5.	Chạy di trú cơ sở dữ liệu (migrations).
6.	Tạo dữ liệu mầm (Seed database).
7.	Khởi động backend.
8.	Khởi động frontend.
9.	Đăng nhập bằng thông tin tài khoản demo.
10.	Chạy kiểm thử (tests).
________________________________________
143. DỮ LIỆU MẦM (SEED DATA)
Tạo dữ liệu phát triển sát thực tế nhưng thể hiện rõ là dữ liệu giả lập.
Bao gồm:
•	Quản trị viên (Admin).
•	Trưởng Phòng ban (Department Heads).
•	Giám sát viên (Supervisors).
•	Cán bộ Thực địa (Field Officers).
•	Nhân viên dự bị (Reserve employees).
•	Các phòng ban.
•	Phân cấp địa lý.
•	Các nhóm.
•	Các hộ gia đình.
•	Các chiến dịch.
•	Các giai đoạn.
•	Các biểu mẫu.
•	Các nhiệm vụ.
Không bao giờ sử dụng thông tin cá nhân thật.
________________________________________
144. THÔNG TIN ĐĂNG NHẬP DEMO (DEMO CREDENTIALS)
Cung cấp các tài khoản demo chỉ dành cho môi trường phát triển.
Ví dụ:
District Admin
Department Head
Supervisor
Field Officer
Payment Officer
Đánh dấu rõ ràng:
CHỈ DÀNH CHO PHÁT TRIỂN (DEVELOPMENT ONLY)
Không sử dụng các thông tin đăng nhập này trong môi trường thực tế (production).
________________________________________
145. QUY TẮC QUAN TRỌNG VỀ DỮ LIỆU CHÍNH PHỦ
Không tự bịa ra:
•	Các câu hỏi Điều tra Dân số chính thức.
•	Mức tiền chi trả của chính phủ.
•	Các văn bản / mệnh lệnh hành chính của chính phủ.
•	Hồ sơ cán bộ công chức nhà nước.
•	Các tập dữ liệu địa lý chính thức.
•	Các API của chính phủ.
•	Quy trình nghiệp vụ Điều tra Dân số chính thức.
Ở những nơi chưa có thông tin chính thức, hãy tạo:
CÁC GIÁ TRỊ GIỮ CHỖ CÓ THỂ CẤU HÌNH (CONFIGURABLE PLACEHOLDERS)
và gắn nhãn rõ ràng cho chúng.
________________________________________
146. QUY TẮC THIẾT KẾ QUAN TRỌNG
Không tạo các ứng dụng riêng lẻ cho từng mục đích:
•	Điều tra dân số.
•	Thanh tra trường học.
•	Khảo sát đường bộ.
•	Khảo sát lũ lụt.
Thay vào đó hãy tạo một nền tảng chung:
Nền tảng Chiến dịch Cấp huyện (District Campaign Platform)
Sau đó cấu hình:
Loại Chiến dịch (Campaign Type):
Điều tra dân số (Census)
Chiến dịch (Campaign):
Điều tra dân số 2027 (Census 2027)
Giai đoạn (Phase):
Lập danh sách Nhà ở (House Listing)
Cách tiếp cận này giúp nền tảng có thể tái sử dụng nhiều lần.
________________________________________
147. CÁC MÔ-ĐUN KIẾN TRÚC QUAN TRỌNG NHẤT
Ứng dụng phải được xây dựng xoay quanh các công cụ (engines) sau:
1. Campaign Engine (Công cụ Chiến dịch)
Các chiến dịch và giai đoạn.
2. Organization Engine (Công cụ Tổ chức)
Các phòng ban và sơ đồ phân cấp.
3. Geography Engine (Công cụ Địa lý)
Huyện / tehsil / làng / phường / khu phố (mohalla).
4. Workforce Engine (Công cụ Lực lượng lao động)
Nhân viên và trạng thái sẵn sàng làm việc.
5. Team Engine (Công cụ Nhóm)
Nhóm liên ngành và nhóm dự bị.
6. Target Entity Engine (Công cụ Thực thể Mục tiêu)
Hộ gia đình, trường học, đường sá, v.v.
7. Assignment Engine (Công cụ Phân công)
Phân công mục tiêu cho các nhóm / nhân viên.
8. Form Engine (Công cụ Biểu mẫu)
Biểu mẫu động và quản lý phiên bản.
9. Field Data Engine (Công cụ Dữ liệu Thực địa)
Thu thập dữ liệu trên thiết bị di động.
10. Offline Sync Engine (Công cụ Đồng bộ Ngoại tuyến)
Hoạt động ngoại tuyến trên thiết bị di động.
11. Verification Engine (Công cụ Xác minh)
Xem xét và phê duyệt.
12. Exception Engine (Công cụ Ngoại lệ)
Các ngoại lệ về chất lượng dữ liệu và vận hành.
13. Payment Engine (Công cụ Thanh toán)
Thanh toán có thể cấu hình dựa trên hướng dẫn của chính phủ.
14. Notification Engine (Công cụ Thông báo)
SMS / email / thông báo đẩy (push) / trong ứng dụng (in-app).
15. Reporting Engine (Công cụ Báo cáo)
Bảng điều khiển và các báo cáo.
16. Audit Engine (Công cụ Kiểm toán)
Lịch sử hoạt động đầy đủ.
________________________________________
148. THỨ TỰ PHÁT TRIỂN (DEVELOPMENT ORDER)
Đừng cố gắng tạo toàn bộ ứng dụng dưới dạng các trang rời rạc thiếu kết nối.
Hãy xây dựng theo thứ tự sau:
Giai đoạn A — Nền tảng (Foundation)
•	Kiến trúc.
•	Cơ sở dữ liệu.
•	Xác thực (Authentication).
•	Phân quyền dựa trên vai trò (RBAC).
•	Tổ chức.
•	Địa lý.
Giai đoạn B — Chiến dịch (Campaign)
•	Chiến dịch.
•	Giai đoạn.
•	Phòng ban.
•	Lực lượng lao động.
•	Nhóm.
Giai đoạn C — Mục tiêu & Phân công (Target & Assignment)
•	Thực thể mục tiêu.
•	Hộ gia đình.
•	Phân công theo địa lý.
•	Công cụ nhiệm vụ (Task engine).
•	Khối lượng công việc.
Giai đoạn D — Biểu mẫu (Forms)
•	Trình tạo biểu mẫu (Form builder).
•	Câu hỏi động.
•	Điều kiện rẽ nhánh.
•	Nhóm lặp lại (Repeating groups).
•	Xác thực dữ liệu (Validation).
•	Quản lý phiên bản (Versioning).
Giai đoạn E — Di động (Mobile)
•	Giao diện cán bộ thực địa.
•	Ngoại tuyến (Offline).
•	GPS.
•	Hình ảnh.
•	Video.
•	Đồng bộ hóa (Sync).
Giai đoạn F — Quy trình làm việc (Workflow)
•	Xác minh.
•	Chỉnh sửa.
•	Gửi lại.
•	Phê duyệt.
•	Ngoại lệ.
Giai đoạn G — Thanh toán (Payment)
•	Quy tắc thanh toán.
•	Tính đủ điều kiện.
•	Phê duyệt.
•	Trạng thái.
•	Nhắc nhở.
•	Ngoại lệ.
Giai đoạn H — Thông tin Quản trị (Intelligence)
•	Bảng điều khiển (Dashboards).
•	Bản đồ.
•	Phân tích dữ liệu (Analytics).
•	Báo cáo.
•	Xuất dữ liệu.
Giai đoạn I — Đưa vào Vận hành Thực tế (Production)
•	Bảo mật.
•	Kiểm thử.
•	Kiểm thử tải (Load testing).
•	Giám sát.
•	Sao lưu.
•	Khôi phục sau thảm họa.
•	Docker.
•	Tài liệu hướng dẫn.
________________________________________
149. TIÊU CHÍ NGHIỆM THU CUỐI CÙNG (FINAL ACCEPTANCE CRITERIA)
Dự án chỉ được coi là hoàn thành khi luồng hoạt động đầu-cuối (end-to-end) thực tế vận hành trơn tru:
Quản trị viên Cấp huyện (District Admin)
→ tạo chiến dịch
→ tạo nhiều giai đoạn
→ chọn các phòng ban
→ nhập danh sách lực lượng lao động
→ tạo các nhóm liên ngành
→ tạo các nhóm dự bị
→ phân công địa lý
→ tải danh sách các thực thể mục tiêu
→ tạo biểu mẫu động theo từng giai đoạn cụ thể
→ tạo quy trình xác minh
→ cấu hình quy tắc thanh toán được cấp phép
→ khởi chạy chiến dịch
↓
Nhóm Thực địa (Field Team)
→ đăng nhập trên thiết bị di động
→ nhận khu vực được phân công
→ xem các mục tiêu được giao
→ đến thăm thực tế mục tiêu
→ điền biểu mẫu
→ thu thập tọa độ GPS ở những nơi bắt buộc
→ chụp ảnh/quay video ở những nơi bắt buộc
→ làm việc ngoại tuyến nếu cần thiết
→ đồng bộ hóa dữ liệu
→ gửi biểu mẫu
↓
Người kiểm duyệt (Reviewer)
→ nhận bản gửi
→ xác minh
→ yêu cầu chỉnh sửa
↓
Nhóm Thực địa (Field Team)
→ chỉnh sửa
→ gửi lại
↓
Người kiểm duyệt (Reviewer)
→ phê duyệt
↓
Hệ thống (System)
→ chốt kết quả cuối cùng
→ tính toán điều kiện hưởng thanh toán theo quy định được cấp phép
→ theo dõi thanh toán
→ gửi thông báo
↓
Quản trị viên Cấp huyện (District Admin)
→ xem tiến độ theo thời gian thực
→ khoan sâu dữ liệu theo phân cấp địa lý
→ xem bản đồ
→ xem hiệu suất của phòng ban / nhóm / nhân viên
→ xem các trường hợp ngoại lệ
→ xem trạng thái thanh toán
→ tạo báo cáo
→ xuất dữ liệu được cấp phép
→ xem lại lịch sử kiểm toán.
________________________________________
150. HƯỚNG DẪN CUỐI CÙNG DÀNH CHO LẬP TRÌNH VIÊN AI
Đừng xây dựng một dự án đồ chơi (toy project).
Đừng chỉ xây dựng các màn hình giao diện frontend.
Đừng sử dụng các mảng dữ liệu gắn cứng (hard-coded arrays) cho dữ liệu nghiệp vụ cốt lõi.
Đừng tạo các nút bấm giả không có chức năng.
Đừng tạo các trang demo rời rạc không kết nối với nhau.
Hãy xây dựng một hệ thống full-stack thực thụ với:
Frontend
↕
Backend API
↕
Logic Nghiệp vụ (Business Logic)
↕
PostgreSQL
↕
Kho Lưu trữ Đối tượng (Object Storage)
↕
Redis / Tác vụ Chạy nền (Background Jobs)
↕
Dịch vụ Thông báo (Notification Services)
Mọi nút bấm quan trọng phải thực hiện một thao tác thực sự.
Mọi bản ghi quan trọng phải được lưu trữ bền vững vào cơ sở dữ liệu.
Mọi quyền hạn phải được kiểm soát và thực thi ở phía backend.
Mọi bản gửi chính thức phải được quản lý phiên bản.
Mọi thay đổi quan trọng phải được ghi nhật ký kiểm toán.
Mọi thao tác dữ liệu lớn phải được thiết kế để đảm bảo khả năng mở rộng quy mô.
Mọi quy trình làm việc trên di động phải tính đến điều kiện kết nối mạng kém.
Mọi khoản tiền thanh toán phải có thể cấu hình và được liên kết với một quy tắc / văn bản tham chiếu được cấp phép.
Mọi chiến dịch phải có thể cấu hình.
Mọi giai đoạn phải có thể cấu hình độc lập.
Mọi biểu mẫu phải có thể cấu hình động.
Mọi sơ đồ phân cấp tổ chức / địa lý phải có thể cấu hình.
Sản phẩm cuối cùng phải là một Nền tảng Vận hành Thực địa & Chiến dịch Số cấp Huyện (District Administration Digital Campaign & Field Operations Platform) có khả năng tái sử dụng, trong đó Điều tra Dân số 2027 (Census 2027) là một kịch bản triển khai thực tế, chứ không phải là một ứng dụng chỉ dùng riêng cho Điều tra Dân số.
Một điều tôi đặc biệt khuyến nghị:
Đối với một dự án có quy mô lớn như thế này, đừng yêu cầu AI tạo toàn bộ ứng dụng chỉ trong một lần chạy duy nhất. Hãy cung cấp cho AI bản prompt tổng thể ở trên, sau đó yêu cầu nó thực hiện từng mô-đun một, bắt đầu từ cơ sở dữ liệu và kiến trúc hệ thống.
Nền tảng quan trọng nhất là:
Organization → Geography → Workforce → Campaign → Phase → Team → Target → Task → Form → Submission → Verification → Result → Payment
Nếu mô hình dữ liệu đó được thiết kế chuẩn xác, phần còn lại của ứng dụng có thể phát triển mở rộng dần mà không cần phải đập đi xây lại về sau.
M@maarifkhatri91
0
Hệ thống CRM quản lý bệnh nhân mãn tính cho nhà thuốc
Văn bản
Bạn là một kiến trúc sư phần mềm cấp cao và chuyên gia về hệ thống quản lý nhà thuốc.

Hãy thiết kế và xây dựng một hệ thống CRM nhà thuốc riêng tư cho nhà thuốc của tôi tại Mosul, Iraq.

Hệ thống này dùng để quản lý bệnh nhân, thuốc điều trị bệnh mãn tính, lịch hẹn theo dõi tái khám, phân tích bán hàng, hàng tồn kho và quan hệ khách hàng.

Mục tiêu chính

Tạo một hệ thống CRM đơn giản, nhanh chóng, riêng tư giúp tôi ghi nhớ bệnh nhân, nắm được lịch sử dùng thuốc của họ, theo dõi sát các bệnh nhân mãn tính, nhận diện cơ hội bán hàng và cải thiện dịch vụ nhà thuốc mà không cổ vũ việc sử dụng thuốc mất an toàn hoặc không cần thiết.

Người dùng

Hệ thống ban đầu sẽ có một người dùng quản trị viên duy nhất.

Dược sĩ phải là người kiểm soát quyền truy cập vào thông tin bệnh nhân.

Dữ liệu bệnh nhân tuyệt đối không được phép truy cập công khai.

Hồ sơ bệnh nhân cốt lõi

Mỗi bệnh nhân cần có:

- Mã định danh bệnh nhân duy nhất (Unique patient ID)
- Mã QR
- Họ và tên đầy đủ
- Tuổi hoặc ngày sinh
- Giới tính
- Số điện thoại
- Địa chỉ hoặc khu vực sinh sống
- Ghi chú
- Ngày thêm vào hệ thống
- Lần ghé thăm gần nhất
- Ngày theo dõi tiếp theo
- Trạng thái bệnh nhân

Hồ sơ thuốc điều trị

Đối với mỗi bệnh nhân, lưu trữ:

- Tên thuốc
- Hoạt chất chính
- Hàm lượng
- Dạng bào chế
- Liều lượng
- Tần suất sử dụng
- Thời gian dùng thuốc
- Ngày bắt đầu
- Ngày kết thúc
- Người kê đơn
- Lý do sử dụng
- Trạng thái đang dùng hoặc đã ngưng sử dụng
- Ghi chú

Lịch sử dùng thuốc phải luôn được lưu giữ để tôi có thể xem lại các loại thuốc bệnh nhân đã dùng trước đó.

Quản lý thuốc bệnh mãn tính

Cho phép tôi đánh dấu bệnh nhân thuộc diện chăm sóc bệnh mãn tính.

Đối với bệnh nhân mãn tính, hiển thị:

- Các thuốc đang sử dụng
- Các thuốc đã dùng trước đây
- Ngày dự kiến mua thêm thuốc (refill date)
- Ngày mua thuốc gần nhất
- Số ngày kể từ lần mua gần nhất
- Ngày hẹn hỏi thăm / theo dõi
- Đã quá hạn mua thuốc (Missed refill)
- Ghi chú của dược sĩ

Hệ thống cần giúp xác định những bệnh nhân có thể cần được liên hệ theo dõi.

Không tự động đề xuất thay đổi phác đồ điều trị hoặc tự ý ngưng thuốc.

Bảng điều khiển (Dashboard)

Tạo bảng điều khiển hiển thị:

- Tổng số bệnh nhân
- Số bệnh nhân mãn tính đang hoạt động
- Số bệnh nhân đến hạn cần theo dõi
- Số lượt theo dõi bị bỏ lỡ
- Số bệnh nhân đến hạn mua lại thuốc định kỳ
- Bệnh nhân mới
- Bệnh nhân quay lại
- Danh sách cần theo dõi trong ngày hôm nay
- Các giao dịch mua hàng gần đây
- Doanh thu bán hàng
- Lợi nhuận
- Sản phẩm sắp hết hàng (tồn kho thấp)
- Sản phẩm sắp hết hạn sử dụng

Các tính năng CRM

Cho phép tôi:

- Tìm kiếm bệnh nhân theo tên
- Tìm kiếm theo số điện thoại
- Tìm kiếm theo mã ID bệnh nhân
- Quét mã QR
- Mở nhanh hồ sơ bệnh nhân
- Thêm lượt ghé thăm mới
- Thêm thuốc mới
- Chỉnh sửa thông tin thuốc
- Ghi nhận giao dịch mua hàng
- Ghi lại ghi chú của dược sĩ
- Đặt ngày hẹn theo dõi tiếp theo
- Đánh dấu hoàn thành lượt theo dõi
- Xem lịch sử bệnh nhân

Hệ thống mã QR

Mỗi bệnh nhân cần có một mã QR duy nhất.

Việc quét mã QR sẽ mở hồ sơ của bệnh nhân đó bên trong hệ thống CRM đã được xác thực đăng nhập.

Bản thân mã QR không được làm lộ trực tiếp các thông tin nhạy cảm của bệnh nhân.

Tích hợp quản lý tồn kho

Nếu có dữ liệu tồn kho của nhà thuốc, hãy kết nối hệ thống CRM với dữ liệu đó.

Hiển thị:

- Sản phẩm
- Danh mục
- Số lượng tồn kho
- Giá nhập
- Giá bán
- Lợi nhuận
- Biên lợi nhuận
- Mức tiêu thụ hàng ngày
- Số ngày ước tính cho đến khi hết hàng
- Ngày hết hạn sử dụng

Phân tích tiếp thị và CRM

Tạo các phân khúc khách hàng hữu ích như:

- Bệnh nhân mãn tính
- Khách hàng thường xuyên
- Khách hàng lâu không quay lại (không hoạt động)
- Bệnh nhân đến hạn mua thêm thuốc
- Bệnh nhân đến hạn cần theo dõi
- Khách hàng giá trị cao
- Khách hàng mua thuốc không kê đơn (OTC)
- Khách hàng mua thực phẩm bổ sung

Sử dụng các phân khúc này để gợi ý các hành động chăm sóc chuẩn mực đạo đức ngành dược.

Ví dụ:

- Nhắc nhở mua tiếp thuốc điều trị bệnh mãn tính
- Nhắc nhở lịch theo dõi sức khỏe
- Dịch vụ đo và theo dõi huyết áp
- Theo dõi mức độ tuân thủ dùng thuốc
- Đề xuất sản phẩm OTC phù hợp khi thực sự hợp lý về mặt lâm sàng
- Khuyến nghị sản phẩm chăm sóc cá nhân dựa trên nhu cầu thực tế của khách hàng

Không bao giờ gợi ý thuốc hoặc thực phẩm bổ sung không cần thiết chỉ nhằm mục đích tăng doanh số.

Phân tích bán hàng

Theo dõi:

- Doanh số hàng ngày
- Doanh số hàng tuần
- Doanh số hàng tháng
- Lợi nhuận gộp
- Biên lợi nhuận
- Số lượng giao dịch
- Giá trị giao dịch trung bình
- Doanh số theo danh mục
- Doanh số theo từng sản phẩm
- Doanh số thuốc không kê đơn (OTC)
- Doanh số thực phẩm bổ sung
- Doanh số thuốc bệnh mãn tính

Hiển thị xu hướng và nhận diện những thay đổi trong hành vi của khách hàng.

Cảnh báo (Alerts)

Tạo cảnh báo cho các trường hợp:

- Đến hạn theo dõi bệnh nhân
- Bỏ lỡ lịch theo dõi
- Đến kỳ dự kiến mua thêm thuốc
- Trễ hạn mua thêm thuốc
- Tồn kho thấp
- Cận hạn sử dụng (Near expiry)
- Sản phẩm đã hết hạn
- Biến động doanh số bất thường

Quyền riêng tư và bảo mật

Thông tin bệnh nhân là dữ liệu nhạy cảm.

Sử dụng:

- Xác thực đăng nhập (Authentication)
- Lưu trữ cục bộ an toàn hoặc cơ sở dữ liệu được mã hóa
- Phân quyền dựa trên vai trò (RBAC) nếu sau này thêm nhiều người dùng
- Tự động đăng xuất khi hết phiên làm việc (session timeout)
- Sao lưu cơ sở dữ liệu (Database backup)
- Chức năng khôi phục dữ liệu (Restore)
- Nhật ký kiểm toán (Audit log) cho các thay đổi quan trọng

Hệ thống nên hoạt động cục bộ (local) bất cứ khi nào có thể.

Tránh gửi thông tin bệnh nhân tới các dịch vụ AI bên ngoài trừ khi tôi chủ động bật tính năng đó một cách rõ ràng.

Giao diện người dùng

Thiết kế giao diện dành cho dược sĩ cần thao tác nhanh trong những giờ cao điểm đông khách.

Ưu tiên:

- Tìm kiếm nhanh
- Ít thao tác nhấp chuột
- Nút bấm lớn, dễ nhìn
- Dòng thời gian (timeline) của bệnh nhân rõ ràng
- Biểu mẫu nhập liệu đơn giản
- Giao diện thân thiện với thiết bị di động
- Hỗ trợ tiếng Ả Rập và tiếng Anh
- Sử dụng thuật ngữ ngành dược tại Iraq ở những chỗ phù hợp

Các màn hình chính

Tạo:

1. Bảng điều khiển (Dashboard)
2. Danh sách bệnh nhân
3. Hồ sơ chi tiết bệnh nhân
4. Lịch sử dùng thuốc
5. Lịch sử ghé thăm
6. Quản lý theo dõi (Follow-ups)
7. Quản lý tồn kho
8. Phân tích bán hàng
9. Cảnh báo
10. Báo cáo
11. Cài đặt
12. Sao lưu và khôi phục

Dòng thời gian của bệnh nhân (Patient timeline)

Mỗi bệnh nhân cần có một dòng thời gian theo trình tự thời gian bao gồm:

- Thời điểm đăng ký hồ sơ
- Các lần ghé thăm
- Các lần thêm thuốc mới
- Các lần thay đổi thuốc
- Lịch sử mua hàng
- Các lần liên hệ theo dõi
- Ghi chú

Phân tích chuyên sâu (Analytics)

Hệ thống CRM cần tạo ra các nhận định có tính hành động cụ thể thay vì chỉ hiển thị những con số khô khan.

Ví dụ:

"Có 23 bệnh nhân mãn tính dự kiến sẽ cần mua thêm thuốc trong vòng 7 ngày tới."

"Có 11 bệnh nhân chưa quay lại nhà thuốc trong chu kỳ lấy thuốc dự kiến của họ."

"Doanh số thuốc không kê đơn (OTC) đã tăng 14% trong tháng này."

"Danh mục X có doanh số cao nhưng biên lợi nhuận thấp."

"Có 17 sản phẩm có nguy cơ hết hạn sử dụng trước khi bán hết lượng tồn kho dự kiến."

Giải thích lý do vì sao mỗi nhận định lại quan trọng và hành động nào tôi nên cân nhắc thực hiện.

Trợ lý AI

Tích hợp một trợ lý AI tùy chọn có khả năng trả lời các câu hỏi về dữ liệu trong CRM.

Ví dụ:

- Những bệnh nhân mãn tính nào đến hạn mua lại thuốc trong tuần này?
- Những bệnh nhân nào đã trễ hẹn lấy thuốc dự kiến?
- Đâu là 20 sản phẩm mang lại lợi nhuận cao nhất của tôi?
- Những danh mục nào có doanh số cao nhưng biên lợi nhuận thấp?
- Những sản phẩm nào đang có nguy cơ hết hạn?
- Những ngày nào trong tuần có doanh số cao nhất?
- Có gì thay đổi so với tháng trước?
- Những bệnh nhân nào cần được liên hệ hỏi thăm ngay hôm nay?

Trợ lý AI phải phân biệt rõ ràng giữa:

- Dữ kiện có sẵn trực tiếp trong cơ sở dữ liệu
- Các phép tính toán
- Các dự đoán
- Các đề xuất gợi ý

Không bao giờ tự bịa ra thông tin bệnh nhân hoặc dữ liệu bán hàng.

Kiến trúc hệ thống

Đề xuất một kiến trúc sẵn sàng cho môi trường thực tế (production-ready) nhưng đủ đơn giản cho quy mô một nhà thuốc nhỏ.

Ưu tiên kiến trúc ưu tiên cục bộ (local-first architecture).

Giải thích rõ:

- Giao diện phía người dùng (Frontend)
- Xử lý phía máy chủ (Backend)
- Cơ sở dữ liệu (Database)
- Cơ chế xác thực (Authentication)
- Tạo mã QR
- Hệ thống sao lưu
- Cấu trúc API
- Tích hợp AI
- Triển khai (Deployment)
- Bảo mật

Thiết kế lược đồ cơ sở dữ liệu (database schema) trước khi đi vào viết mã triển khai.

Bao gồm mối quan hệ giữa các bảng:

- Bệnh nhân (Patients)
- Thuốc (Medications)
- Lượt ghé thăm (Visits)
- Giao dịch mua hàng (Purchases)
- Sản phẩm (Products)
- Lịch theo dõi (Follow-ups)
- Người dùng (Users)
- Cảnh báo (Alerts)
- Nhật ký kiểm toán (Audit logs)

Các ràng buộc quan trọng

Hệ thống phải luôn giữ được sự đơn giản.

Đừng thêm các tính năng chỉ vì chúng nghe có vẻ ấn tượng.

Mỗi tính năng được đưa vào phải trả lời được ít nhất một trong các câu hỏi sau:

- Nó có giúp tiết kiệm thời gian cho dược sĩ không?
- Nó có giúp cải thiện việc theo dõi chăm sóc bệnh nhân không?
- Nó có giúp giảm thiểu các vấn đề về tồn kho không?
- Nó có giúp nhìn rõ tình hình kinh doanh hơn không?
- Nó có giúp nâng cao chất lượng phục vụ bệnh nhân không?
- Nó có bảo vệ dữ liệu bệnh nhân tốt hơn không?

Trước khi viết mã nguồn triển khai:

1. Xác định đầy đủ các yêu cầu hệ thống.
2. Chỉ ra các yêu cầu còn thiếu.
3. Thiết kế cơ sở dữ liệu.
4. Thiết kế luồng thao tác của người dùng (user workflow).
5. Thiết kế API.
6. Xác định mô hình bảo mật.
7. Xác định phạm vi sản phẩm khả dụng tối thiểu (MVP).
8. Sau đó mới đề xuất kế hoạch triển khai chi tiết.

Hãy xây dựng bản MVP trước tiên.

Đừng thiết kế hệ thống phức tạp hóa quá mức (overengineer).
Y@yakoobhaitham370
0
Công Cụ Xây Dựng Hệ Thống Thiết Kế (Design System) Cho Website
Văn bản

Prompt dùng để sao chép và dán vào tiện ích mở rộng trình duyệt Claude trên Chrome nhằm trích xuất CSS và HTML của trang web để xây dựng và xuất ra tệp markdown Hệ Thống Thiết Kế (Design System)

Phân tích hệ thống thiết kế (design system) của trang web hiện tại bằng cách xem xét các trang chính của nó: trang chủ, 
trang sản phẩm hoặc bảng giá, trang nội dung bên trong, trang biểu mẫu hoặc liên hệ, và 
bất kỳ trang nào có các mẫu giao diện người dùng (UI patterns) đặc thù (nhận xét khách hàng, bảng giá, v.v.).

Ở những nơi có thể, hãy kiểm tra các giá trị CSS thực tế đã được tính toán (computed CSS values thông qua công cụ kiểm tra phần tử) thay vì 
ước lượng bằng mắt thường, để màu sắc, kích thước và khoảng cách đạt độ chính xác cao thay vì 
chỉ mang tính xấp xỉ.

Ghi lại tài liệu cho các hạng mục sau:

- Bảng màu (Color palette): màu chính (primary), màu phụ (secondary), màu nhấn (accent) và các màu trung tính kèm theo giá trị hex/rgb 
  và vị trí sử dụng của từng màu
- Kiểu chữ (Typography): họ phông chữ (font families), độ đậm (weights), kích cỡ (sizes) và chiều cao dòng (line-heights) cho các thẻ từ H1-H6, văn bản 
  thân bài (body text) và chú thích/nhãn (captions/labels)
- Khoảng cách và bố cục (Spacing and layout): thang đo khoảng cách, chiều rộng khung chứa (container widths), cấu trúc lưới (grid structure) và 
  các điểm ngắt đáp ứng (responsive breakpoints)
- Nút bấm và lời kêu gọi hành động (Buttons and CTAs): kiểu dáng nút chính/phụ/cấp ba, bao gồm cả trạng thái di chuột (hover) 
  và trạng thái nhấn giữ (active) nếu nhìn thấy được
- Biểu mẫu và ô nhập liệu (Forms and inputs): kiểu dáng trường nhập, đường viền, trạng thái được chọn (focus states)
- Điều hướng (Navigation): cấu trúc và kiểu dáng thanh đầu trang/điều hướng (header/nav), cấu trúc chân trang (footer)
- Thẻ và khung chứa (Cards and containers): độ bo góc (border-radius), đổ bóng (shadows), đường viền (borders)
- Phong cách biểu tượng (iconography) và hình ảnh minh họa

Đánh dấu bất kỳ sự thiếu nhất quán nào giữa các trang (ví dụ: các kiểu nút bấm khác nhau ở 
những vị trí khác nhau) thay vì chỉ chọn một kiểu rồi bỏ qua phần còn lại.

Xuất kết quả dưới dạng một tệp markdown (.md) duy nhất với các tiêu đề H2 cho từng 
danh mục, bảng biểu cho bảng màu và thang đo kiểu chữ, cùng các khối mã (code blocks) cho 
các giá trị CSS. Hãy cấu trúc tài liệu sao cho lập trình viên hoặc nhà thiết kế có thể sử dụng trực tiếp ngay lập tức. 
Lưu tệp dưới tên [site-name]-design-system.md để tôi có thể xuất nó ra từ luồng hội thoại này.
A@ablum0814
0
Đồng bộ hóa Swagger API
Văn bản

Prompt này tạo một lệnh Claude để kiểm tra và kéo về các thay đổi mới nhất từ điểm cuối (endpoint) Swagger bằng cách so sánh phiên bản trước đó với những thay đổi mới nhất tương tự như `git diff`. Công cụ này đảm bảo các kiểu dữ liệu (types) và tính năng API ở phía frontend luôn được cập nhật đồng bộ với backend khi lập trình viên liên tục cập nhật các điểm cuối API.

# Thiết lập quy trình đồng bộ hóa đặc tả OpenAPI (OpenAPI spec-sync workflow) trong dự án này

Tôi muốn áp dụng cùng quy trình làm việc với đặc tả backend mà tôi đang dùng ở một kho mã nguồn khác: một kịch bản so sánh sự khác biệt (diff) giữa
đặc tả OpenAPI trực tiếp (live) với một bản chụp nhanh (snapshot) lưu cục bộ và xuất ra một báo cáo thay đổi **hướng tới frontend**, cộng với một
lệnh gạch chéo `/api-sync` giúp chuyển hóa báo cáo đó thành một kế hoạch triển khai theo từng giai đoạn.

Hãy tự điền các thông tin sau từ kho mã nguồn trước khi bắt đầu (chỉ hỏi tôi nếu bạn không thể tự tìm ra):

- **Nguồn đặc tả (Spec source)**: hãy tự tìm kiếm — xem Phần 0. Đừng hỏi tôi URL cho đến khi bạn đã tự mình kiểm tra kỹ.
  Bất cứ nguồn nào bạn tìm thấy sẽ trở thành giá trị mặc định của kịch bản, và có thể ghi đè thông qua biến môi trường `OPENAPI_URL`.
- **Đường dẫn bản chụp nhanh (Snapshot path)**: `api-spec/openapi.yaml`  ·  **Đường dẫn báo cáo (Report path)**: `api-spec/CHANGES.md`
- **Thư mục mã nguồn gốc để đối chiếu chéo**: `src/` (điều chỉnh cho phù hợp với cấu trúc của kho mã nguồn này)
- **Thư viện xác thực phản hồi (Response-validation library)**: zod (điều chỉnh nếu kho mã nguồn này sử dụng thư viện khác)
- **Có lưu snapshot trong git không?** Giữ tệp yaml trong danh sách **gitignored** (quá lớn/gây nhiễu lịch sử commit) nhưng **commit
  tệp `CHANGES.md`** — báo cáo được tạo ra chính là bản ghi lưu trữ lâu dài về những gì đã thay đổi và thay đổi khi nào. Đồng thời
  thêm vào gitignore cả `api-spec/openapi-*.yaml` và `api-spec/CHANGES-*.md` (các bản lưu trữ thủ công theo ngày).

Hãy đọc kỹ kho mã nguồn này trước (trình quản lý gói, quy ước đặt tên script, cách viết các lệnh gọi API và schema phản hồi)
và tuân thủ đúng phong cách của nó. Đừng tự bịa ra đường dẫn — hãy dùng lệnh grep để tìm các đường dẫn thực tế.

---

## Phần 0 — tìm đặc tả trước khi bạn viết bất kỳ thứ gì

Hãy làm việc này trước tiên và cho tôi biết bạn đã tìm thấy gì. Đừng đoán mò URL, và đừng hỏi tôi cho đến khi bước tìm kiếm này
hoàn toàn không thu được kết quả nào.

**1. Tài liệu dự án (docs) — nơi ít tốn công nhất và thường chính xác.** `README.md`, `CLAUDE.md`,
`AGENTS.md`, `CONTRIBUTING.md`, bất kỳ tệp nào dưới thư mục `docs/`, `.github/`, `.cursor/rules/`, tệp
nháp `*.http`/`*.rest`, hoặc bản checkout của wiki. URL thường nằm ngay trong phần văn bản hướng dẫn ("API docs:
…/swagger"), trong một bước cài đặt, hoặc nằm cạnh liên kết dẫn tới kho mã nguồn backend:

```bash
grep -rniE 'swagger|openapi|api-?docs|redoc|\/v3\/api-docs' --include='*.md' --include='*.mdx' --include='*.txt' --include='*.http' --include='*.rest' . | grep -v node_modules
```

Hai điểm bẫy cần lưu ý: một **liên kết Swagger UI** (`…/swagger-ui/index.html`, `…/docs`, `…/redoc`) là một trang
HTML chứ không phải tệp đặc tả — hãy suy ra URL dành cho máy đọc từ địa chỉ đó (`/swagger-ui/index.html` →
`/v3/api-docs`, `/docs` → `/openapi.json`, `/redoc` → thuộc tính `spec-url` trong mã HTML của nó) và xác minh lại bằng
lệnh curl. Ngoài ra, một URL trong tài liệu có thể đã **lỗi thời** — hãy xác nhận rằng nó vẫn phản hồi trước khi sử dụng, và báo cho tôi biết nếu
tệp README đang trỏ tới một địa chỉ đã chết.

**2. Một tệp đặc tả đã có sẵn bên trong hoặc nằm gần kho mã nguồn** — thường đã có ai đó lưu sẵn một bản (vendored):

```bash
find . -path ./node_modules -prune -o -iregex '.*\(swagger\|openapi\|api-docs\).*\.\(ya?ml\|json\)' -print
git ls-files | grep -iE 'swagger|openapi|api-docs'
```

Đồng thời kiểm tra cả `node_modules/.cache/`, `.next/cache/`, `dist/`, `build/`, `coverage/` và bất kỳ
thư mục `api/`, `api-spec/`, `docs/`, `schemas/` nào đang nằm trong gitignore — một lần chạy công cụ sinh mã (codegen) trước đó thường để lại một
bản sao tại đây. Một bản sao lưu đệm (cached) cũ vẫn rất hữu ích: nó đóng vai trò là **mốc cơ sở (baseline) để khởi tạo bản chụp nhanh (snapshot)**,
giúp lần chạy diff thực tế đầu tiên mang lại kết quả có ý nghĩa thay vì báo cáo "mọi thứ đều mới". Nếu bạn tìm thấy một bản như vậy, hãy cho biết nó
đã cũ bao lâu (`git log -1` / thời gian sửa đổi tệp mtime) trước khi quyết định tin dùng nó.

**3. Một tệp cấu hình trình sinh mã (generator config) đã chỉ định sẵn nguồn đặc tả** — đây là dấu hiệu có giá trị cao nhất, bởi
nó trỏ thẳng tới bất kỳ URL hoặc đường dẫn nào mà nhóm phát triển thực sự đang sử dụng:

```bash
grep -rniE 'openapi|swagger|api-docs' --include='*.json' --include='*.ts' --include='*.js' --include='*.mjs' --include='*.yaml' --include='*.yml' --include='.env*' --include='Makefile' --include='*.sh' -l . | grep -v node_modules
```

Hãy tìm kiếm cụ thể các tệp: cấu hình `openapi-typescript` / `orval.config.*` / `kubb.config.*` /
`swagger-typescript-api` / `@hey-api/openapi-ts`, một npm script có chữ tương tự `openapi` trong
package.json, URL gốc của API trong các tệp `.env*`, các URL dịch vụ trong `docker-compose.yml`, các bước trong luồng CI workflow, hoặc một
client được sinh tự động đã commit vào repo mà phần chú thích đầu tệp (header comment) có trích dẫn nguồn đặc tả của nó.

**4. Suy ra từ URL gốc của API (API base URL).** Nếu bạn chỉ tìm thấy một URL gốc, hãy dò thử các đường dẫn theo quy ước phổ biến
tương ứng với framework của backend đó trước khi hỏi tôi — FastAPI `/openapi.json`, Spring/springdoc
`/v3/api-docs` (+ `.yaml`), ASP.NET `/swagger/v1/swagger.json`, NestJS `/api-json`, Rails/rswag
`/api-docs/v1/swagger.yaml`, cộng với các đường dẫn thuần túy `/openapi.yaml` và `/swagger.json`:

```bash
curl -sS -o /dev/null -w '%{http_code} %{content_type} %{url_effective}\n' <BASE>/openapi.json
```

Hãy báo cáo lại những đường dẫn nào có phản hồi. Nếu tất cả đều yêu cầu xác thực (auth), hãy nói rõ như vậy — tuyệt đối không nhúng cứng (bake) token vào trong kịch bản.

**5. Không cách nào hiệu quả?** Khi đó hãy hỏi tôi, và cho tôi biết những phương án nào bạn đã kiểm tra và loại trừ.

### Nếu đặc tả không thể truy cập qua giao thức HTTP

Đừng gượng ép sử dụng thiết kế tải qua mạng (fetch). Hãy biến nguồn đặc tả thành một biến `SPEC_SOURCE` duy nhất có thể nhận giá trị là **một URL, một đường dẫn
cục bộ, hoặc một lệnh shell** (ví dụ: lệnh `make openapi` của chính kho mã nguồn backend, hoặc một tệp được sinh ra từ thư mục checkout
ngang hàng), được phân giải theo đúng thứ tự ưu tiên sau: cờ `--to <file>` → biến môi trường `OPENAPI_URL` → giá trị mặc định mà bạn
đã khám phá được. Mọi bước xử lý phía sau — so sánh diff, xuất báo cáo, lưu snapshot — đều giữ nguyên không đổi. Hãy ghi rõ trong tệp `CLAUDE.md`
kho mã nguồn này đang sử dụng nguồn nào và cách làm mới (refresh) nó.

## Phần 1 — `scripts/sync-api.mjs`

Một kịch bản Node ESM đơn lẻ, ít phụ thuộc (`js-yaml` là gói phụ thuộc mới duy nhất; hãy dùng đúng trình quản lý gói
của kho mã nguồn này). Các cờ (flags) dòng lệnh:

```
node scripts/sync-api.mjs               tải bản từ xa (remote) → diff với snapshot → ghi báo cáo + ghi đè snapshot
node scripts/sync-api.mjs --check       chỉ chạy diff, giữ nguyên snapshot, thoát với mã lỗi 1 nếu có sai lệch (thân thiện với CI)
node scripts/sync-api.mjs --from <file> chạy diff so với <file> thay vì so với snapshot
node scripts/sync-api.mjs --to <file>   coi <file> là bản "từ xa" thay vì tải qua mạng (chế độ ngoại tuyến - offline)
node scripts/sync-api.mjs --json        đồng thời in kết quả diff thô dưới dạng JSON ra stdout
```

Thêm `"sync:api": "node scripts/sync-api.mjs"` vào tệp package.json.

**Nếu chưa tồn tại bản snapshot nào**: ghi đặc tả vừa tải về làm snapshot, in thông báo "seeded — re-run after
the backend ships to see a diff" (đã khởi tạo mốc cơ sở — hãy chạy lại sau khi backend cập nhật để xem sự khác biệt), và thoát với mã 0. Không bao giờ báo cáo toàn bộ API là "mới". Ngoại lệ: nếu ở Phần 0
bạn tìm thấy một bản đặc tả cũ hơn được lưu đệm (cached) hoặc lưu sẵn (vendored), hãy khởi tạo snapshot từ **bản cũ đó** và chạy so sánh
diff thực sự với đặc tả trực tiếp (live) ngay trong lần chạy đầu tiên — hãy cho tôi biết ngày tháng của bản sao lưu đệm đó để tôi nắm được
ý nghĩa của mốc cơ sở.

### Những nội dung kịch bản bắt buộc phải so sánh (diff)

Làm phẳng (flatten) `paths` thành một bảng ánh xạ từ `"GET /a/b"` → thao tác (operation) và so sánh sự khác biệt của các thao tác *cũng như*
`components.schemas` một cách tách biệt:

**Các thao tác (Operations)**
- đã thêm (added) / đã xóa (removed) / đã thay đổi (changed)
- tham số (params): các tham số mới (gắn cờ `required` nếu bắt buộc), sự đảo trạng thái giữa bắt buộc và tùy chọn (`required`↔`optional`), các giá trị enum được thêm vào/xóa đi —
  định danh khóa cho mỗi tham số bằng `in:name` (hoặc `ref:Name` đối với các tham số dùng `$ref`), không định danh bằng chỉ mục mảng (array index)
- phần thân yêu cầu (request body) và schema phản hồi thành công (success-response schema): nếu tên `$ref` thay đổi, hãy báo cáo việc đổi tên; nếu
  cấu trúc dữ liệu được viết **nội tuyến (inline)** (không dùng `$ref`), hãy so sánh các thuộc tính của nó ngay tại đây — một schema không tên hoặc được diff tại đây hoặc
  sẽ bị bỏ sót hoàn toàn. Phân giải các lớp bọc `allOf: [$ref]` về tên schema gốc bên dưới, và hiển thị các kiểu hợp (union) `oneOf`/`anyOf`
  dưới dạng `A | B` (việc thêm hoặc bớt một thành phần trong kiểu hợp là một thay đổi hành vi thực sự).
- các mã trạng thái không phải 2xx (non-2xx status codes) mới được thêm vào hoặc bị xóa bỏ
- các thay đổi về yêu cầu bảo mật (security requirement), hoặc mới bị đánh dấu ngừng hỗ trợ (`deprecated`)

**Các cấu trúc dữ liệu (Schemas)**
- các thuộc tính được thêm mới (đánh dấu nếu là required) / bị xóa bỏ / bị đổi kiểu dữ liệu (retyped)
- các giá trị enum được thêm vào hoặc xóa đi (trên bản thân schema và trên từng thuộc tính, bao gồm cả `items.enum`)
- sự đảo trạng thái giữa bắt buộc và tùy chọn (`required`↔`optional`)

### Hai yếu tố làm nên giá trị thực sự của báo cáo này

1. **Trích xuất `error_code` từ văn bản mô tả phản hồi.** Các mã lỗi dành cho máy đọc thường không được định nghĩa
   ở bất kỳ đâu ngoài phần văn bản `description` của từng phản hồi không phải 2xx ("… already an active member
   (already_member)"), vì vậy một nhánh xử lý lỗi mới mà chúng ta cần bổ sung sẽ trông như thể *không hề có gì thay đổi* đối với một
   bộ công cụ chỉ so sánh ở cấp độ schema. Hãy phân tích cú pháp để trích xuất chúng dựa theo **ngữ cảnh chứ không phải từ vựng cố định**: các chuỗi ký tự (tokens) nằm bên trong dấu ngoặc đơn `(...)`, các chuỗi
   nằm sau những cụm từ mang ý nghĩa tương tự `error_code`, và bất kỳ chuỗi viết kiểu snake_case nào xuất hiện trong tập giá trị enum
   `error_code` tường minh của một schema nào đó. **Không** lọc bỏ các chuỗi bị trùng tên với tên trường (field names) hoặc các giá trị enum —
   những sự trùng khớp đó chính xác là các mã lỗi quan trọng nhất. Hãy loại bỏ các chuỗi được giới thiệu sau cụm từ "field X"
   (đó là tên trường chứ không phải mã lỗi). Báo cáo các mã lỗi mới được thêm vào, và đối với một mã lỗi không còn
   được ghi trong tài liệu nữa, hãy dùng lệnh grep tìm `"that_code"` trong mã nguồn và chỉ rõ **tệp nào đang rẽ nhánh xử lý trên mã lỗi đó** —
   bởi đó chính là một nhánh mã chết (dead branch).

2. **Đối chiếu chéo mọi thay đổi với mã nguồn thực tế.** Tải toàn bộ danh sách tệp mã nguồn một lần duy nhất thông qua lệnh
   `git ls-files --cached --others --exclude-standard <src root>` (bao gồm cả các tệp chưa được theo dõi - untracked để một vị trí gọi API
   vừa được thêm vào trong phiên làm việc này vẫn được tính; bỏ qua các tệp có trong danh sách nhưng đã bị xóa khỏi cây thư mục làm việc), sau đó:
   - **Các vị trí gọi hàm (Call sites)** cho một đường dẫn: chuyển đổi các tham số đường dẫn (path params) thành ký tự đại diện cho một phân đoạn đơn lẻ (single-segment wildcards) và bắt buộc
     chuỗi khớp phải kết thúc tại dấu nháy đơn/nháy kép/backtick/`?` để đường dẫn `/orgs/{id}` không bị khớp nhầm với `/orgs/id/archive`.
     Mọi thao tác bị xóa hoặc bị thay đổi đều phải liệt kê các vị trí gọi nó trong mã nguồn, hoặc ghi "⬜ no call site" (không có vị trí gọi).
   - **Các bản sao đối chiếu schema (Schema mirrors)**: tìm tệp chứa bản sao xác thực phản hồi (response-validation mirror) tương ứng với một schema trong đặc tả —
     khớp tên `fooBarSchema` ở bất kỳ đâu, cộng với tên viết kiểu PascalCase trần **chỉ nằm bên trong tệp `schemas.ts`**
     (ở những nơi khác nó sẽ bị trùng lặp với các định danh TypeScript không liên quan). Hãy điều chỉnh quy ước đặt tên sao cho
     khớp với những gì kho mã nguồn này thực sự đang sử dụng — hãy chạy lệnh grep trước tiên.
   - Một thao tác mới có đường dẫn đã được tham chiếu sẵn trong thư mục `src/` sẽ nhận được ghi chú "⚠️ path already
     referenced — check the method" (đường dẫn đã được tham chiếu — hãy kiểm tra lại phương thức HTTP).

### Định dạng báo cáo (`api-spec/CHANGES.md`)

Phần tiêu đề mở đầu gồm ngày khởi tạo, nhãn mốc cơ sở (baseline label), `info.version` của đặc tả, cùng số lượng thao tác và
schema trước→sau; tiếp theo là một bảng tóm tắt nhỏ thống kê số lượng thêm mới/xóa bỏ/thay đổi; sau đó là các phần nội dung chi tiết theo đúng thứ tự sau:

- `## 🔴 Removed operations — breaking if we call them` (Các thao tác đã bị xóa — gây lỗi hỏng ứng dụng nếu chúng ta đang gọi chúng, kèm theo danh sách vị trí gọi)
- `## 🟠 Changed operations` (Các thao tác đã thay đổi, gồm các gạch đầu dòng lồng nhau cho từng thay đổi + danh sách vị trí gọi)
- `## 🟢 New operations` (Các thao tác mới), được nhóm theo khu vực đường dẫn (phân đoạn đầu tiên, có xử lý các trường hợp đặc biệt hợp lý đối với
  các tiền tố của API này) — gồm tóm tắt (summary), schema phản hồi (response schema), schema phần thân yêu cầu (request-body schema)
- `## 🔴 Removed schemas` (Các schema đã bị xóa, kèm theo các tệp mirror tương ứng)
- `## 🟠 Changed schemas` (Các schema đã thay đổi) — **các schema có bản sao mirror trong mã nguồn được xếp lên đầu tiên và in đậm kèm theo đường dẫn tệp mirror**, vì
  đây là những thay đổi có thể làm hỏng quá trình phân tích cú pháp (parsing) ngay lập tức; phần còn lại mang tính chất cung cấp thông tin
- `## 🟢 New schemas` (Các schema mới — liệt kê trên một dòng, phân cách bằng dấu phẩy)

Nếu không có gì thay đổi, phần nội dung chính xác là câu "No changes since the last snapshot." Đặt dòng cảnh báo
"do not edit by hand" (không chỉnh sửa thủ công) ở ngay đầu tệp.

Hãy viết chú thích (comment) đầy đủ trong kịch bản ở những chỗ có quyết định xử lý không hiển nhiên (thuật toán heuristic trích xuất error_code, điểm neo kết thúc
của bộ khớp đường dẫn, lý do tại sao lại bao gồm cả các tệp untracked) — để chính tôi trong tương lai đọc lại và hiểu rõ.

## Phần 2 — `.claude/commands/api-sync.md`

Một lệnh gạch chéo (`/api-sync [scope]`, tham số scope là tùy chọn, đồng thời chấp nhận cả từ khóa `implement`) dùng để thực thi
quy trình làm việc này. Phần frontmatter gồm: `description` + `argument-hint`. Các bước thực hiện:

1. **So sánh (Diff)** — chạy lệnh `npm run sync:api`, đọc tệp `api-spec/CHANGES.md`. Chỉ rõ hai quyết định đánh giá
   mà báo cáo có thể gắn cờ cảnh báo nhưng không thể tự kết luận thay con người: một **phần thân yêu cầu (request body)** bị thay đổi tại một vị trí gọi hàm đang hoạt động là
   điều cần phải xử lý ngay cả khi không có tệp schema mirror (vì chúng ta tự tạo phần thân yêu cầu bằng tay), và một mã **`error_code`** mới là
   một nhánh xử lý mà chúng ta chưa có — nếu đó là lỗi gắn với một trường nhập liệu cụ thể (field error) thì nó phải được hiển thị trực tiếp ngay tại trường đó (inline), chứ không
   chỉ hiện thông báo nổi (toast). Nếu báo cáo ghi không có thay đổi nào, hãy thông báo như vậy và dừng lại ngay — đừng tự vẽ thêm việc.
2. **Phân loại mọi mục thay đổi** vào các nhóm: Breaking (P0 - Gây lỗi nghiêm trọng) · Silently wrong — một schema có bản sao mirror vừa có thêm
   trường bắt buộc hoặc một kiểu enum có thêm các giá trị mới mà bộ xác thực hiện tại của chúng ta sẽ từ chối (P0 - Sai ngầm) · Now-incomplete — một
   phần thân yêu cầu tạo thủ công vừa có thêm trường mới, hoặc xuất hiện một `error_code` mới mà chúng ta chưa rẽ nhánh xử lý (P1 - Nay chưa hoàn chỉnh) ·
   Un-mocks a screen (P1 - Thay thế dữ liệu giả lập bằng API thật cho màn hình) · Extends a screen (P2 - Mở rộng tính năng màn hình) · Net-new feature (P3 - Tính năng hoàn toàn mới) · Backend-only (bỏ qua - chỉ liên quan tới backend).
   Tuyệt đối không bỏ sót bất kỳ mục nào; nếu có mục không khớp với nhóm nào cả, hãy liệt kê nó dưới dạng một câu hỏi mở. Hãy xác minh từng
   phân loại trực tiếp với mã nguồn thay vì phỏng đoán — mở tệp mirror được nêu tên, dùng lệnh grep tìm
   dữ liệu giả lập (mock fixture), và xác nhận màn hình đó thực sự tồn tại.
3. **Viết kế hoạch triển khai** — thêm một mục có ghi ngày tháng vào tệp `ROADMAP.md` (hoặc tệp tương đương trong kho mã nguồn này; hãy tạo mới nếu
   chưa có), được sắp xếp theo đúng thứ tự ưu tiên trên và chia thành các giai đoạn (phases) sao cho mỗi giai đoạn có thể được phát hành độc lập. Với
   mỗi mục: nêu rõ các điểm cuối (endpoints) và các tệp cần thay đổi, người dùng có thể làm được việc gì sau khi cập nhật mà hiện tại họ chưa làm được
   (mục đích thực sự của công việc — chứ không viết kiểu "kết nối endpoint X"), và liệu mục đó có đang bị chặn (blocked) hay không và bị chặn bởi ai.
   Mỗi mục viết gọn trên một dòng. Sau đó cập nhật bất kỳ tài liệu theo dõi tiến độ/độ phủ nào mà kho mã nguồn này đang duy trì.
4. **Báo cáo lại trong khung trò chuyện (chat)** — tóm tắt những gì phía backend vừa phát hành trong một đoạn văn ngôn ngữ tự nhiên dễ hiểu, bất kỳ điểm nào
   hiện đang bị lỗi kèm theo tên tệp cần sửa ngay, danh sách các giai đoạn triển khai mỗi giai đoạn một dòng, và những câu hỏi thực sự cần thiết dành riêng cho
   lập trình viên backend. Dừng lại ở đó; chỉ khi đối số truyền vào có chứa từ khóa `implement`, bạn mới tiến hành xây dựng **duy nhất Giai đoạn 1 (Phase 1)**,
   sau đó chạy lệnh kiểm tra kiểu dữ liệu (typecheck) + kiểm tra quy tắc mã nguồn (lint) của kho mã nguồn này rồi báo cáo kết quả trước khi tiếp tục.

## Phần 3 — Tích hợp vào dự án

- Thêm các mục cần thiết vào tệp gitignore.
- Thêm một mục ngắn có tiêu đề **Backend-change workflow** vào tệp `CLAUDE.md` (tạo mới tệp này nếu chưa có): giải thích rõ
  bản chụp nhanh (snapshot) được lưu cục bộ và nằm trong gitignore, `CHANGES.md` là bản ghi được commit vào git, `CHANGES.md` được
  sinh tự động nên tuyệt đối không bao giờ chỉnh sửa bằng tay, chạy lệnh `/api-sync` khi lập trình viên backend thông báo vừa phát hành thay đổi mới,
  dùng lệnh `npm run sync:api -- --check` để phát hiện sự sai lệch (drift), và duy trì thói quen lưu trữ một bản
  `api-spec/openapi-YYYY-MM-DD.yaml` có gắn ngày tháng trước mỗi đợt thay đổi lớn của backend để làm mốc tham chiếu được commit vào kho mã nguồn.
- Khởi tạo bản chụp nhanh (snapshot) bằng cách chạy kịch bản một lần, và cho tôi xem báo cáo đầu tiên — kèm theo một dòng
  ghi chú ngắn cho biết đặc tả được lấy từ đâu và nếu bạn khởi tạo từ một bản sao lưu đệm (cached copy), hãy cho biết bản sao đó đã cũ bao lâu.
N@nurullah
0
Video
Tôi là Pragati, sinh viên BCA trường Đại học Shrinath, hãy tạo một video giới thiệu trang web portfolio cho tôi
Tôi là Pragati, một sinh viên ngành Cử nhân Ứng dụng Máy tính (BCA) đến từ trường Đại học Shrinath, hãy thiết kế và tạo video giới thiệu trang web hồ sơ năng lực (portfolio) cho tôi 
P@pragatitiwary15
0
Kiểm Toán Luồng Thanh Toán Dựa Trên Clarity
Văn bản
# Kiểm Toán Luồng Giỏ Hàng & Thanh Toán Dựa Trên Clarity

## Cấu hình (điền thông tin trước khi sử dụng)
- CLARITY_MCP: clarity
- START_DATE: {date:last 14 days}
- PAGES: {pages:"/sepet", "/odeme", "/sonuc"}
- DEVICES: device
- PAYMENT_MODEL: payment_model
- AUXILIARY_TOOLS (tùy chọn — xóa bất kỳ dòng nào bạn không sử dụng):
  - Theo dõi lỗi (ví dụ: Sentry, Bugsnag, Rollbar): error_tracking_mcp
  - Hiệu năng/APM (ví dụ: New Relic, Datadog, Grafana): performance_mcp
  - Nhật ký hệ thống - Logs (ví dụ: Elastic, Loki): logs_mcp
  - Phân tích/phễu chuyển đổi (ví dụ: GA4, Mixpanel, Amplitude): analytics_mcp
  - Công cụ khác: other_mcps
- TECHNICAL_NOTES (tùy chọn): [stack, known constraints, special business rules]

## Vai trò
Bạn là một chuyên gia phân tích tỷ lệ chuyển đổi/UX thương mại điện tử. Mục tiêu: xác định mọi yếu tố
gây chặn, làm chậm hoặc khiến người dùng từ bỏ luồng từ giỏ hàng → địa chỉ/vận chuyển →
thanh toán → xác nhận đơn hàng, đồng thời lập một báo cáo sắp xếp theo mức độ ưu tiên mà bất kỳ ai
trong đội ngũ cũng có thể đọc hiểu.

## Nguyên tắc sử dụng công cụ
- CLARITY_MCP là nguồn dữ liệu chính. Các bản ghi phiên truy cập (session recordings), bản đồ nhiệt (heatmaps) và các tín hiệu
  tự động (rage click, dead click, quick back, lỗi JS, cuộn trang quá mức) đều được lấy
  từ đây. Mọi phát hiện bắt buộc phải có ít nhất một phiên Clarity làm bằng chứng.
- Các công cụ phụ trợ dùng để xác minh và tìm nguyên nhân gốc rễ, không dùng để khám phá ban đầu:
  - Theo dõi lỗi (Error tracking) → khi Clarity cho thấy có lỗi JS hoặc hành vi "không có gì xảy ra",
    hãy tìm kiếm các sự cố khớp trong cùng khung thời gian và trang đó;
    thu thập stack trace, số lượng người dùng bị ảnh hưởng, lần xuất hiện đầu tiên/cuối cùng, và bản phát hành (release).
  - APM → khi triệu chứng là "chậm / vòng xoay chờ tải / hết thời gian chờ (timeout)", hãy kiểm tra các điểm cuối
    (endpoints) liên quan trong cùng khung thời gian để xem độ trễ, tỷ lệ lỗi hoặc sự sụt giảm thông lượng.
  - Nhật ký (Logs) → kiểm tra các lỗi máy chủ hoặc các lệnh từ chối do quy tắc nghiệp vụ khớp với
    dấu thời gian của một phiên truy cập cụ thể.
  - Phân tích (Analytics) → đối chiếu xác nhận dữ liệu phễu của Clarity với một nguồn thứ hai.
- Khi tìm kiếm dữ liệu khớp, hãy thu hẹp khung thời gian trong khoảng ±5 phút xung quanh phiên Clarity
  đó, lọc theo trang/tuyến đường (route) và theo thiết bị/trình duyệt nếu có thể.
- Nếu một công cụ chưa được cấu hình, không thể kết nối hoặc không trả về kết quả nào, hãy ghi rõ "không
  thể xác minh bằng X" trong báo cáo và tiếp tục. Không cố gắng sử dụng một
  công cụ chưa được cấu hình.

## Quy trình làm việc
1. Bức tranh tổng thể: đối với PAGES, hãy lấy tổng số phiên, tỷ lệ lỗi JS, tỷ lệ rage/dead click,
   tỷ lệ quick back và thời gian trung bình trên trang. Xác định bước chuyển tiếp
   có tỷ lệ rơi rụng (drop-off) cao nhất.
2. Sử dụng bộ lọc tín hiệu để liệt kê các phiên trên những trang liên quan; bắt đầu
   từ nơi có mật độ tín hiệu cao nhất, xem xét ít nhất 20 bản ghi phiên. Nếu có ít
   hơn 20 bản ghi, hãy xem toàn bộ.
3. Đối với mỗi bản ghi, hãy ghi chú: bước thực hiện, ý định của người dùng, chuyện gì đã xảy ra (báo lỗi,
   nút bấm không phản hồi, vòng lặp, chuyển hướng bất ngờ, giỏ hàng bị đặt lại về trống), người dùng
   đã làm gì tiếp theo, dấu thời gian, thiết bị/trình duyệt.
4. Chuyển các quan sát đơn lẻ thành các mẫu lặp lại (patterns); nếu cùng một vấn đề xuất hiện trong
   nhiều bản ghi, hãy gộp chung thành một phát hiện và nêu rõ có bao nhiêu phiên
   gặp tình trạng đó.
5. Xác minh chéo từng mẫu lặp lại với các công cụ phụ trợ đã cấu hình. Nếu không
   tìm thấy dữ liệu khớp, hãy ghi rõ như vậy; phát hiện đó vẫn được giữ nguyên và nguyên nhân gốc rễ ghi là "chưa rõ" (unknown).
6. Kiểm tra theo chiều ngược lại: nếu một công cụ phụ trợ cho thấy một đợt tăng vọt rõ rệt hoặc một
   sự cố mới có tần suất cao trong kỳ, hãy tìm các phiên Clarity
   trùng khớp với thời điểm đó và báo cáo tác động thực tế lên người dùng.
7. Chủ động tìm kiếm các trường hợp sau:
   - Các phiên mà bước chuyển tiếp sang màn hình thanh toán không bao giờ kích hoạt hoặc bị trễ
   - Nếu PAYMENT_MODEL là redirect/iframe: các lỗi, trang trắng hoặc giỏ hàng bị trống rỗng
     khi quay trở lại từ cổng thanh toán (việc bản ghi tự ngắt ngay tại thời điểm chuyển hướng
     sang bên thứ ba là bình thường và không tính là một phát hiện lỗi)
   - Lỗi kiểm tra hợp lệ biểu mẫu bị ẩn (người dùng nhấn "tiếp tục" nhưng không có gì xảy ra)
   - Nhấp từ 3 lần trở lên vào nút thanh toán/tiếp tục mà không chuyển bước
   - Tổng tiền giỏ hàng không cập nhật sau khi thay đổi giỏ hàng, hoặc giỏ hàng tự dưng bị làm trống
   - Không thể chạm tới nút kêu gọi hành động (CTA) trên điện thoại do bàn phím ảo hoặc thanh cố định dưới đáy che khuất
   - Bị kẹt ở bước nhập mã giảm giá/khuyến mãi
   - Bị đẩy qua lại hoặc rơi vào vòng lặp ở màn hình chọn đăng nhập/mua hàng không cần tài khoản
   - Thanh toán có vẻ đã thành công nhưng không hiện xác nhận đơn hàng (luôn xếp mức P0)

## Phân loại mức độ ưu tiên
- P0: chặn hoàn toàn luồng thanh toán và lặp lại nhiều lần
- P1: làm cho việc hoàn tất đơn hàng trở nên khó khăn hơn đáng kể
- P2: gây cản trở nhưng vẫn có thể hoàn tất đơn hàng
- P3: lỗi thẩm mỹ giao diện
Đối với mọi phát hiện, hãy nêu rõ mức độ phổ biến (tỷ lệ % và phân bổ theo thiết bị). Các phát hiện được xác minh
thêm bởi một công cụ phụ trợ có độ tin cậy cao hơn một bậc so với các phát hiện chỉ dựa trên Clarity;
hãy thể hiện điều này trong cột "mức độ bằng chứng" (Chỉ Clarity / Clarity + tool_name).
Những vấn đề chỉ xuất hiện trong một phiên duy nhất nhưng có vẻ nghiêm trọng sẽ được đưa vào danh sách "Cần
xác minh" (To verify) riêng biệt — không trộn lẫn chúng vào nhóm P0.

## Định dạng báo cáo
Tệp lưu: `reports/checkout-audit-<date>.md`, tiếng Anh, định dạng markdown.
1. Tóm tắt điều hành (Executive summary) — ngôn ngữ phi kỹ thuật, tối đa 5 gạch đầu dòng:
   vấn đề → số lượng người dùng bị ảnh hưởng → tác động kinh doanh ước tính
2. Bảng tỷ lệ rơi rụng theo luồng (Flow drop-off table) — bước → số lượng phiên → % đi tiếp sang bước kế tiếp
3. Bảng tổng hợp phát hiện (Findings table) —
   ID | Mức ưu tiên | Bước | Vấn đề (ngôn ngữ dễ hiểu) | Số phiên bị ảnh hưởng | Thiết bị | Mức độ bằng chứng | ID phiên ví dụ
4. Phụ lục dành cho lập trình viên (Developer appendix) — ứng với từng phát hiện: quan sát thực tế, bằng chứng từ các công cụ
   phụ trợ (liên kết sự cố, dữ liệu điểm cuối/độ trễ, dòng nhật ký — nếu có), nguyên nhân
   kỹ thuật có khả năng xảy ra (được gắn nhãn rõ là diễn giải), component/điểm cuối nghi ngờ,
   hành động khuyến nghị, cách thức xác minh lại
5. Danh sách cần xác minh thêm (To-verify list)
6. Hạn chế về dữ liệu (Data limitations) — những công cụ nào không thể kiểm tra, cỡ mẫu nhỏ,
   điểm mù dữ liệu, các giới hạn của bộ lọc ngày tháng

## Quy tắc
- Tuyệt đối không viết ra một phát hiện nếu không có bản ghi phiên (recording) làm bằng chứng.
- Tách biệt rõ giữa quan sát thực tế và phần diễn giải: "đã nhấp 4 lần, trang không
  thay đổi" là một quan sát; "có khả năng do API hết thời gian chờ (timeout)" là một sự diễn giải —
  hãy gắn nhãn rõ ràng như vậy.
- Trình bày sự trùng khớp giữa các công cụ dưới dạng "khung thời gian giao nhau", tuyệt đối không khẳng định ngay đó là quan hệ nhân quả.
- Nếu thiếu dữ liệu, hãy nêu rõ điều đó; không lấp đầy khoảng trống bằng sự phỏng đoán. Nếu
  không rõ nguyên nhân kỹ thuật, hãy viết là "unknown, needs developer review" (chưa rõ, cần lập trình viên kiểm tra).
- Giữ nguyên chính xác các ID phiên, ID sự cố, đường dẫn điểm cuối (endpoint paths) và các URL như bản gốc.
- Lưu trữ dữ liệu thô kéo về từ mỗi công cụ trong thư mục `reports/raw/<tool>/`.
Web Development
A@ahmetkorkmaz3
0
Tạo trang web ngân hàng với nhiều chức năng mang tên FATE BANK
Văn bản

Một câu lệnh tạo trang web ngân hàng

Tôi muốn có một câu lệnh (prompt) tạo ứng dụng ngân hàng thật chuyên nghiệp và hoàn thiện hơn. Tôi muốn đặt tên ngân hàng là FATE BANK 
F@froshoro
0
Tạo trang web
Văn bản

Tạo một trang web hoạt động đầy đủ chức năng cho "PS5 — Nền Tảng Trí Tuệ Dấu Chân Carbon" 1. Tài khoản và hồ sơ người dùng 2. Công cụ tính lượng khí thải carbon 3. Bảng điều khiển tương tác 4. Trình lập kế hoạch cắt giảm 5. Mục tiêu và thử thách 6. Báo cáo có thể tải xuống

Tài khoản và hồ sơ người dùng dành cho cá nhân hoặc các đội nhóm trong khuôn viên trường học.
Công cụ tính lượng khí thải carbon bao gồm điện năng, đi lại, thực phẩm và rác thải, kèm theo các hệ số tính toán được nêu rõ ràng.
Bảng điều khiển tương tác hiển thị lượng phát thải theo từng danh mục và xu hướng biến động theo thời gian.
Trình lập kế hoạch cắt giảm nơi người dùng so sánh các kịch bản khác nhau, chẳng hạn như chuyển đổi phương tiện di chuyển hoặc giảm mức tiêu thụ điện.
Mục tiêu và thử thách có tính năng theo dõi tiến độ và bảng xếp hạng giữa các đội nhóm.
Báo cáo có thể tải xuống tóm tắt lượng phát thải và các hành động được đề xuất.
S@swaroopxxbevinal
0
Tái cấu trúc và Hoàn thiện Trang web Doanh nghiệp
Văn bản
Hãy đóng vai một lập trình viên full-stack xuất sắc và chuyên gia UI/UX. Cập nhật, tái cấu trúc và hoàn thiện hệ thống quản lý dự án và kho vận doanh nghiệp của chúng tôi với 11 tính năng và sửa đổi toàn diện dưới đây. Đảm bảo quản lý trạng thái tuyệt đối bằng React hooks, xác thực dữ liệu nghiêm ngặt, luồng công việc động và hiển thị có điều kiện (conditional rendering) với độ chính xác cao.

1. Cô lập Đăng nhập Đa Dự án Đa Thuê bao (Multi-Tenant Multi-Project Login Isolation)
* Hành vi: Triển khai quy tắc xác thực đa thuê bao dựa trên tổ hợp duy nhất gồm Tên Công ty (Company Name), Tên Dự án (Project Name) và Mật khẩu (Password).
* Logic: Nếu người dùng A đăng nhập với Công ty A và Dự án CC, họ phải nhìn thấy tập dữ liệu A riêng biệt. Nếu người dùng B đăng nhập với Công ty B và Dự án CC, hệ thống phải coi đây là một dự án duy nhất hoàn toàn tách biệt vì Tên Công ty khác nhau. Ngăn chặn triệt để tình trạng nhiễm chéo dữ liệu giữa các công ty khác nhau có sử dụng tên dự án trùng nhau.

2. Giao diện Menu Yêu cầu Kho đã nhận (Store Request Received) & Nhãn Cột
* Luồng trang: Trên Trang Kho (Store Page) -> Menu Yêu cầu Đã nhận (Request Received Menu) -> phần Xem (View):
* Cập nhật UI: Hiển thị phần Mô tả (Description) của vật tư. Đổi tên tiêu đề cột Parameter thành "Unit", và đổi tên tiêu đề cột Note thành "Remark".
* Hiển thị dữ liệu: Đảm bảo dữ liệu của cột "Unit" và "Quantity (QTY)" BẮT BUỘC phải hiển thị đầy đủ và dễ đọc đối với người dùng dưới các cột tương ứng. Không được ẩn các chi tiết giao dịch cốt lõi này.
* Nhận diện thương hiệu ở tiêu đề (Header Branding): Liên kết động Tên Công ty đã nhập lúc đăng nhập vào bố cục tiêu đề của các phiếu SR, PR và toàn bộ chứng từ trong hệ thống.

3. Xác thực Trường Dữ liệu Chứng từ & Tệp Đính kèm Tùy chọn
* Xác thực: Khi gửi Phiếu Yêu cầu Vật tư Kho (Store Requisition - SR), Bóc tách Khối lượng Vật tư (Material Take-Off - MTO) hoặc Phiếu Xuất Kho (Store Issue Voucher - SIV), hãy áp dụng cơ chế kiểm tra hợp lệ nghiêm ngặt yêu cầu tất cả các trường nhập liệu cấu trúc trên biểu mẫu phải được điền đầy đủ.
* Cơ chế Đính kèm: Thao tác tải lên tài liệu PDF hoàn toàn là TÙY CHỌN (Không bắt buộc). Người dùng có thể gửi biểu mẫu thành công mà không cần tệp đính kèm.
* Thao tác với tệp: Nếu người dùng chọn đính kèm tệp, hãy cung cấp liên kết Nhấn để Xem (Click to View) cho các tệp PDF đã tải lên, nút Xóa (Delete) để gỡ bỏ tệp đã chọn trước khi gửi, và nút điều hướng Quay lại (Back) hoạt động đầy đủ để hủy thao tác.

4. Luồng Công việc Liên trang từ MTO sang Kho & Tự động hóa Dữ liệu
* Thông báo & Trạng thái ban đầu: Khi một phiếu MTO được chuyển tới đơn hàng dự án, hãy kích hoạt Huy hiệu Thông báo Đỏ (Red Notification Badge) trên Menu MTO của dự án đích. Bên trong menu này, chỉ hiển thị hai tùy chọn: Ready và View.
* Thao tác PDF Xuất Tức thì (Instant Out PDF): Nhấn vào View sẽ mở ra một cửa sổ (modal) hiển thị dữ liệu giao dịch được kết xuất thuần túy dưới định dạng PDF "INST_OUT". Sau khi kiểm tra xong, người dùng nhấn vào nút Ready.
* Ánh xạ Vật tư: Khi nhấn Ready, hệ thống phải tự động đưa dữ liệu vật tư được yêu cầu vào dòng của bảng REF_OUT thông qua một bộ chọn thả xuống (drop-down selector) động.
* Chuyển tiếp Trạng thái SR: Tự động chuyển trạng thái trên Trang SR sang "Ready to Issue".

5. Luồng Hậu cần & Điều phối cho SR ở trạng thái "Ready to Issue"
* Cửa sổ Hậu cần (Logistics Modal): Trên Trang SR, khi một đơn hàng đạt tới trạng thái "Ready to Issue", việc nhấn vào nút View tương ứng phải mở ra Biểu mẫu Điều phối Hậu cần (Logistics Dispatch Form) chuyên biệt.
* Đầu vào của Người dùng: Nhân viên vận hành trên trang này phải điền đầy đủ các trường siêu dữ liệu vận chuyển hậu cần động: "Receiver / Driver Name", "Dispatch Date", "Departure Time", và biển số phương tiện vận chuyển "Plate No".
* Điều hướng Dữ liệu: Khi nhấn nút hành động Send trên mô-đun điều phối này, hệ thống phải đóng gói tập dữ liệu hậu cần đó và định tuyến an toàn trực tiếp sang thiết bị đầu cuối nhà kho trên Trang Kho (Store Page).
H@hayebra073
0
Kiểm Toán Mức Độ Trưởng Thành Trước Tác Nhân Tiêu Thụ Khắc Nghiệt Cho Website + Máy Chủ MCP
Văn bản

Một prompt tác vụ dựa trên bằng chứng giúp kiểm toán, chấm điểm và khắc phục khả năng chống chịu của một trang web cùng máy chủ MCP của nó trước Googlebot, các trình thu thập dữ liệu AI và các tác nhân LLM hoạt động dồn dập.

VAI TRÒ
Bạn là một kỹ sư cấp cao đang thực hiện kiểm toán mức độ trưởng thành (sức khỏe SEO/thu thập dữ liệu, bảo mật, khả năng phục hồi, mức độ sẵn sàng cho tác nhân AI)
cho một trang web và máy chủ MCP (Model Context Protocol) của trang web đó. Hãy làm việc như một kiểm toán viên độc lập: ưu tiên bằng chứng trước tiên,
không suy đoán, khắc phục những gì có thể và kiểm thử lại.

ỦY QUYỀN
Chỉ kiểm toán các hệ thống mà owner_or_authorized_party sở hữu hoặc đã ủy quyền rõ ràng cho bạn kiểm thử.
Chỉ chạy các bài kiểm thử chịu tải (load), kiểm thử nhiễu (fuzzing) và kiểm thử mô phỏng tấn công trên môi trường STAGING. Đối với môi trường thực tế (production), chỉ thực hiện thu thập dữ liệu ở chế độ chỉ đọc (read-only), có giới hạn tần suất (rate-capped)
và chỉ khi có sự chấp thuận rõ ràng của tôi. Không thực hiện thanh toán thật, không đặt chỗ hay đặt đơn hàng thật, không dùng dữ liệu cá nhân thật.

NGỮ CẢNH
- Trang web: site_url   Staging: staging_url   Điểm cuối MCP: mcp_url   Kho mã nguồn (Repo): repo_path
- Loại hình kinh doanh và quy mô danh mục: e.g. travel/e-commerce/marketplace, ~N pages, ~N products
- Ngôn ngữ/khu vực và tiền tệ: locales_and_currencies
- Các trình khách LLM mục tiêu: e.g. Claude, ChatGPT, Gemini
- Tài khoản/token kiểm thử: test_credentials
- Các ràng buộc và quy chế tuân thủ: e.g. GDPR, CCPA, PCI DSS, local law
Hãy giả định rằng các tác nhân tiêu thụ sẽ hoạt động rất gắt gao: Googlebot, các trình thu thập dữ liệu AI (AI crawlers), các bộ truy xuất AI do người dùng kích hoạt, các công cụ cào dữ liệu (scrapers), và các tác nhân LLM liên tục
thử lại, lặp vòng, chạy song song và gửi các đối số sai định dạng.

QUY TẮC
1. Đọc trước tiên: kho mã nguồn, định nghĩa OpenAPI/công cụ, robots.txt, sơ đồ trang web (sitemaps), khuôn mẫu giao diện (templates), tiêu đề phản hồi (response headers). Lập danh mục kiểm kê trước khi kiểm thử.
2. Mọi nhận định đều cần có bằng chứng (câu lệnh, kết quả đầu ra, nhật ký (log), tệp:dòng, URL). Không có bằng chứng = chưa đạt.
3. Đánh dấu bất kỳ mục nào bạn không thể kiểm thử là "NOT RUN + lý do". Tuyệt đối không che giấu các lỗi thất bại.
4. Xác minh các phiên bản, đặc tả kỹ thuật và nguyên tắc của công cụ tìm kiếm đối chiếu với tài liệu chính thức trước khi nêu ra.
5. Hỏi ý kiến trước khi chạy các bài kiểm thử có tính phá hủy hoặc lưu lượng lớn. Khắc phục các phát hiện mức độ nghiêm trọng (critical/high), kiểm thử lại và ghi nhận kết quả trước/sau.
6. Bắt đầu bằng một kế hoạch kiểm thử gồm 10 mục và một danh sách tác vụ, sau đó mới thực thi.

CÁC HẠNG MỤC KIỂM THỬ

A. Sức khỏe thu thập dữ liệu và lập chỉ mục (Crawl and index health)
- Truy xuất tệp robots.txt và tất cả các sơ đồ trang web (sitemaps); đếm số lượng URL theo từng loại; đối chiếu với số lượng trang kỳ vọng. Báo cáo các URL trong sitemap bị lỗi
  404/chuyển hướng (redirect)/noindex/chỉ định canonical sang nơi khác, các trang có thể lập chỉ mục nhưng bị thiếu trong sitemap, và các trang mồ côi (orphan pages).
- Thu thập dữ liệu dưới danh nghĩa Googlebot (User-Agent điện thoại thông minh) và một bot thông thường ở tần suất lịch sự: mã trạng thái, chuỗi chuyển hướng, lỗi soft 404,
  trùng lặp tiêu đề/mô tả, thẻ canonical, tính tương hỗ của hreflang (+ x-default), phân trang, các URL lọc đa diện/tìm kiếm/tham số
  (bẫy thu thập dữ liệu (crawl traps), lịch vô hạn), tính nhất quán của URL/slug và hành vi chuyển hướng 301 đối với các biến thể.
- Kết xuất (Rendering): so sánh HTML thô với DOM đã kết xuất; xác nhận nội dung quan trọng, liên kết, dữ liệu có cấu trúc và giá cả không bị phụ thuộc hoàn toàn vào JS.
- Tính tất định đối với Bot (Bot determinism): truy xuất lặp lại các trang chính; kiểm tra xem việc ngẫu nhiên hóa/cá nhân hóa có cung cấp cho bot nội dung không ổn định hoặc
  khác biệt đáng kể hay không (rủi ro che giấu nội dung - cloaking).
- Dữ liệu có cấu trúc (Structured data): xác thực JSON-LD (Organization, Product/Offer, Hotel/Place, BreadcrumbList, AggregateRating, v.v.) về mặt cú pháp,
  các thuộc tính bắt buộc và tính nhất quán với nội dung hiển thị; kiểm tra việc tuân thủ chính sách đánh dấu bài đánh giá (review-markup).
- Hiệu năng: chạy Lighthouse (di động) trên 30 khuôn mẫu trang đại diện; báo cáo các chỉ số LCP/INP/CLS. Sử dụng dữ liệu Search Console nếu được cung cấp.
- robots.txt: phân tích cú pháp bằng một bộ phân tích thực sự; xác minh quy tắc cho từng bot (Googlebot, GPTBot, ClaudeBot, Google-Extended, CCBot, v.v.), sự tương đương giữa
  các nhóm dành riêng cho từng bot và nhóm mặc định, đồng thời đảm bảo các đường dẫn nhạy cảm (thanh toán, tài khoản, API nội bộ) vẫn bị chặn.
  Xác nhận chính sách huấn luyện AI/đầu vào AI (Content-Signal hoặc tương đương) là có chủ đích.
- Vệ sinh Sitemap: độ chính xác của lastmod, giới hạn kích thước (50 nghìn URL/50MB), nén gzip, kiểu nội dung (content types), sitemap hình ảnh/video.
- Mức độ sẵn sàng cho tìm kiếm AI: xác minh các User-Agent của trình truy xuất AI/bot tìm kiếm nhận được mã 200 (không bị thử thách WAF chặn, không bị lỗi 403/429 oan); xem xét tệp llms.txt và khả năng kết xuất văn bản sạch.

B. Khả năng chống chịu trước Bot, WAF và tải cao (trên staging)
- k6/locust: tải thông thường, tải đột biến gấp 10 lần (10x spike), ngâm tải trong 1 giờ (1-hour soak), mô phỏng trình thu thập dữ liệu hỗn hợp (Googlebot + nhiều User-Agent của bot AI), các trình khách phản hồi chậm (slow clients).
- Hành vi bộ nhớ đệm (Cache): tỷ lệ trúng đích (hit ratio), khóa bộ nhớ đệm (cache keys) so với tham số truy vấn, cơ chế stale-while-revalidate; bảo vệ các điểm cuối về giá/tình trạng còn hàng/báo giá
  (robots.txt không phải là công cụ bảo mật).
- Khuếch đại luồng thượng nguồn (Upstream amplification): số lệnh gọi về backend/nhà cung cấp trên mỗi lượt xem trang và mỗi lượt thu thập dữ liệu; các bot không được phép kích hoạt các lệnh gọi trực tiếp không giới hạn lên hệ thống thượng nguồn.
  Kiểm thử thời gian chờ (timeouts), cầu dao ngắt mạch (circuit breakers), bão thử lại (retry storms) và các trang ở chế độ suy giảm chức năng (kiểm thử hỗn loạn - chaos tests).
- Giới hạn tần suất (Rate limiting): mã 429 + tiêu đề Retry-After, giới hạn theo IP/token/User-Agent; đảm bảo các trình thu thập dữ liệu hợp pháp không bị bóp băng thông nhầm.
- Đo lường độ trễ p50/p95/p99, tỷ lệ lỗi, CPU/RAM, số kết nối cơ sở dữ liệu, chi phí trên mỗi 1.000 yêu cầu.

C. Sự tuân thủ giao thức và lược đồ MCP
- MCP Inspector + trình khách SDK: khởi tạo (initialize), tools/list, tools/call, truyền phát luồng (Streamable HTTP), kết nối lại, phản hồi dung lượng lớn.
- Mỗi công cụ (tool): JSON Schema hợp lệ, mô tả rõ "khi nào nên dùng / khi nào không nên dùng", các chú giải (readOnly/destructive/idempotent),
  đầu ra có cấu trúc, kết quả có giới hạn kèm phân trang.
- Chuyển đổi các định nghĩa công cụ sang định dạng gọi hàm (function-calling) của Claude, OpenAI và Gemini; gắn cờ các cấu trúc không được hỗ trợ.
- ID, URL, ngôn ngữ/khu vực (locale) và đơn vị tiền tệ do các công cụ trả về phải khớp với các giá trị chuẩn (canonical) trên trang web.

D. Gia cố dữ liệu đầu vào (Input hardening)
- Kiểm thử nhiễu (fuzz) mọi công cụ (bằng schemathesis/hypothesis): sai kiểu dữ liệu, chuỗi ký tự khổng lồ, unicode/văn bản phải sang trái (RTL)/emoji, ngày tháng và con số phi thực tế,
  tiền tệ/khu vực không được hỗ trợ, các mẫu tiêm mã độc (injection), duyệt đường dẫn trái phép (path traversal), URL gây lỗi SSRF. Kỳ vọng không có lỗi 500, không lộ vết ngăn xếp (stack traces), lỗi có thể phục hồi được, máy chủ vẫn hoạt động ổn định.

E. Đánh giá hành vi tác nhân đầu-cuối (Agent behavior evals)
- Viết hơn 50 kịch bản thực tế bằng các ngôn ngữ mà người dùng của bạn sử dụng: yêu cầu rõ ràng, mơ hồ, nhiều bước, gặp lỗi, thay đổi/hủy bỏ, hết hàng,
  thay đổi giá, các yêu cầu mâu thuẫn nhau.
- Chạy trên 3+ mô hình mục tiêu x 5 lần lặp lại. Các chỉ số đo lường: độ chính xác khi chọn công cụ, độ chính xác của đối số, tỷ lệ hoàn thành tác vụ, chỉ số pass^k, số lệnh gọi và số token
  trên mỗi tác vụ, khả năng phục hồi lỗi, việc tuân thủ bước xin xác nhận trước khi thực hiện thao tác ghi (write actions). Phân tích nguyên nhân gốc rễ của các trường hợp thất bại (do mô tả, lược đồ, kích thước đầu ra, hay do mô hình);
  ưu tiên sửa mô tả/lược đồ trước rồi đo lường lại.

F. Bảo mật
- Tiêm prompt gián tiếp (Indirect prompt injection) thông qua nội dung danh mục/nội dung do người dùng tạo (mô tả, đánh giá, bài viết blog, trường biểu mẫu) bằng cách sử dụng dữ liệu thượng nguồn giả lập và nội dung trên staging.
  Các tác nhân tuyệt đối không được thực hiện hành động trái phép hoặc làm rò rỉ dữ liệu.
- Xác thực và Phân quyền (AuthN/Z): OAuth 2.1 + PKCE, token gắn chặt với đối tượng nhận (audience-bound tokens), thực thi phạm vi quyền (scope), lỗi IDOR, token hết hạn/sai đối tượng nhận, không chuyển tiếp nguyên trạng token (no token passthrough).
- An toàn thao tác ghi: yêu cầu người dùng xác nhận rõ ràng, thời hạn hiệu lực của báo giá, chống giả mạo giá/tiền tệ, gửi 50 yêu cầu song song cùng một khóa bất biến (idempotency key) -> chỉ tạo ra đúng một tác động duy nhất.
- Thanh toán: không truyền dữ liệu thẻ qua các công cụ hoặc lưu vào nhật ký (logs); chỉ sử dụng liên kết thanh toán được lưu trữ chuyên biệt (hosted payment links).
- Bảo mật web cơ bản: kiểm tra OWASP Top 10/API Top 10 trên các biểu mẫu và điểm cuối, CSRF, chuyển hướng mở (open redirects), tiêu đề bảo mật, cờ cookie,
  quét thư viện phụ thuộc/container/thông tin bí mật (pip-audit/npm audit, Trivy, gitleaks), lập danh mục thành phần phần mềm (SBOM).
- Chống lạm dụng: khả năng chống cào dữ liệu (scraping) và chống dò quét liệt kê (enumeration), giới hạn chống tấn công làm cạn kiệt ngân sách (denial-of-wallet).

G. Quyền riêng tư và sự tuân thủ
- Sự đồng ý (Consent): các thẻ phân tích/tiếp thị tuyệt đối không được kích hoạt trước khi có sự đồng ý; lựa chọn của người dùng phải được lưu giữ đúng như cam kết; nội dung nhúng của bên thứ ba chỉ được tải sau khi có sự đồng ý.
- Các quy chế áp dụng (regimes): tối thiểu hóa dữ liệu, thời hạn lưu trữ, xử lý yêu cầu của chủ thể dữ liệu, thỏa thuận xử lý dữ liệu với các nhà cung cấp LLM,
  nhật ký (logs) hoàn toàn không chứa thông tin định danh cá nhân (PII)/token.
- Nội dung/bản quyền: quyền sử dụng hình ảnh và bài đánh giá, tính nhất quán của chính sách huấn luyện AI/đầu vào AI, độ chính xác của điểm xếp hạng hiển thị và các tuyên bố "đã xác minh" (verified).

H. Khả năng quan sát và vận hành (Observability and operations)
- Dấu vết (traces)/nhật ký (logs) cho từng lệnh gọi công cụ và từng loại trang (độ trễ, trạng thái thượng nguồn, trạng thái bộ nhớ đệm, phân loại bot); nhật ký kiểm toán (audit log) cho các thao tác ghi; bảng điều khiển (dashboards) và cảnh báo.
- Kiểm tra sức khỏe/mức độ sẵn sàng (health/readiness), tắt hệ thống êm mượt (graceful shutdown), xác thực cấu hình, quản lý thông tin bí mật, kế hoạch quay lui (rollback plan), quản lý phiên bản lược đồ công cụ,
  kiểm tra CI để đảm bảo tệp robots.txt và sitemaps không bao giờ bị suy thoái (regress).

CHẤM ĐIỂM
Chấm điểm các hạng mục từ A đến H theo thang điểm từ 0 đến 4: 0 là chưa có gì, 1 là xử lý tình huống tự phát (ad hoc), 2 là có một phần nhưng còn lỗ hổng, 3 là nhất quán và đã được kiểm thử, 4 là tự động hóa, được giám sát và có bằng chứng đầy đủ.
Các cổng kiểm duyệt trước khi lên môi trường thực tế — Production gates (BẮT BUỘC đạt TẤT CẢ):
- 0 phát hiện bảo mật mức độ nghiêm trọng/cao (critical/high) còn tồn đọng; 0 thao tác ghi trái phép hoặc giao dịch trùng lặp thực hiện thành công.
- >= 99% URL trong sitemap trả về mã 200, tự trỏ canonical về chính nó (self-canonical) và có thể lập chỉ mục; 0 URL trong sitemap bị gắn noindex/chuyển hướng/lỗi 404; tính tương hỗ của hreflang >= 99%.
- Các URL tìm kiếm/bộ lọc/tham số không tạo ra các bản sao có thể lập chỉ mục một cách không giới hạn.
- Chỉ số Core Web Vitals đạt mức tốt trên các khuôn mẫu trang chính, hoặc phải có kế hoạch khắc phục kèm mốc thời gian cụ thể.
- Dưới mức tải đột biến gấp 10 lần và mô phỏng trình thu thập dữ liệu: tỷ lệ lỗi < 1%, độ trễ p95 < target_ms ms, số lệnh gọi thượng nguồn trên mỗi lượt xem trang nằm trong ngân sách cho phép,
  giới hạn tần suất hoạt động tốt, không chặn nhầm trình thu thập dữ liệu hợp pháp.
- Đánh giá tác nhân (Agent evals): tỷ lệ hoàn thành tác vụ >= 90% và chỉ số pass^5 >= 75% trên mỗi mô hình mục tiêu (hoặc có ngoại lệ đã được lập tài liệu).
- 0 thông tin định danh cá nhân (PII)/token/dữ liệu thẻ xuất hiện trong nhật ký; quyền đồng ý của người dùng được tôn trọng.
- Mọi phát hiện đều có bằng chứng kèm theo bản sửa lỗi hoặc văn bản chấp nhận rủi ro đã được ký duyệt.

SẢN PHẨM BÀN GIAO (trong thư mục /maturity-audit/)
1. REPORT.md: tóm tắt điều hành, điểm số từng hạng mục, kết quả đạt/trượt qua các cổng kiểm duyệt, 10 rủi ro hàng đầu.
2. FINDINGS.md: mã ID, hạng mục, mức độ nghiêm trọng, bằng chứng, tác động, cách khắc phục, trạng thái, người phụ trách.
3. SEO-CRAWL.md: đối chiếu sitemap (loại, số lượng, tỷ lệ % khỏe mạnh), các vấn đề về canonical/hreflang/trùng lặp, bẫy thu thập dữ liệu, kết quả kiểm tra dữ liệu có cấu trúc.
4. EVAL.md: các kịch bản, mô hình, chỉ số đo lường, kết quả trước/sau.
5. Bộ kiểm thử có thể chạy được: thư mục tests/, kịch bản kiểm thử tải và thu thập dữ liệu, dữ liệu mẫu kiểm thử tiêm mã (injection fixtures), kiểm tra chống suy thoái trên CI, và một lệnh chạy duy nhất `make audit`.
6. ROADMAP.md: kế hoạch 30/60/90 ngày và các rủi ro được chấp nhận.

Phản hồi cuối cùng: tóm tắt ngắn gọn các phát hiện, các bản sửa lỗi đã thực hiện, những cổng kiểm duyệt chưa đạt, và một bước tiếp theo quan trọng nhất cần làm.
SecurityAuditAI Agent+2
M@musatoktas
0
Video
Trang Web Showroom Kỹ Thuật Số Cao Cấp Của TVS Motor
Xây dựng một trang web showroom kỹ thuật số TVS Motor cao cấp, sẵn sàng đưa vào vận hành thực tế (production-ready). Đây là một sản phẩm thực thụ chứ không phải bản demo hay bản dựng giao diện (mockup). Sử dụng React + TypeScript + Vite, Tailwind, Framer Motion, React Three Fiber cho đồ họa 3D, cùng backend Node/Express hoặc FastAPI kết hợp với PostgreSQL. Tuyệt đối không sử dụng văn bản giữ chỗ (placeholder) hay lorem ipsum ở bất kỳ đâu.

NGÔN NGỮ THIẾT KẾ
- Phong cách ô tô - xe máy cao cấp mang đậm chất điện ảnh. Giao diện tối (dark theme) cho phần mở đầu (hero) và phần trưng bày xe (#0A0A0A làm màu nền), giao diện sáng (light theme - #F4F4F2) cho các phần câu chuyện kỹ thuật, so sánh xe và đặt lịch lái thử.
- Phông chữ không chân (sans-serif) dáng hẹp viết hoa toàn bộ cho thanh điều hướng và các tiêu đề (Barlow Condensed hoặc kiểu chữ DIN), phông chữ không chân gọn gàng cho văn bản nội dung. Đường kẻ phân cách mảnh 1px, khoảng trắng rộng rãi, các góc vuông vức sắc nét.
- Màu nhấn (Accent): sử dụng màu đỏ TVS một cách tiết chế cho các nút kêu gọi hành động (CTA) và các trạng thái đang kích hoạt (active states).
- Chỉ dùng hiệu ứng chuyển động tinh tế: hiệu ứng hiện dần khi cuộn trang (scroll reveals), hiệu ứng thị sai (parallax), và chuyển tiếp mượt mà giữa các phân đoạn.

THANH ĐIỀU HƯỚNG TOÀN CỤC (GLOBAL NAVBAR)
- Cố định khi cuộn (sticky), trong suốt khi nằm đè lên phần hero, và chuyển sang nền đặc khi cuộn trang xuống.
- Bên trái: logo TVS. Ở giữa: BIKES, COMPARE, ACCESSORIES, SERVICE, EXPERIENCE (mục đang chọn có gạch chân).
- Bên phải: Tìm kiếm (Search), Vị trí (Location), Tài khoản (Account), Giỏ hàng (Cart).
- Thu gọn thành menu toàn màn hình trên thiết bị di động.

PHẦN 1: MỞ ĐẦU (HERO)
- Phần hero tối màu toàn màn hình với hình ảnh chiếc mô tô được chiếu sáng kiểu phòng chụp trầm (low-key studio-lit, có ánh đèn pha phát sáng và hiệu ứng lóa ống kính - lens flare) cùng dòng tiêu đề lớn "THE NEXT RIDE IS HERE".
- Mũi tên trái và phải để chuyển đổi qua lại giữa các mẫu xe nổi bật, đi kèm thanh tiến trình tự động chuyển cảnh.
- Nút CTA "EXPLORE BIKES".
- Tải trước (preload) hình ảnh đầu tiên. Sử dụng video hoặc định dạng ảnh WebP làm phương án dự phòng (fallback).

PHẦN 2: TRƯNG BÀY XE (BIKE SHOWCASE)
- Phân đoạn nền tối với chiếc xe đặt ở chính giữa cùng các chấm điểm nóng (hotspot dots) nhấp nháy; khi nhấp vào sẽ mở ra các hộp chú thích (callouts) nối bằng đường kẻ mảnh chỉ tới thông số kỹ thuật (động cơ, phanh, hệ thống treo).
- Các thẻ thông số (spec chips) nằm ở bên trái (phân khối cc, công suất, mô-men xoắn, mức tiêu thụ nhiên liệu) và một nút viền "EXPLORE".

PHẦN 3: CÂU CHUYỆN KỸ THUẬT (ENGINEERING STORY)
- Phân đoạn nền sáng, dòng tiêu đề phụ đánh số phía trên ("03 — ENGINEERING"), tiêu đề lớn "Engineering Story", cùng một đoạn văn ngắn.
- Hình ảnh kết xuất chiếc xe kích thước lớn đi kèm 4 đến 5 hộp chú thích có ghi chú (Động cơ - Engine, Thân vỏ - Body, Khung gầm - Chassis, Thông tin kỹ thuật - Technical Info), mỗi chú thích có một đường kẻ mảnh dẫn hướng, tiêu đề và mô tả dài 2 dòng.
- Các hộp chú thích lần lượt xuất hiện bằng hiệu ứng hoạt họa khi người dùng cuộn trang.

PHẦN 4: SO SÁNH XE (COMPARISON)
- So sánh tối đa 3 mẫu xe đặt cạnh nhau. Các thẻ xe hiển thị hình ảnh, biểu tượng trái tim yêu thích (wishlist), và bộ chọn phiên bản (variant selector).
- Các hàng thông số kỹ thuật cho động cơ, công suất, mô-men xoắn, trọng lượng, mức tiêu thụ nhiên liệu, giá bán. Làm nổi bật giá trị vượt trội hơn ở mỗi hàng.
- Truy xuất toàn bộ thông số kỹ thuật và giá bán từ cơ sở dữ liệu, không gán cứng trong mã nguồn.

PHẦN 5: ĐẶT LỊCH LÁI THỬ (TEST RIDE BOOKING)
- Thanh tiến trình từng bước (Stepper): Chọn Xe (Select Bike) → Phiên bản (Variant) → Thành phố (City) → Showroom → Ngày (Date) → Giờ (Time).
- Bảng thông tin cố định bên phải "Customer Details" gồm họ tên, số điện thoại (có xác thực OTP), email và ghi chú.
- Nút "BOOK TEST RIDE", đi kèm màn hình xác nhận, gửi xác nhận qua email/SMS, và tính năng tải tệp lịch (.ics).

PHẦN 6: TRẢI NGHIỆM, TÍNH TRẢ GÓP (EMI) VÀ DỊCH VỤ
- Công cụ tính trả góp EMI (tiền trả trước, kỳ hạn vay, lãi suất) và công cụ ước tính giá lăn bánh theo từng thành phố.
- Danh mục phụ kiện, đặt lịch bảo dưỡng, hỗ trợ khách hàng và câu hỏi thường gặp (FAQ).

QUẢN TRỊ VÀ DỮ LIỆU (ADMIN AND DATA)
- Bảng điều khiển quản trị (Admin panel) cho phép tải lên tệp bảng tính Excel chứa bảng giá. Phân tích cú pháp và xác thực dữ liệu, cho phép xem trước các thay đổi, sau đó mới nhập vào cơ sở dữ liệu.
- Đầy đủ chức năng Thêm/Xem/Sửa/Xóa (CRUD) cho các mẫu xe, phiên bản, màu sắc, phụ kiện, hệ thống showroom và đơn đặt lịch lái thử.
- Trình xem 3D (định dạng GLB) có phương án dự phòng bằng chuỗi ảnh xoay 360° và dự phòng bằng ảnh tĩnh nếu WebGL gặp sự cố.

THIẾT BỊ DI ĐỘNG (MOBILE)
- Bố cục đáp ứng ưu tiên thiết bị di động (mobile-first responsive layout). Thanh "BOOK TEST RIDE" cố định ở cạnh dưới màn hình, băng chuyền (carousel) chọn xe hỗ trợ vuốt chạm, các khung thông số kỹ thuật có thể thu gọn (accordions).
- Điều hướng có thanh đường dẫn (breadcrumbs).

TIÊU CHUẨN CHẤT LƯỢNG (QUALITY BAR)
- Điểm Lighthouse đạt từ 90 trở lên ở các tiêu chí hiệu năng (performance), khả năng tiếp cận (accessibility) và SEO. Tải trễ (lazy-load) hình ảnh và khung cảnh 3D kèm theo khung xương tải trang (skeleton loaders) và chỉ báo trạng thái đang tải WebGL.
- Đạt chuẩn WCAG AA: trạng thái lấy tiêu điểm (focus) hiển thị rõ ràng, hỗ trợ điều hướng hoàn toàn bằng bàn phím, đầy đủ văn bản thay thế (alt text), nhãn ARIA, và hỗ trợ chế độ giảm chuyển động (reduced-motion).
- Xác thực biểu mẫu (form validation), trạng thái báo lỗi, trạng thái dữ liệu rỗng, trạng thái đang tải.
- Cấu trúc thư mục sạch sẽ, các thành phần (components) có khả năng tái sử dụng, cấu hình qua tệp .env, tệp README có hướng dẫn cài đặt chi tiết từng bước, và dữ liệu khởi tạo (seed data) sử dụng các mẫu xe TVS có thật (Apache RTR, Ronin, Raider, Jupiter, iQube).

ĐẦU RA (OUTPUT)
Hãy xây dựng dự án theo từng giai đoạn (phase by phase). Sau mỗi giai đoạn, hãy chạy thử ứng dụng, sửa sạch các lỗi và xác nhận nó hoạt động trơn tru trước khi chuyển sang giai đoạn tiếp theo. Bắt đầu từ hệ thống thiết kế (design system) và bố cục chung, sau đó lần lượt đến phần hero, trưng bày xe, câu chuyện kỹ thuật, so sánh xe, đặt lịch lái thử, trang quản trị, và cuối cùng là trau chuốt hoàn thiện.
V@vaiyakavin123
0
Kiến Trúc Sư Gỡ Lỗi Nguyên Nhân Gốc Rễ & Sửa Lỗi Tự Hành
Văn bản

Cô lập, chẩn đoán và giải quyết một cách có hệ thống các lỗi mã nguồn phức tạp, tình trạng tranh chấp (race conditions) và lỗi thời gian chạy (runtime failures) với thay đổi mã nguồn (diff) tối thiểu và ngăn ngừa lỗi hồi quy (regression).

Bạn là một Kỹ sư Phần mềm Cấp cao (Staff Software Engineer) và Kiến trúc sư Gỡ lỗi Chính (Principal Debugging Architect). Nhiệm vụ của bạn là phân tích, chẩn đoán và xử lý triệt để một lỗi kỹ thuật trong kho mã nguồn (codebase) mà không gây ra lỗi hồi quy (regressions) hay đưa ra các bản vá mang tính phỏng đoán mò mẫm.

### Ngữ cảnh & Vấn đề:
- **Ngăn xếp Công nghệ / Ngôn ngữ:** TypeScript / Next.js / Node.js
- **Hành vi Quan sát được:** observed_error
- **Hành vi Kỳ vọng:** expected_behavior
- **Đoạn mã / Ngữ cảnh Liên quan:**
TypeScriptCode ReviewArchitecture+2
S@shakilurrehman21
0
Previous4 / 5Next