App 6 – Dự án, công việc & sprint ​

Hướng: Xây mới bằng builder · Đợt: Đợt 2 · Phụ thuộc: hrm (đợt 0), App 7
Quy ước chung, nguồn dữ liệu nhân viên và cách chạy builder: 00-tong-quan.md

Mục đích: quản lý dự án (khách hàng, ngân sách, thành viên), task theo bảng kanban và sprint, cảnh báo khi dự án sắp vượt ngân sách. Nguồn: Project Management, Task Management, Priorities & Sizes, Sprints, Budget Tracking.

Hướng: xây mới bằng builder. Phụ thuộc: khách hàng từ App 7 (tạm dùng bảng tham chiếu có dữ liệu mẫu, lượt 5 nối thật), nhân viên và phòng ban từ hrm.

Vai trò & quyền ​

Vai tròĐược làm
Quản trịTạo dự án, cấu hình trạng thái task, xem mọi dự án
Quản lý dự ánSửa dự án mình quản lý, thêm/bớt thành viên, tạo và đóng sprint, giao task, xóa task
Thành viênXem dự án mình tham gia; tạo task; sửa và chuyển trạng thái task; bình luận

Dữ liệu ​

Thực thểTrườngGhi chú
Dự ántên, mã tiền tố (ví dụ CRM), khách hàng, mô tả, ngày bắt đầu, hạn kết thúc, hình thức tính phí (Theo giờ, Trọn gói, Theo milestone), loại ngân sách (Giờ, Tiền), ngân sách, ngưỡng cảnh báo (%), kiểu bảng (Kanban, Sprint), quản lý dự án, màu, trạng thái (Đang chạy, Tạm dừng, Hoàn thành, Lưu trữ)Khách hàng tham chiếu App 7
Thành viên dự ándự án, nhân viên, vai trò (Quản lý, Thành viên)
Moduledự án, tên, mô tảNhóm task theo chức năng
Tasksố (tự tăng theo dự án, hiển thị CRM-12), tiêu đề, mô tả, loại (Bug, Story, Task, Epic), trạng thái, ưu tiên (Khẩn cấp, Cao, Trung bình, Thấp, Không), kích thước (XS=1, S=2, M=3, L=5, XL=8, XXL=13 điểm), ước lượng giờ, ngày bắt đầu, hạn, người làm (nhiều), task cha, module, sprint, tag
Liên kết tasktask nguồn, task đích, loại (Bị chặn bởi, Chặn, Trùng với, Liên quan)
Sprintdự án, tên, mục tiêu, ngày bắt đầu, ngày kết thúc, trạng thái (Dự kiến, Đang chạy, Đã xong)
Bình luậntask, người viết, nội dung, người được nhắc (@), trả lời bình luận nào

Trạng thái ​

  • Task (mặc định, cấu hình được): Mở → Đang làm → Chờ review → Đang review → Xong; thêm Bị chặn từ bất kỳ bước nào trước Xong.
  • Sprint: Dự kiến → Đang chạy → Đã xong.

Quy tắc nghiệp vụ ​

  1. Số task tự tăng và duy nhất trong một dự án; mã tiền tố dự án không trùng.
  2. Mỗi dự án chỉ có tối đa một sprint Đang chạy; các sprint của một dự án không chồng ngày.
  3. Đóng sprint: task chưa Xong được chuyển sang sprint Dự kiến kế tiếp (hoặc về backlog nếu chưa có); lưu velocity = tổng điểm kích thước của task Xong.
  4. Task không chuyển sang Xong khi còn task con chưa Xong hoặc còn bị chặn bởi task chưa Xong.
  5. Task cha phải cùng dự án và không tạo vòng (task không là cha của tổ tiên mình).
  6. Người làm phải là thành viên dự án; chỉ thành viên mới thấy dự án và task.
  7. Ngân sách: đã dùng = tổng giờ (hoặc giờ × đơn giá) từ App 4; khi vượt ngưỡng cảnh báo (mặc định 75% và 90%) thì hiển cảnh báo trên dự án.
  8. Dự án Lưu trữ chỉ xem, không tạo task mới.

Màn hình ​

Màn hìnhNội dung
Danh sách dự ánThẻ dự án với tiến độ task và % ngân sách đã dùng
Bảng kanbanCột theo trạng thái, kéo thả; nhóm theo ưu tiên hoặc người làm
Danh sách taskBảng có lọc theo trạng thái, ưu tiên, người làm, sprint, tag, hạn; thao tác hàng loạt (đổi trạng thái, giao người)
Chi tiết taskThông tin, task con, liên kết, bình luận
SprintBacklog bên trái, sprint bên phải; Bắt đầu / Đóng sprint; biểu đồ burndown
Task của tôiTask được giao qua mọi dự án, nhóm theo hạn

Prompt cho builder – chia lượt ​

Dán từng lượt theo thứ tự, mỗi lượt là một tin nhắn. Duyệt kế hoạch trước khi builder chạy; chỉ sang lượt sau khi lượt trước đã kiểm tra xong trong bản xem trước.

