Là một người dùng mới (Pet Owner), Tôi muốn được hệ thống hướng dẫn từng bước thiết lập hồ sơ cá nhân và thú cưng, Để tôi có thể nhanh chóng bắt đầu sử dụng các tính năng mua sắm và đặt lịch phù hợp.
1. Điều kiện tiên quyết (Pre-conditions)
- Người dùng mới vừa đăng ký tài khoản thành công qua OTP hoặc Social Login (
US-OWN-02). - Ứng dụng (Frontend) kiểm tra thấy trường thông tin cá nhân bắt buộc (ví dụ:
full_name) đang bị trống (null/empty). Đây là điều kiện tự nhiên để kích hoạt tự động luồng Onboarding mà không cần BE sửa đổi luồng Auth.
2. Quy trình Onboarding (Flowchart)
3. Tiêu chí chấp nhận (Acceptance Criteria) & Giao diện
Bước 1: Welcome & Nhập thông tin cá nhân (Bắt buộc)
Bước 1: Welcome & Nhập thông tin cá nhân (Bắt buộc)
- UI/UX: Hiển thị màn hình chào mừng “Chào mừng bạn đến với ILU PET”.
- Trường thông tin yêu cầu:
- Ảnh đại diện (Avatar): Tùy chọn. Cho phép chụp ảnh trực tiếp hoặc tải lên từ thư viện thiết bị. Hỗ trợ cắt (crop) ảnh vuông 1:1. Giới hạn dung lượng 5MB, định dạng
.jpg, .png, .jpeg. - Họ và tên: Bắt buộc. Text input, độ dài 2-50 ký tự, không chứa ký tự đặc biệt không hợp lệ (như
@, #, $, %...).
- Ảnh đại diện (Avatar): Tùy chọn. Cho phép chụp ảnh trực tiếp hoặc tải lên từ thư viện thiết bị. Hỗ trợ cắt (crop) ảnh vuông 1:1. Giới hạn dung lượng 5MB, định dạng
- Ràng buộc (Business Logic):
- Đây là bước Hard-stop (Bắt buộc). Người dùng không thể bấm “Bỏ qua” hoặc back lại.
- Nếu người dùng thoát ứng dụng (Force close) ở bước này, lần mở app tiếp theo vẫn sẽ hiện màn hình này.
- Nút “Tiếp tục” chỉ sáng lên (Enabled) khi trường “Họ và tên” hợp lệ.
Bước 2: Tạo nhanh Thú cưng (Tùy chọn)
Bước 2: Tạo nhanh Thú cưng (Tùy chọn)
- UI/UX: Hệ thống gợi ý câu thông điệp thân thiện: “Bạn đang nuôi bé nào? Hãy để ILU PET làm quen nhé!”.
- Trường thông tin yêu cầu:
- Ảnh thú cưng: Tùy chọn (Tương tự avatar user).
- Tên gọi (Pet Name): Bắt buộc nếu chọn điền form. Max 50 ký tự.
- Chủng loại (Species): Dropdown list lấy từ Master Data (Chó, Mèo, Chim…). Bắt buộc nếu tạo thú cưng.
- Giống (Breed): Dropdown list phụ thuộc vào Chủng loại. Cho phép search nội bộ. Có tùy chọn “Khác”.
- Cân nặng (Weight): Tùy chọn. Numeric input, lớn hơn 0 (kg).
- Nút hành động:
- “Lưu & Tiếp tục”: Chỉ sáng lên khi các trường bắt buộc đã được điền. Nhấn vào sẽ gọi API tạo hồ sơ thú cưng (
is_identified = false). - “Bỏ qua (Skip)”: Luôn hiển thị ở góc trên bên phải hoặc dưới cùng. Cho phép người dùng lướt nhanh vào ứng dụng nếu họ chưa muốn điền thông tin thú cưng lúc này.
- “Lưu & Tiếp tục”: Chỉ sáng lên khi các trường bắt buộc đã được điền. Nhấn vào sẽ gọi API tạo hồ sơ thú cưng (
Bước 3: Hoàn tất & Điều hướng
Bước 3: Hoàn tất & Điều hướng
- UI/UX:
- Hiển thị màn hình chúc mừng (Success Screen) với Lottie animation sinh động.
- Câu chúc mừng được cá nhân hóa: “Tuyệt vời! Hồ sơ của [Tên User] (và bé [Tên Pet]) đã sẵn sàng.”
- Xử lý ngầm (Background Task):
- Không cần cờ đặc biệt: Việc API cập nhật thành công trường Họ và tên ở Bước 1 đã tự nhiên đánh dấu tài khoản này hoàn tất Onboarding. Ở các lần mở app sau, Frontend kiểm tra thấy
full_name != nullsẽ tự động bỏ qua luồng này.
- Không cần cờ đặc biệt: Việc API cập nhật thành công trường Họ và tên ở Bước 1 đã tự nhiên đánh dấu tài khoản này hoàn tất Onboarding. Ở các lần mở app sau, Frontend kiểm tra thấy
- Điều hướng:
- Sau 2-3 giây tự động điều hướng, hoặc khi người dùng nhấn “Bắt đầu khám phá”, hệ thống sẽ chuyển hướng người dùng về Trang chủ mua sắm (
US-OWN-13) hoặc Trang khám phá Dịch vụ (US-OWN-19) tùy cấu hình.
- Sau 2-3 giây tự động điều hướng, hoặc khi người dùng nhấn “Bắt đầu khám phá”, hệ thống sẽ chuyển hướng người dùng về Trang chủ mua sắm (