# User Flows & Use Cases — Atlas Academy ## Use Cases ### UC-1: Nieuwe bezoeker ontdekt het platform **Actor:** Ondernemer (potentiële student) **Doel:** Cursusaanbod verkennen zonder account ``` Bezoeker │ ├── [Vorige actie: Google → atlasacademy.nl] │ ▼ atlasacademy.nl (index.html) │ "Nu live · 9 cursussen" │ ├── klikt "Bekijk de cursussen →" │ ↓ │ /slides (Odoo cursuscatalogus) │ │ │ ├── ziet 9 cursuskaarten met kleur-covers │ ├── klikt cursus → /slides/sales-vanaf-nul-2 │ │ │ │ │ ├── leest eerste lessen (preview) │ │ └── beantwoordt quizvragen │ │ │ └── klikt pricing.html voor kosten │ └── verlaat → lead? [nee] → geen actie ``` **Succes:** bezoeker heeft minimaal 1 les gelezen + 1 quizvraag beantwoord. --- ### UC-2: Registratie & account aanmaken **Actor:** Geïnteresseerde bezoeker **Doel:** Gratis account aanmaken voor voortgangsopslag ``` Bezoeker │ ├── klikt "Gratis account aanmaken" op homepage │ ↓ │ /register → 302 → /web/signup?redirect=/slides │ │ │ ├── Odoo signup-formulier (website 3) │ │ Naam · E-mail · Wachtwoord │ │ │ ├── submit → Odoo maakt res.users aan │ │ │ ├── bevestigingsmail via atlasacademy.nl │ │ (base_url = website 3 domein) │ │ │ └── redirect → /slides (ingelogd) │ └── succes: voortgang wordt opgeslagen per cursus ``` **Foutpaden:** - E-mail al in gebruik → Odoo: "account bestaat al" - Wachtwoord te kort → Odoo validatie - Website 1 (corp) = b2b → signup geblokkeerd (correct) --- ### UC-3: Inloggen (terugkerende student) **Actor:** Bestaande gebruiker **Doel:** Doorgaan met cursus ``` Terugkerende student │ ├── klikt "Inloggen" in nav van marketing-pagina │ ↓ │ /login → 302 → /web/login?redirect=/slides │ │ │ ├── Odoo login-formulier │ │ │ ├── submit → sessie cookie gezet │ │ │ └── redirect → /slides │ └── cursus hervatten ``` --- ### UC-4: Cursus volgen (hoofdflow) **Actor:** Ingelogde student **Doel:** Les lezen + kennischeck doen ``` [/slides] Cursuscatalogus │ └── klikt cursus → /slides/ │ ├── Cursuspagina: inhoudsopgave │ └── klikt les → /slides// │ ├── Theorie (HTML, ~300-500 woorden) │ └── Kennischeck (3 MC-vragen per les) │ ├── kiest antwoord → feedback (uitleg) ├── alle correct → "Les voltooid" ✓ └── voortgang opgeslagen in Odoo ``` --- ### UC-5: Lead insturen (interesse formulier) **Actor:** Bezoeker op marketingpagina **Doel:** Interesse kenbaar maken (coaching / waitlist) ``` Bezoeker │ └── vult formulier in op coaching.html of index.html │ POST /academy-lead (JSON: {name, email, interest, source}) │ └── odoo_relay.py (atlas-01:7793) │ ├── maakt crm.lead aan in Odoo │ ├── stuurt notificatie e-mail (SMTP fallback) │ └── HTTP 200 → "Bedankt" bericht op pagina ``` --- ## Swimlane diagram — Volledige gebruikerscyclus ``` STUDENT CADDY (atlasacademy.nl) ODOO (eLearning) CRM (Odoo) │ │ │ │ │── GET / ───────────────>│ │ │ │<── 200 index.html ───────│ │ │ │ │ │ │ │── GET /slides ──────────>│── proxy ──────────────>│ │ │<── 200 cursuscatalogus ──│<──────────────────────│ │ │ │ │ │ │── GET /slides/ ───>│── proxy ──────────────>│ │ │<── 200 cursuspagina ─────│<──────────────────────│ │ │ │ │ │ │── GET /register ────────>│── 302 /web/signup ────>│ │ │── POST signup ──────────>│── proxy ──────────────>│── nieuwe user ─────│ │<── 302 /slides ──────────│<──────────────────────│ │ │ │ │ │ │── POST /academy-lead ───>│── proxy ──────────────>│ >│─ crm.lead │<── 200 {ok:true} ────────│ │ │ │ │ │ │ ``` --- ## Flowchart — Auth beslissingsboom ``` Bezoeker wil cursus volgen │ ▼ Heeft de user een sessie? ┌─────────┴─────────┐ Ja Nee │ │ ▼ ▼ /slides (direct) /web/login │ ┌────────┴────────┐ │ │ Heeft account? Geen account │ │ ▼ ▼ Inloggen /web/signup │ │ └────────┬────────┘ │ ▼ /slides (ingelogd) │ Voortgang opgeslagen ✓ ``` --- ## Actoren & rechten | Actor | Toegang | Auth | |-------|---------|------| | Anonieme bezoeker | Marketingpagina's, preview cursussen | Geen | | Geregistreerde student | Volledige cursussen, voortgang | Odoo session | | Operator (Chaib) | Odoo backend, alle content, CRM | Tailnet + Authentik SSO | | Lead relay service | CRM leads aanmaken | XML-RPC app-user |