Lượt 1 – Lõi: dự án, thành viên, task, sprint ​

text
Tôi cần app quản lý dự án và công việc có phân quyền, lưu trong database.
Mọi dữ liệu tách theo tổ chức của người đăng nhập.
Nhân viên và phòng ban không tự quản lý mà lấy từ sự kiện của app hrm
(hrm:stream:employees và sự kiện phòng ban) vào bảng chỉ đọc; người đăng nhập
khớp với nhân viên qua mã user Shell.
Có dữ liệu mẫu cho bảng nhân viên và phòng ban (khoảng 3 phòng ban, 10 nhân viên,
có quản lý và nhân viên) để thử phân quyền trong bản xem trước.
Khách hàng tạm lưu bảng tham chiếu chỉ đọc (mã, tên), có dữ liệu mẫu.
Dữ liệu: dự án (tên, mã tiền tố không trùng, khách hàng, mô tả, ngày bắt đầu, hạn,
loại ngân sách giờ hoặc tiền, ngân sách, kiểu bảng Kanban hoặc Sprint, trạng thái
Đang chạy/Tạm dừng/Hoàn thành/Lưu trữ), thành viên dự án (nhân viên, vai trò quản lý
hoặc thành viên), task (số tự tăng theo dự án hiển thị dạng MÃ-12, tiêu đề, mô tả,
loại Bug/Story/Task/Epic, trạng thái Mở/Đang làm/Chờ review/Đang review/Bị chặn/Xong,
ưu tiên Khẩn cấp/Cao/Trung bình/Thấp/Không, kích thước XS=1 S=2 M=3 L=5 XL=8 XXL=13
điểm, ước lượng giờ, hạn, nhiều người làm, task cha, sprint), sprint (tên, mục tiêu,
từ ngày, đến ngày, trạng thái Dự kiến/Đang chạy/Đã xong, velocity).
Phân quyền: chỉ thành viên dự án mới xem được dự án và task; quản lý dự án quản lý
thành viên, sprint và xóa task; thành viên tạo, sửa, chuyển trạng thái task.
Quy tắc (kiểm tra ở API): số task tự tăng và không trùng trong dự án; người làm phải
là thành viên dự án; task cha cùng dự án và không tạo vòng; task không được Xong khi
còn task con chưa xong; mỗi dự án tối đa một sprint đang chạy, sprint không chồng
ngày; đóng sprint thì task chưa xong chuyển sang sprint dự kiến kế tiếp (hoặc về
backlog) và lưu velocity bằng tổng điểm task đã xong; dự án lưu trữ không tạo task.
Màn hình: danh sách dự án, bảng kanban kéo thả theo trạng thái, danh sách task có
lọc, chi tiết task, màn sprint có backlog bên trái và sprint bên phải.

Lượt 2 – Cộng tác ​

text
Thêm liên kết task (Bị chặn bởi, Chặn, Trùng với, Liên quan) và bình luận trên task
có nhắc tên @nhân viên và trả lời bình luận. Task không được Xong khi còn bị chặn
bởi task chưa xong. Thêm thao tác hàng loạt trên danh sách task: đổi trạng thái,
giao người.

Lượt 3 – Ngân sách và báo cáo ​

text
Thêm theo dõi ngân sách dự án: đã dùng lấy từ tổng giờ ghi cho dự án (tạm nhập
tay hoặc đồng bộ từ app ghi giờ), cảnh báo khi vượt 75% và 90%. Thêm biểu đồ
burndown cho sprint và màn Task của tôi (task được giao qua mọi dự án, nhóm theo hạn).

Lượt 4 – Phát sự kiện cho app khác ​

text
Phát sự kiện qua Redis Streams khi dự án và task được tạo, sửa, lưu trữ hoặc xóa
(mã, tên, mã tiền tố, khách hàng, trạng thái; task thêm số, tiêu đề, dự án), để app
ghi giờ và app chi phí đồng bộ.

Lượt 5 (sau khi App 7 xong) – Nối khách hàng thật ​

text
Thay bảng tham chiếu khách hàng bằng dữ liệu đồng bộ từ sự kiện liên hệ của app CRM
vào bảng chỉ đọc; giữ nguyên liên kết khách hàng của các dự án đã có.

Kiểm tra trước khi Publish ​

Đăng nhập lần lượt bằng từng vai trò trong bản xem trước:

  • [ ] Người không là thành viên dự án không xem được dự án và task (thử gọi thẳng API).
  • [ ] Mở sprint thứ hai khi đã có sprint đang chạy thì bị từ chối.
  • [ ] Task còn task con chưa xong hoặc còn bị chặn thì không chuyển được Xong.
  • [ ] Đóng sprint: task dở chuyển sang sprint kế tiếp, velocity đúng tổng điểm task xong.
  • [ ] Checklist chung trong 00-tong-quan.md (mục Checklist chung trước khi Publish).