---
url: https://docs.nemo12.com/workflows/parent-onboarding.md
description: >-
  WF-02 Onboarding Parent (Marlin): tài khoản tự tạo khi đăng nhập Google, không
  form đăng ký, đã hiện thực.
---

# WF-02 — Parent (Marlin) Onboarding

**Parent-first:** account tự tạo khi login Google, không form đăng ký. Đã hiện thực (module auth + invitations).

## Các bước

```mermaid
flowchart TD
  A[Marlin vào marlins.nemo12.com] --> G[Đăng nhập Google GSI]
  G --> U{Đã có account?}
  U -- chưa --> N[Tự tạo users + families + membership owner<br/>UserCreated, FamilyCreated]
  U -- rồi --> H[Family dashboard]
  N --> H
  H --> I[Mời con: tên + lớp → mã mời + link<br/>LearnerInvited]
  I --> W[Chờ con nhận lời mời]
  W --> J[Con đăng nhập qua link → LearnerJoined]
  J --> V[Marlin theo dõi: trạng thái con, readiness, khuyến nghị]
  V --> PM[Parent Model dần hình thành<br/>từ observation + hành vi]
```

## Chi tiết

1. **Login Google** (REQ-ACC-01) — GSI id_token, session cookie `.nemo12.com` + rotation. Không password.
2. **Auto-provision** — user mới → tạo `families` + `family_members` role `owner`. Phát `UserCreated`, `FamilyCreated`.
3. **Mời con** (REQ-ACC-03) — tạo `learners status='invited'` + `invitations` (mã 10 ký tự, hạn 14 ngày). Con chỉ học được sau khi nhận lời mời.
4. **Con nhận lời mời** — gắn account con vào learner + `guardians` links. Phát `LearnerJoined`.
5. **Theo dõi & Parent Model** (REQ-PAR-05) — Marlin xem trạng thái con (readiness, gaps, next actions từ WF-05), nhận khuyến nghị (WF-12). Parent Model tích lũy từ observation + hành vi (không label phán xét — SDD-002 §4).

## Sự kiện

`UserCreated · FamilyCreated · LearnerInvited · LearnerJoined · ParentObservationRecorded`.

## Đã hiện thực

Module `auth` (login/rotation/logout) + `invitations` (create/list/accept) — deploy tại api.nemo12.com; UI tại marlins.nemo12.com. Còn lại (Parent Model, parent recommendation) theo WF-12.

## Trace

REQ-ACC-01→§1-2 · REQ-ACC-03→§3-4 · REQ-PAR-01/05→§5.
