PRD • Feature Spec • UI Spec • Test Checklist • Data Model
Chủ doanh nghiệp nhỏ mất thời gian đào tạo nhân viên mới lặp đi lặp lại. Nhân viên không nắm rõ quy trình, không có bằng chứng đã được phổ biến quy định.
Chủ tạo quy trình một lần. Nhân viên tự học + làm quiz + xác nhận đã hiểu. Có bằng chứng rõ ràng.
| Chỉ số | Mục tiêu | Khung thời gian |
|---|---|---|
| Doanh nghiệp đăng ký | 100 | Tháng đầu |
| Nhân viên hoàn thành bài học | 70% trong 48h | Liên tục |
| Giữ chân (retention) | > 60% | Sau 3 tháng |
| Bài học được AI tạo | 30% tổng bài | Sau 3 tháng |
Hỗ trợ OAuth (Google, Facebook, Apple) và email OTP. Lần đầu đăng nhập sẽ được chuyển đến màn thiết lập hồ sơ (oauth-profile). Tài khoản đã có hồ sơ sẽ vào thẳng màn hình chính.
| Loại | Mô tả | Format | Ví dụ |
|---|---|---|---|
| Quy định | Nội quy, chính sách cần nhân viên biết và cam kết | Text / ảnh / video → quiz cuối bài → xác nhận | Quy định đồng phục, chấm công, điện thoại trong ca |
| SOP từng bước | Quy trình thao tác chuẩn, từng bước có minh họa | Từng bước → ảnh/video minh họa → câu hỏi nhanh | Mở ca, đóng ca, phục vụ khách, xử lý phàn nàn |
| Checklist | Danh sách việc cần làm, tick xác nhận mỗi ca | Checklist → tick + chụp ảnh → quản lý duyệt | Checklist mở ca, vệ sinh, kiểm kho, bàn giao |
Chủ nhập nội quy thô (dạng text tự do) → AI tạo bài học ngắn + câu hỏi quiz + đáp án + giải thích.
| Dạng câu hỏi | MVP | Sau MVP |
|---|---|---|
| Trắc nghiệm 1 đáp án | Có | |
| Trắc nghiệm nhiều đáp án | Có | |
| Đúng / Sai | Có | |
| Điền câu trả lời ngắn | V2 | |
| Câu hỏi tình huống | V2 | |
| Sắp xếp quy trình theo thứ tự | V2 |
Sau khi đạt bài kiểm tra, nhân viên bấm xác nhận: “Tôi xác nhận đã đọc, hiểu và đồng ý thực hiện đúng quy trình/quy định trên.”
Chủ doanh nghiệp xem được:
| Gói | Giá | Nhân viên | Bài học | AI | Khác |
|---|---|---|---|---|---|
| Free | 0đ | 5 | 5 | — | Quiz cơ bản |
| Basic | 199k/tháng | 20 | Không giới hạn | 5 credits | Xác nhận đã hiểu |
| Pro | 499k/tháng | 100 | Không giới hạn | Không giới hạn | Thư viện mẫu, báo cáo nâng cao |
| Business | 999k+/tháng | Không giới hạn | Không giới hạn | Không giới hạn | Đa chi nhánh, checklist ca, phân quyền |
| Token | Giá trị |
|---|---|
| Brand primary | #0060C0 |
| Brand accent | #E06000 |
| Font | SF Pro (iOS system font stack) |
| Mono | SF Mono / JetBrains Mono |
| Radius | 8px / 12px / 16px / 20px |
| Shadow | Hairline borders, no heavy shadows |
| Theme | Light mode only |
| # | Màn hình | Nhóm | File |
|---|---|---|---|
| 01 | Welcome | Chung | welcome.html |
| 02 | Login | Chung | login.html |
| 03 | Nhập email | Chung | email-input.html |
| 04 | Xác thực email | Chung | email-verify.html |
| 05 | Thiết lập hồ sơ | Chung | oauth-profile.html |
| 06 | Bảng giá | Chung | pricing.html |
| 07 | Tham gia DN | Nhân viên | join-business.html |
| 08 | Trang chủ NV | Nhân viên | employee-home.html |
| 09 | Xem bài học | Nhân viên | lesson-view.html |
| 10 | Làm quiz | Nhân viên | quiz-take.html |
| 11 | Kết quả | Nhân viên | quiz-result.html |
| 12 | Xác nhận cam kết | Nhân viên | confirm.html |
| 13 | Hồ sơ NV | Nhân viên | employee-profile.html |
| 14 | Dashboard chủ | Chủ DN | owner-dashboard.html |
| 15 | Tạo bài học | Chủ DN | create-lesson.html |
| 16 | AI tạo bài | Chủ DN | ai-create.html |
| 17 | Thư viện mẫu | Chủ DN | sop-templates.html |
| 18 | Nhân viên | Chủ DN | employees.html |
| 19 | Gán bài học | Chủ DN | assign-lesson.html |
| 20 | Tiến độ NV | Chủ DN | employee-progress.html |
| 21 | Báo cáo | Chủ DN | reports.html |
| 22 | Tài liệu SP | Chủ DN | docs.html |
| Entity | Fields chính | Relations |
|---|---|---|
| Business | id, name, logo, code, industry, plan | has-many branches, has-many users, has-many lessons |
| Branch | id, name, address, business_id | belongs-to business, has-many users |
| User | id, name, email, phone, role (owner/manager/employee), avatar, business_id, branch_id | belongs-to business, belongs-to branch, has-many completions |
| Lesson | id, title, type (regulation/sop/checklist), content (JSON blocks), pass_score, deadline, business_id, version | belongs-to business, has-many questions, has-many assignments |
| Question | id, lesson_id, type (single/multi/tf), question, options (JSON), correct_answer, explanation | belongs-to lesson |
| Assignment | id, lesson_id, user_id, assigned_by, due_date | belongs-to lesson, belongs-to user |
| Completion | id, lesson_id, user_id, score, passed, confirmed_at, device, version_at_time | belongs-to lesson, belongs-to user |
| Vai trò | Quyền |
|---|---|
| owner | Toàn bộ doanh nghiệp: CRUD bài học, quản lý NV, xem báo cáo, quản lý thanh toán, quản lý chi nhánh |
| manager | Chi nhánh được phân: gán bài học, theo dõi kết quả NV trong chi nhánh, duyệt checklist |
| employee | Xem bài học được giao, làm quiz, xem kết quả của mình, xác nhận đã hiểu |
| Phase | Mục tiêu | Nội dung chính |
|---|---|---|
| Phase 1 MVP |
App dùng thật | Đăng ký/đăng nhập • Tạo DN • Tạo bài học + quiz • Mời NV • NV học và làm bài • Xem kết quả |
| Phase 2 | Xác nhận & lịch sử | Xác nhận đã hiểu • Lưu lịch sử hoàn thành • Lưu phiên bản bài học • Xuất báo cáo |
| Phase 3 | AI | AI tạo bài học từ nội quy • AI tạo quiz • AI viết lại dễ hiểu • AI tạo tình huống |
| Phase 4 | Template ngành | Cafe • Quán ăn • Rửa xe • Spa • Salon • Shop bán hàng • Garage |
| Phase 5 | Checklist | Checklist mở ca/đóng ca/vệ sinh/bàn giao • Chụp ảnh xác nhận • Quản lý duyệt |
| Phase 6 | Multi-branch | Quản lý nhiều chi nhánh • Báo cáo theo chi nhánh • So sánh tỷ lệ • Chuẩn hóa SOP toàn chuỗi |
| Loại | Test case | Kết quả mong đợi |
|---|---|---|
| Happy | Google OAuth thành công (lần đầu) | Chuyển đến oauth-profile |
| Happy | Google OAuth thành công (đã có TK) | Chuyển đến home/join-business |
| Happy | Facebook OAuth thành công | Như Google OAuth |
| Happy | Apple OAuth thành công | Như Google OAuth |
| Happy | Email code: nhập email → nhận OTP → nhập đúng | Đăng nhập thành công |
| Error | Email OTP sai | "Mã không đúng, còn X lần thử" |
| Error | OTP hết hạn | "Mã hết hạn, gửi lại" |
| Error | OAuth bị cancel bởi user | Quay lại màn login |
| Error | Không có internet | "Không có kết nối mạng" |
| Edge | OAuth popup bị chặn bởi Safari ITP | Hiển thị hướng dẫn mở popup thủ công |
| Edge | Keyboard che nút đăng nhập | Form tự scroll lên trên keyboard |
| Loại | Test case | Kết quả mong đợi |
|---|---|---|
| Happy | Làm hết câu hỏi, đáp đúng ≥ điểm đạt | Hiển thị "Đạt" + chuyển sang màn xác nhận |
| Happy | Làm hết câu hỏi, đáp sai > điểm đạt cho phép | Hiển thị "Chưa đạt" + nút "Làm lại" |
| Error | Chưa chọn đáp án → bấm Tiếp tục | Báo lỗi "Vui lòng chọn đáp án" |
| Edge | Thoát giữa chừng khi đang làm quiz | Lưu tiến độ, lần sau vào tiếp tục |
| Test case | Kết quả mong đợi |
|---|---|
| NV chưa được mời → vào app | Hiển thị màn tham gia doanh nghiệp (join-business) |
| NV đã được gán bài → vào home | Hiển thị danh sách bài học được giao |
| Manager xem NV ngoài chi nhánh | Không hiển thị / báo lỗi quyền |
| Owner xem báo cáo chi nhánh | Xem được toàn bộ chi nhánh |