Newsletter: PRD
Domain Communications · function
newsletter· mã storyCOMM-NL· SDD · TestsHiện trạng: chưa xây.
Mục tiêu
Một bản tin định kỳ (tuần hoặc tháng) gom What's New, sự kiện sắp tới và nội dung mới của cộng đồng nhà, gửi tới người đã đồng ý nhận, đo được ai mở.
User story
COMM-NL-01: đăng ký nhận bản tin
Là khách trên www, tôi muốn để lại email nhận bản tin, để theo dõi Conan School khi chưa sẵn sàng tạo tài khoản.
- Given tôi nhập email ở ô đăng ký When gửi Then nhận một thư xác nhận (double opt-in); chỉ sau khi bấm xác nhận tôi mới vào danh sách.
COMM-NL-02: soạn bản tin từ nội dung có sẵn
Là người vận hành, tôi muốn bản tin tuần tự gom các mục What's New và sự kiện của tuần, để không chép tay.
- Given tuần
2026-W42có mục What's Newpublicvà sự kiện sắp tới When tạo bản nháp bản tin Then nháp chứa đúng các mục đó, xem trước được trước khi gửi.
COMM-NL-03: gửi theo nhóm
- Given một bản tin và một segmentWhen gửi Then chỉ người trong nhóm và chưa huỷ nhận được gửi; số lượng xem trước trước khi bấm.
COMM-NL-04: huỷ một chạm
Là người nhận, tôi muốn huỷ nhận bản tin bằng một cú bấm, không cần đăng nhập.
- Given tôi bấm link huỷ hoặc dùng nút huỷ của Gmail When yêu cầu tới API Then tôi không nhận bản tin kế tiếp; thư giao dịch vẫn tới. Dùng chung cơ chế với preferences.
COMM-NL-05: gửi đúng một lần
- Given vòng gửi bản tin chạy theo lịch When hai lượt cron chồng nhau Then mỗi người nhận đúng một bản (khoá bằng
INSERTvào bảng có khoá chính, LUẬT VÒNG CHẠY TỰ ĐỘNG).