VEPIC BookHub Hệ thống phân phối sách giáo khoa từ nhà xuất bản tới từng lớp học
Nền tảng nối bốn lớp người dùng — VEPIC, nhà trường, giáo viên chủ nhiệm và phụ huynh — thành một chuỗi liền mạch: danh mục bộ sách, đợt phát hành của trường, link đặt hàng riêng cho từng lớp, mã VietQR, ghi nhận thanh toán, chốt sổ và yêu cầu xuất kho.
→ Bản mẫu giao diện 14 màn hình (luồng phụ huynh bấm chạy được, ảnh bìa và giá thật)
Từ Zalo và Excel sang một quy trình thống nhất
Việc đăng ký mua sách giáo khoa đầu năm hiện chạy trên nhóm Zalo lớp, file Excel và sổ tay. Hệ thống thay thế toàn bộ chuỗi đó bằng một quy trình chuẩn dùng chung cho mọi trường.
| Nội dung | Hiện trạng | Sau khi triển khai |
|---|---|---|
| Gom đơn của lớp | Giáo viên đếm tin nhắn trong nhóm Zalo, nhập tay vào Excel | Tự động theo link lớp |
| Nội dung chuyển khoản | Mỗi phụ huynh ghi một kiểu, kế toán dò sao kê thủ công | Chuẩn hoá, có mã đơn |
| Theo dõi tiến độ | Nhà trường không biết lớp nào đã đặt bao nhiêu | Thời gian thực theo lớp |
| Số liệu chốt | Không có số chính xác để xuất kho và giao sách | Chốt theo bộ, theo lớp |
| Dấu vết dòng tiền | Tranh chấp đã nộp hay chưa giữa phụ huynh, giáo viên, trường | Nhật ký đầy đủ |
Chỉ số mục tiêu
| Chỉ số | Mục tiêu | Cách đo |
|---|---|---|
| Tỷ lệ học sinh đặt sách qua hệ thống | ≥ 85% | Số đơn / tổng sĩ số các lớp tham gia đợt |
| Tỷ lệ thanh toán trong 48 giờ | ≥ 70% | Đơn đã ghi nhận thu / tổng đơn |
| Tỷ lệ giao dịch khớp tự động | ≥ 92% | Giao dịch khớp bậc 1 / tổng giao dịch tiền vào |
| Thời gian giáo viên xử lý một lớp | ≤ 60 phút | Toàn bộ đợt, tính từ khi nhận link |
| Thời gian đối soát một đợt | < 1 giờ | Từ khi đóng đợt tới khi hết hàng đợi ngoại lệ |
| Tỷ lệ lớp có link hoạt động | 100% | Lớp có ít nhất một lượt mở link / tổng lớp tham gia |
| Sai lệch số liệu chốt sổ | < 0,1% | Chênh giữa số hệ thống và kiểm đếm thực tế |
Quy mô dự kiến năm đầu
Bốn lớp người dùng, mỗi lớp một phạm vi dữ liệu
Quyền và dữ liệu chảy xuống theo đúng cây tổ chức của ngành giáo dục. Mỗi vai trò chỉ nhìn thấy phạm vi mình phụ trách.
Thuật ngữ nghiệp vụ
Đơn vị hàng hoá duy nhất của hệ thống — mỗi bộ là một SKU. Một bộ gắn với một khối lớp và một năm học, bên trong có thể gồm sách giáo khoa, sách bổ trợ và thiết bị giáo dục. Danh sách thành phần bên trong chỉ để hiển thị cho phụ huynh.
Trong một đợt, mỗi khối có 1..n bộ chính (phụ huynh bắt buộc chọn đúng một) và 0..n bộ kèm tuỳ chọn (tick thêm nếu muốn). Đợt đầu tiên chỉ dùng một bộ chính: Bộ SGK thống nhất.
Một chu kỳ đặt sách có thời hạn do nhà trường tạo, phạm vi trong một trường. Khi kích hoạt, giá và cấu trúc bộ sách được đóng băng vào đợt.
URL công khai kèm mã bảo mật, duy nhất cho mỗi cặp đợt phát hành × lớp. Phụ huynh mở link nào thì đơn tự quy về đúng lớp đó.
Trạng thái tham chiếu do phụ huynh tự khai hoặc giáo viên xác nhận. Chưa có giá trị kế toán, hiển thị màu vàng.
Trạng thái chính thức, chỉ do kế toán VEPIC xác lập sau khi đối soát sao kê. Chỉ trạng thái này vào báo cáo doanh thu và bản chốt sổ.
Phân quyền theo vai trò
| Chức năng | VEPIC | Kế toán | Trường | GVCN | Phụ huynh |
|---|---|---|---|---|---|
| Quản lý danh mục bộ sách | ✅ | 👁 | 👁 | 👁 | 👁 |
| Tạo trường, cấp tài khoản | ✅ | — | — | — | — |
| Tạo khối, lớp, tài khoản giáo viên | ✅ | — | ✅ | — | — |
| Tạo và kích hoạt đợt phát hành | ✅ | — | ✅ | — | — |
| Nhập danh sách học sinh | ✅ | — | ✅ | ✅ lớp mình | — |
| Đặt hàng | ✅ | — | ✅ | ✅ lớp mình | ✅ |
| Xác nhận phụ huynh đã báo nộp | ✅ | — | ✅ | ✅ lớp mình | — |
| Ghi nhận đã nhận tiền mặt | ✅ | ✅ | ✅ | ✅ lớp mình | — |
| Xác nhận Đã thu (chính thức) | ✅ | ✅ | — | — | — |
| Chốt sổ đợt phát hành | ✅ | ✅ | ⚠️ đề nghị | — | — |
| Dashboard toàn hệ thống | ✅ | ✅ | — trường mình | — lớp mình | — |
✅ toàn quyền · 👁 chỉ xem · ⚠️ có điều kiện · — không có quyền. Ma trận đầy đủ cho 8 vai trò nằm trong hồ sơ chi tiết.
Mười bốn bước từ danh mục tới sách về lớp
Một quy trình thống nhất áp dụng cho mọi trường. Khác biệt giữa các trường được xử lý bằng tham số cấu hình của đợt phát hành, không bằng tính năng riêng.
| # | Người thực hiện | Bước | Nội dung | Đầu ra |
|---|---|---|---|---|
| 1 | VEPIC | Dựng danh mục bộ sách | Mở năm học, tạo bộ sách theo khối, khai giá bộ và danh sách thành phần hiển thị, xuất bản | Danh mục sẵn sàng cho trường chọn |
| 2 | VEPIC | Khởi tạo trường | Tạo hồ sơ trường, sinh mật khẩu dùng một lần, in phiếu bàn giao tài khoản | Trường đăng nhập được |
| 3 | Nhà trường | Dựng khối và lớp | Chọn khối tham gia, tạo lớp, khai sĩ số; nhập nhanh dạng lưới hoặc sao chép cơ cấu năm trước | Cơ cấu lớp của năm học |
| 4 | Nhà trường | Tài khoản giáo viên | Tạo tài khoản giáo viên, gán chủ nhiệm cho từng lớp, bàn giao thông tin đăng nhập | Mỗi lớp có một giáo viên chủ nhiệm |
| 5 | Nhà trường GVCN | Danh sách học sinh tuỳ chọn | Nhập tay hoặc import Excel: mã học sinh và họ tên | Cơ sở đối chiếu ai chưa đặt hàng |
| 6 | Nhà trường | Tạo đợt phát hành | Trình 5 bước: thông tin chung · thời gian mở và đóng · bộ sách cho từng khối · chính sách thanh toán · chọn lớp tham gia | Đợt ở trạng thái nháp |
| 7 | Nhà trường | Kích hoạt đợt | Hệ thống đóng băng giá, sinh link, mã QR và poster A4 cho từng lớp, sinh mẫu tin nhắn Zalo, thông báo tới giáo viên chủ nhiệm | Một link riêng cho mỗi lớp |
| 8 | GVCN | Phân phối link | Gửi link vào nhóm Zalo lớp, dán poster tại bảng tin, gửi riêng cho phụ huynh chưa nhận | Phụ huynh nhận được link lớp |
| 9 | Phụ huynh | Đặt hàng | Chọn bộ chính và bộ kèm, nhập thông tin học sinh và liên hệ, xác nhận đơn | Đơn hàng kèm mã đơn |
| 10 | Phụ huynh | Thanh toán | Quét VietQR chuyển khoản · hoặc nhận đơn qua email để trả sau · hoặc đăng ký nộp tiền mặt cho giáo viên | Đơn chờ đối soát |
| 11 | GVCN Nhà trường | Theo dõi và đôn đốc | Đối chiếu danh sách học sinh, xác nhận phụ huynh đã báo nộp, thu hộ tiền mặt, gửi phiếu kèm QR cho người chưa thanh toán, nhắc lớp chậm | Tỷ lệ đặt và thu tăng |
| 12 | Kế toán VEPIC | Đối soát và ghi nhận | Nhập sao kê hoặc nhận webhook ngân hàng, khớp giao dịch với đơn, xử lý ngoại lệ, xác nhận Đã thu | Trạng thái thanh toán chính thức |
| 13 | Nhà trường Kế toán VEPIC | Đóng đợt và chốt sổ | Rà soát đơn còn treo, chốt các lô tiền mặt, đối soát nốt, bấm chốt sổ | Bản chốt bất biến kèm biên bản |
| 14 | VEPIC | Xuất kho và bàn giao | Tổng hợp số lượng theo bộ sách, sinh yêu cầu xuất kho, phiếu đóng gói theo lớp, nhãn thùng, biên bản bàn giao | Sách về tới từng lớp |
Sáu bước, không đăng nhập, trên điện thoại
Phụ huynh mở link của lớp con mình và hoàn tất trong khoảng 90 giây. Không cần đăng ký tài khoản, không cần cài ứng dụng.
- Mở link của lớpTrang đón hiển thị logo trường, tên lớp, tên giáo viên chủ nhiệm, hạn đăng ký, ngày dự kiến phát sách và bộ sách áp dụng cho khối.
- Chọn bộ sáchBộ chính của khối được chọn sẵn kèm lưới ảnh bìa các cuốn bên trong. Phía dưới là các bộ kèm tuỳ chọn dạng tick chọn. Tổng tiền cập nhật tức thì.
- Nhập thông tinHọ tên học sinh, mã học sinh nếu có, họ tên và số điện thoại phụ huynh, email để nhận đơn. Lớp và trường đã điền sẵn và bị khoá. Gia đình nhiều con dùng chung một đơn.
- Xác nhậnBảng tóm tắt: học sinh, lớp, trường, các bộ đã chọn, tổng tiền. Có thể quay lại sửa.
- Nhận mã đơn và thanh toánHệ thống sinh mã đơn và mã VietQR đã gồm sẵn số tiền và nội dung chuyển khoản. Ba lựa chọn: chuyển khoản ngay · nhận đơn qua email để trả sau · đăng ký nộp tiền mặt cho giáo viên chủ nhiệm.
- Trang cảm ơnChi tiết đơn, mã đơn, và hướng dẫn bước tiếp theo kèm tên và số điện thoại của giáo viên chủ nhiệm.
Quy tắc nghiệp vụ khi đặt hàng
| Quy tắc | Nội dung |
|---|---|
| Trùng đơn | Nếu trong cùng đợt và cùng lớp đã có đơn với cùng mã học sinh, hoặc tên học sinh gần trùng và cùng số điện thoại, hệ thống cảnh báo và cho phép xem đơn cũ. Không chặn cứng vì phụ huynh có thể mua thêm bộ thứ hai. |
| Chống lạm dụng | Giới hạn 5 đơn trên một số điện thoại mỗi giờ và 20 đơn trên một địa chỉ IP mỗi giờ. Nhà trường có thể bật xác thực số điện thoại bằng mã OTP cho đợt. |
| Đóng băng giá | Đơn hàng lưu bản sao mã bộ, tên bộ, giá bộ và danh sách thành phần tại thời điểm đặt. Danh mục sửa sau đó không ảnh hưởng đơn đã đặt. |
| Hết hạn | Sau giờ đóng, link chuyển sang chỉ đọc. Nhà trường có thể bật nhận đơn muộn; đơn muộn được gắn cờ và cần nhà trường duyệt. |
| Đơn treo | Đơn chờ thanh toán quá 30 ngày không có động tĩnh sẽ tự chuyển sang huỷ, vẫn lưu để thống kê tỷ lệ rơi. |
| Nhiều con một đơn | Mỗi học sinh là một nhóm dòng hàng riêng nhưng chung một mã đơn và một lần chuyển khoản. Khi giao sách, hệ thống tách gói theo lớp của từng con. |
| Học sinh diện chính sách | Nhà trường hoặc giáo viên tạo đơn loại cấp phát. Số lượng vào yêu cầu xuất kho nhưng không vào doanh thu. |
| Vào nhầm lớp | Giáo viên hoặc nhà trường chuyển đơn sang đúng lớp; số liệu hai lớp tự cập nhật lại và thao tác được ghi nhật ký. |
Mã đơn hàng và quy tắc sinh nội dung chuyển khoản
Mã đơn hàng là khoá để hệ thống khớp tiền về với đúng đơn. Nội dung chuyển khoản được sinh tự động theo quy tắc cố định và nhúng sẵn vào mã VietQR.
Cấu trúc mã đơn hàng
| Thành phần | Ví dụ | Quy tắc |
|---|---|---|
| Tiền tố | VP | Cố định cho toàn hệ thống |
| Năm học | 27 | Hai số cuối của năm học bắt đầu — 2027 thành 27 |
| Phần ngẫu nhiên | K4M9QX | 6 ký tự sinh ngẫu nhiên, ký tự cuối là ký tự kiểm tra để phát hiện gõ sai |
| Bảng chữ dùng | 2–9, A–Z | Loại bỏ 0 O, 1 I L và U — những ký tự dễ đọc và gõ nhầm trên màn hình điện thoại |
| Mã hoàn chỉnh | VP27K4M9QX | 10 ký tự · không gian mã khoảng 594 triệu tổ hợp |
Quy tắc ghép nội dung chuyển khoản
Trường Nội dung chuyển khoản trong chuẩn VietQR nhận tối đa 25 ký tự, chỉ chữ không dấu, số và khoảng trắng. Hệ thống ghép nội dung theo thứ tự ưu tiên dưới đây và cắt từ phải sang trái khi vượt giới hạn — mã đơn luôn đứng đầu và không bao giờ bị cắt.
| Ưu tiên | Thành phần | Độ dài | Ví dụ |
|---|---|---|---|
| 1 | Mã đơn hàng bắt buộc | 10 | VP27K4M9QX |
| 2 | Tên học sinh viết tắt | ≤ 8 | NVANAN |
| 3 | Tên lớp | ≤ 5 | 1A1 |
| Chuỗi hệ thống sinh ra | 21 | VP27K4M9QX NVANAN 1A1 | |
Thông tin đầy đủ hiển thị ở đâu
Tên trường, tên học sinh đầy đủ, danh sách bộ sách và toàn bộ chi tiết đơn hiển thị trên màn hình thanh toán, trong email gửi phụ huynh và trên phiếu đặt hàng PDF — nơi không có giới hạn ký tự.
Mã QR
Sinh theo chuẩn EMVCo của VietQR, dạng QR động đã gồm sẵn số tiền và nội dung. Sinh tại máy chủ VEPIC, cache được, in được vào phiếu PDF để giáo viên gửi riêng cho phụ huynh thanh toán sau.
Ba tầng xác nhận, một trạng thái chính thức
Phụ huynh chuyển khoản qua VietQR thì tiền về thẳng tài khoản VEPIC. Kế toán VEPIC đối soát theo quy trình kế toán riêng; hệ thống ghi nhận kết quả để thống kê và hiển thị trạng thái cho nhà trường, giáo viên và phụ huynh.
Trạng thái đơn hàng
| Trạng thái | Ai xác lập | Ý nghĩa |
|---|---|---|
| Chờ thanh toán | Hệ thống | Đơn đã tạo, chưa có tín hiệu thanh toán nào |
| Phụ huynh đã báo | Phụ huynh | Tham chiếu — phụ huynh khai đã chuyển khoản |
| Giáo viên đã xác nhận | Giáo viên | Tham chiếu — giáo viên đã xem biên lai |
| Đăng ký nộp tiền mặt | Phụ huynh | Tham chiếu — mới là ý định, chưa có tiền |
| Tiền mặt đang giữ | Giáo viên | Tham chiếu — giáo viên đã cầm tiền, VEPIC chưa nhận |
| Đã thu | Kế toán VEPIC | Chính thức — đã đối soát với sao kê hoặc lô tiền mặt đã về tới VEPIC |
| Đã chốt sổ | Kế toán VEPIC | Bất biến — không sửa được nữa |
| Đã huỷ / Hoàn tiền | Hệ thống · Kế toán | Quá hạn tự huỷ, phụ huynh xin huỷ, hoặc hoàn tiền có phê duyệt kép |
Thang khớp lệnh bốn bậc
| Bậc | Điều kiện | Tin cậy | Xử lý |
|---|---|---|---|
| 1 | Nội dung chuyển khoản chứa mã đơn hợp lệ và số tiền khớp chính xác | 0,99 | Tự động ghi nhận Đã thu |
| 2 | Có mã đơn hợp lệ nhưng số tiền lệch | 0,85 | Gắn đơn, đánh dấu lệch tiền |
| 3 | Không có mã đơn. Khớp theo số tiền chính xác, cửa sổ 48 giờ, tên người chuyển khớp mờ hoặc bốn số cuối điện thoại | 0,60–0,90 | Tự khớp nếu duy nhất một ứng viên; ngược lại xếp hạng gợi ý cho kế toán |
| 4 | Không suy được gì | — | Vào hàng đợi ngoại lệ, kế toán gắn tay |
Luồng tiền mặt
Chuyển khoản VietQR là phương thức mặc định — tiền về thẳng VEPIC và giáo viên không chạm vào tiền. Khi phụ huynh chọn nộp tiền mặt, luồng chạy như sau:
| # | Người thực hiện | Thao tác | Trạng thái đơn |
|---|---|---|---|
| 1 | Phụ huynh | Chọn “Nộp tiền mặt cho GVCN” trên trang thanh toán, in hoặc lưu phiếu nộp tiền có mã đơn | Đăng ký nộp tiền mặt |
| 2 | GVCN | Thấy tên phụ huynh trong tab “Chờ thu tiền mặt”; khi nhận tiền thì bấm “Đã nhận tiền” | Tiền mặt đang giữ |
| 3 | GVCN | Trong 24 giờ: chốt lô, in bảng kê nộp tiền có chữ ký, bàn giao về nhà trường | Trách nhiệm chuyển sang nhà trường |
| 4 | Nhà trường | Xác nhận đã nhận lô; nộp lại VEPIC khi đối soát, ghi nội dung theo mã lô | Lô chờ VEPIC xác nhận |
| 5 | Kế toán VEPIC | Khớp lô với khoản tiền nhận được | Đã thu cho toàn bộ đơn trong lô |
Đơn tiền mặt không chuyển sang Đã thu khi giáo viên bấm nút — phải đợi lô về tới VEPIC. Dashboard hiển thị rõ ai đang giữ bao nhiêu và trong bao lâu. Nhà trường có thể tắt hẳn phương thức tiền mặt cho đợt phát hành; hệ thống vẫn chạy đủ với QR và thanh toán sau qua email.
Xử lý tiền bất thường
Chuyển thiếu thì gửi nhắc kèm QR đúng số còn thiếu. Chuyển thừa thì ghi nhận thừa, bù cho đơn khác cùng phụ huynh, hoặc hoàn trả. Một giao dịch cho nhiều đơn thì phân bổ theo từng đơn. Nhiều giao dịch cho một đơn thì cộng dồn. Tiền chuyển nhầm được đánh dấu không liên quan và không vào doanh thu.
Tự động hoá ở giai đoạn hai
Hệ thống có sẵn cổng nhận biến động số dư qua webhook — SePay, Casso hoặc API ngân hàng doanh nghiệp. Khi bật, đơn tự chuyển sang Đã thu trong vài giây kể từ khi tiền về; kế toán chỉ xử lý các trường hợp ngoại lệ. Nhập sao kê thủ công vẫn luôn có sẵn làm phương án dự phòng.
Từ đơn hàng của phụ huynh tới yêu cầu xuất kho
Dự án không làm in ấn, sản xuất hay quản lý tồn kho, và giả định luôn có đủ hàng cho mọi bộ đã xuất bản. Đầu ra ở đây là chứng từ bàn giao cho bộ phận kho hiện hữu của VEPIC.
Đóng đợt
Đến giờ, link lớp chuyển sang chỉ đọc. Nhà trường rà soát đơn còn treo và chốt các lô tiền mặt.
Đối soát nốt
Kế toán xử lý hàng đợi ngoại lệ. Chênh lệch đối soát phải bằng 0 mới cho phép chốt.
Chốt sổ — bản ghi bất biến
Số liệu được đóng băng kèm mã kiểm tra: tổng đơn, đã thu, còn nợ, và số lượng từng bộ sách theo khối và theo lớp. Sau khi chốt, sửa đơn bị chặn ở tầng cơ sở dữ liệu; sai sót chỉ xử lý bằng bút toán điều chỉnh có người duyệt. Đơn phát sinh mới phải thuộc đợt bổ sung.
Yêu cầu xuất kho và bàn giao
Bảng tổng hợp theo tỉnh, trường, khối, bộ sách; phiếu đóng gói cho từng lớp; nhãn dán thùng; biên bản bàn giao có xác nhận của nhà trường.
Ví dụ đầu ra chốt sổ — một trường
Trường Tiểu học Nguyễn Du · Đợt SGK 2027–2028 · 15 lớp · 509 đơn
| Bộ sách (SKU) | Khối 1 | Khối 2 | Cộng |
|---|---|---|---|
| Bộ SGK thống nhất — Lớp 1 | 268 | — | 268 |
| Bộ bổ trợ — Lớp 1 bộ kèm | 193 | — | 193 |
| Bộ thiết bị Lớp 1 TT37 | 47 | — | 47 |
| Bộ SGK thống nhất — Lớp 2 | — | 241 | 241 |
| Bộ bổ trợ — Lớp 2 bộ kèm | — | 103 | 103 |
| Tổng số bộ | 508 | 344 | 852 |
Cùng bảng này cộng dồn lên cấp tỉnh và toàn quốc thành Yêu cầu xuất kho, và bung xuống cấp lớp thành phiếu đóng gói. Tên bộ và giá lấy từ danh mục thực tế của VEPIC.
Chín module, 146 tính năng đã đặc tả
Mỗi tính năng gắn mức ưu tiên và giai đoạn triển khai. Giai đoạn 1 gồm 98 tính năng — đủ để chạy trọn vẹn một đợt phát hành thật từ đầu đến cuối.
Chạy trọn một đợt thật: danh mục → trường và lớp → đợt → link → đặt hàng → VietQR và tiền mặt → ghi nhận thanh toán → chốt sổ → yêu cầu xuất kho.
Đối soát tự động qua webhook ngân hàng, nhắc nợ đa kênh, lô tiền mặt đầy đủ, phiếu đóng gói và bàn giao, cảnh báo và báo cáo nâng cao.
Phân tích đa chiều theo khu vực, hoá đơn điện tử, bảng giá theo vùng, API mở cho hệ thống khác của VEPIC.
Một tên miền, ba cổng
Tên miền chính thức sgk.sachcanhdieu.vn. Ba cổng là ba ứng dụng độc lập phía sau một lớp định tuyến, nên cổng phụ huynh co giãn và chịu sự cố tách biệt với cổng quản trị.
/l/{token}
Cổng phụ huynh. Kết xuất phía máy chủ, cache ở CDN, co giãn độc lập, tối ưu cho trình duyệt trong Zalo.
/truong
Cổng nhà trường và giáo viên. Dùng nhiều trên điện thoại, mọi tác vụ của giáo viên gói trong ba lần chạm.
/admin
Cổng quản trị VEPIC. Bảng dữ liệu lớn, thao tác hàng loạt, phím tắt cho màn hình đối soát.
Công nghệ
| Backend | NestJS + Prisma |
| Cơ sở dữ liệu | PostgreSQL 16 + replica chỉ đọc |
| Cache & khoá | Redis 7 |
| Hàng đợi | RabbitMQ — PDF, email, khớp lệnh |
| Lưu trữ tệp | MinIO / S3 |
| Giao diện | Next.js 15 + Tailwind |
| Máy chủ | Đặt tại Việt Nam |
Ranh giới với hệ thống khác của VEPIC
| Hệ thống PIM | Không tích hợp. Danh mục bộ sách nhập trực tiếp hoặc import Excel một chiều |
| Hệ thống kho | Nhận yêu cầu xuất kho và phiếu đóng gói dạng file Excel, PDF |
| Phần mềm kế toán | Nhận dữ liệu xuất ra; hệ thống không thay thế nghiệp vụ kế toán |
| Ngân hàng | VietQR để sinh mã; webhook biến động số dư ở giai đoạn 2 |
Bảo vệ dữ liệu — Nghị định 13/2023
Thu thập tối thiểu: không lấy ngày sinh, căn cước hay ảnh học sinh. Số điện thoại và email mã hoá khi lưu. Đồng ý tách bạch có lưu bằng chứng. Tự động ẩn danh hoá sau 24 tháng. Hồ sơ đánh giá tác động và hợp đồng xử lý dữ liệu nằm trong phạm vi giai đoạn 1.
Hai phương án triển khai
Cùng phạm vi, cùng khối lượng công việc, khác cách huy động nguồn lực. VEPIC chọn không chờ mùa, nên phương án đáp ứng nhanh là hướng triển khai chính.
Mốc bàn giao
| Mốc | Kết quả bàn giao | Tỷ lệ | PA A | PA B |
|---|---|---|---|---|
| M1 | Ký hợp đồng, khởi động | 15% | Tuần 0 | Tuần 0 |
| M2 | Nghiệm thu đặc tả và thiết kế | 10% | Tuần 3 | Tuần 1 |
| M3 | Nghiệm thu MVP trên môi trường staging | 25% | Tuần 13 | Tuần 3 |
| M4 | Kết thúc tuần chạy thật tại 3–5 trường | 15% | Tuần 17 | Tuần 4 |
| M5 | Nghiệm thu hoàn thiện, vượt kiểm thử tải và bảo mật | 20% | Tuần 25 | Tuần 5 |
| M6 | Phát hành diện rộng, bàn giao vận hành và tài liệu | 15% | Sau mùa | Tuần 7 |
Cùng khối lượng, khác cách huy động
Tổng khối lượng công việc không đổi giữa hai phương án — 910 đến 1.095 người-ngày. Phương án nhanh chia thành nhiều đội chạy song song thay vì một đội chạy tuần tự.
| Giai đoạn | Người-ngày | Phương án A — Tiêu chuẩn | Phương án B — Đáp ứng nhanh |
|---|---|---|---|
| Khởi động & chốt đặc tả | 60 – 75 | 3 tuần · 5 người | 1 tuần · 12–15 người |
| Xây dựng MVP | 470 – 550 | 10 tuần · 10 người | 2 tuần · 47–55 người |
| Thí điểm chạy thật | 60 – 80 | 4 tuần · 4 người | 1 tuần · 12–16 người |
| Hoàn thiện vận hành | 250 – 300 | 8 tuần · 7 người | 2 tuần · 25–30 người (song song thí điểm) |
| Chuẩn bị phát hành | 70 – 90 | 4 tuần · 5 người | 2 tuần · 7–9 người |
| Cộng | 910 – 1.095 | 29 tuần · đỉnh 10 người | 7 tuần · đỉnh ~52 người |
Đỉnh nhân sự rơi vào tuần 2–3 với khoảng 52 người, và tuần 4 với khoảng 40 người do đội thí điểm và đội hoàn thiện chạy song song.
Năm đội theo miền nghiệp vụ — phương án nhanh
Mỗi đội sở hữu trọn một phần cơ sở dữ liệu và một nhóm API riêng, làm việc theo hợp đồng API đã ký trước.
| Đội | Phạm vi sở hữu | Người |
|---|---|---|
| Nền tảng | Xác thực, phân quyền, multi-tenant, nhật ký kiểm toán, thông báo, sinh PDF và Excel, hạ tầng | 8 |
| Danh mục & Trường học | Bộ sách · trường, khối, lớp, giáo viên, học sinh | 7 |
| Đợt phát hành & Đặt hàng | Campaign, link lớp, toàn bộ luồng phụ huynh | 12 |
| Thanh toán & Đối soát | VietQR, mã đơn, sao kê, khớp lệnh, tiền mặt | 9 |
| Giáo viên & Báo cáo | Công cụ GVCN, dashboard trường, dashboard và chốt sổ VEPIC | 10 |
| Nhóm chỉ huy | Giám đốc dự án, kiến trúc sư trưởng, QA lead, DevOps, 2 BA điều phối | 6 |
| Cộng | 52 | |
Vai trò theo hai phương án
| Vai trò | PA A | PA B (đỉnh) | Trách nhiệm |
|---|---|---|---|
| Giám đốc dự án / BA trưởng | 1 | 1 | Đầu mối với VEPIC, phạm vi, tiến độ |
| BA nghiệp vụ theo đội | — | 5 | Mỗi đội một BA sở hữu đặc tả miền của mình |
| Kiến trúc sư trưởng | 1 | 1 | Kiến trúc tổng thể, hợp đồng API giữa các đội |
| Tech lead theo đội | — | 5 | Dẫn dắt kỹ thuật và rà soát mã trong đội |
| Lập trình viên Backend | 3 | 17 | API, nghiệp vụ, đối soát, báo cáo |
| Lập trình viên Frontend | 2 | 12 | Ba cổng giao diện |
| Thiết kế UI/UX | 1 | 3 | Thiết kế, hệ thống giao diện, kiểm thử khả dụng |
| Kiểm thử (QA) | 1,5 | 6 | Nhúng trong từng đội, tự động hoá, nghiệm thu |
| DevOps / SRE | 0,5 | 2 | Hạ tầng, CI/CD, giám sát, trực phát hành |
| Cộng | ~10 | ~52 |
Từ phía VEPIC, cả hai phương án: một Chủ sản phẩm có quyền quyết định, một đại diện Kế toán, một đại diện Phát hành, một đầu mối CNTT. Ở phương án nhanh, Chủ sản phẩm trực chiến trọn tuần đặc tả.
Phương án tinh gọn
Bỏ giai đoạn mở rộng và giảm phần hoàn thiện xuống còn đối soát tự động, tiền mặt và nhắc nợ. Tổng còn 750 – 880 người-ngày, vẫn đủ để chạy thật trọn vẹn một mùa.
Chi phí vận hành hằng năm
Ước tính 250 – 550 triệu đồng/năm: máy chủ đặt tại Việt Nam co giãn theo mùa, CDN chống DDoS, email giao dịch, Zalo ZNS nhắc thanh toán, dịch vụ đối soát tự động và một lần kiểm thử xâm nhập độc lập.
Rủi ro chính và biện pháp
Hồ sơ đầy đủ liệt kê 22 rủi ro có đánh giá khả năng và tác động. Dưới đây là những rủi ro cần theo dõi ở cấp điều hành.
| Rủi ro | Mức | Biện pháp |
|---|---|---|
| Nén tiến độ ở phương án đáp ứng nhanh | Nghiêm trọng | Đặc tả và thiết kế xong trong tuần 1 · hợp đồng API ký trước theo OpenAPI · ranh giới cơ sở dữ liệu rõ theo đội · trunk-based với feature flag · QA nhúng trong đội · giữ nguyên kiểm thử tải và kiểm thử xâm nhập ở tuần 5 · theo dõi tiến độ theo ngày. |
| Quá tải giờ cao điểm | Nghiêm trọng | Kiểm thử tải mô phỏng đỉnh trước khi phát hành · co giãn tự động · tách cổng phụ huynh khỏi cổng quản trị · đóng băng thay đổi trong tuần phát hành · chế độ suy giảm có kiểm soát giữ nguyên luồng đặt hàng và thanh toán. |
| Phụ huynh xoá nội dung chuyển khoản | Cao | Thang khớp bốn bậc dùng thêm số tiền, cửa sổ thời gian, tên người chuyển và bốn số cuối điện thoại · tuỳ chọn số tiền lẻ định danh theo lớp · hàng đợi ngoại lệ với công cụ khớp nhanh xử lý 200 giao dịch mỗi giờ. |
| Nhà trường và giáo viên không muốn giữ tiền mặt | Cao | Chuyển khoản VietQR là phương thức mặc định, tiền về thẳng VEPIC · tiền mặt chỉ là thu hộ ngắn hạn, nộp về trường trong 24 giờ · mỗi lần thu có phiếu thu mang mã đơn · trách nhiệm chuyển sang nhà trường ngay khi bàn giao lô · có thể tắt hẳn phương thức tiền mặt cho đợt phát hành. |
| Nghiệp vụ bị cá biệt hoá theo từng trường | Trung bình | Một quy trình nghiệp vụ thống nhất cho mọi trường · khác biệt xử lý bằng tham số cấu hình của đợt phát hành, không bằng tính năng riêng · yêu cầu riêng lẻ vào danh sách giai đoạn 3. |
| Sai sót dữ liệu cá nhân | Thấp | Thu thập tối thiểu · mã hoá khi lưu · phân quyền theo lớp và theo trường ở tầng dữ liệu · nhật ký kiểm toán không xoá được · kiểm thử xâm nhập độc lập trước khi phát hành. |
Năm điểm đã chốt, dự án sẵn sàng khởi động
Những gì VEPIC đã quyết
Các quyết định định hình mô hình dữ liệu, quy trình kế toán và nghĩa vụ pháp lý đều đã có câu trả lời. Không còn hạng mục nào chặn việc khởi động.
- Mô hình dòng tiền. Phụ huynh chuyển khoản qua VietQR thì tiền về thẳng tài khoản VEPIC. Trường hợp nộp tiền mặt: giáo viên thu hộ rồi nộp về trường, trường nộp lại VEPIC khi đối soát.
- Tài khoản ngân hàng. VEPIC có tài khoản doanh nghiệp hỗ trợ VietQR động — sinh được mã có sẵn số tiền và nội dung.
- Vai trò của hệ thống trong đối soát. Kế toán VEPIC đối soát số tiền theo quy trình riêng, hoạt động độc lập. Hệ thống ghi nhận kết quả để thống kê và hiển thị trạng thái cho trường, giáo viên, phụ huynh — không thay thế nghiệp vụ kế toán.
- Thời điểm phát hành. Không chờ mùa. Chốt xong nghiệp vụ và hoàn thiện là chạy thật.
- Phạm vi. Xác nhận không in ấn, không quản lý tồn kho; hệ thống giả định luôn có đủ sách cho mọi bộ đã xuất bản trong danh mục.
Việc cần VEPIC cung cấp theo tuần
| Tuần 1 | Chủ sản phẩm trực chiến · đại diện Kế toán · bộ nhận diện thương hiệu |
| Cuối tuần 1 | Thông tin tài khoản ngân hàng nhận tiền |
| Tuần 2 | Tên miền con, cấu hình DNS, SPF, DKIM |
| Tuần 3 | Chọn 3–5 trường cho tuần chạy thật |
| Tuần 4 | Danh mục bộ sách đã duyệt giá · danh sách trường mục tiêu và đầu mối |
| Trước tuần 7 | Phê duyệt hồ sơ bảo vệ dữ liệu cá nhân |
Hồ sơ đầy đủ đi kèm
Bản trình bày này tóm tắt bộ hồ sơ 13 tài liệu: dữ liệu danh mục khảo sát thực tế, bối cảnh và phạm vi, ma trận phân quyền cho 8 vai trò, 14 luồng nghiệp vụ end-to-end với sơ đồ trạng thái, mô hình dữ liệu, danh mục 146 tính năng, đặc tả 30 màn hình, thiết kế thanh toán và đối soát, kiến trúc kỹ thuật, bộ báo cáo, kế hoạch triển khai hai phương án và 16 kịch bản nghiệm thu.