Skip to main content
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

  • 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ư @, #, $, %...).
  • 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ệ.
  • 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.
  • 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 != null sẽ tự động bỏ qua luồng nà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.

4. Ngoại lệ & Xử lý lỗi (Exception Handling)