Skip to content

Archived Brief

This brief has been completed and is retained as a build record.

Brief B-CAT-02

RTOpacks Public Surface — Search, Unit Detail, RTO Onboarding Entry Point

Status: Ready to build Precondition: B-CAT-01 confirmed deployed. RTP-PREVIEW-MONTHLY type confirmed as per_month, display reads $100.00/month. Cloudflare Account: e5a9830215a8d88961dc6c80a8c7442a Surface: ucca.college (public, unauthenticated) — front door to the RTOpacks pipeline Do Not Touch: engine-db products table, Stripe integration, ops console, existing Moodle content on ucca.college


Context

The search surface at ucca.college already exists and works. Type "co" and you get quals, units, and skill sets with status badges. The corpus is live and queryable. That's the first shock — this thing knows everything.

B-CAT-02 takes that surface from "it works" to "it blows people out of the water." It is the front door to the entire RTOpacks pipeline. Every realisation, every upgrade, every corporate pitch, every free workspace starts here.

Three deliverables:

  1. Search results — cleaned up and expanded (add RTO results, filter superseded)
  2. Unit detail page — the hook that makes pricing make sense
  3. RTO result card + onboarding entry point — free workspace claim flow

→ ALEX

Deliverable 1 — Search Results Cleanup and RTO Results

Filter: - Superseded and Deleted results hidden by default - Optional toggle: "Include superseded" — collapsed by default, power user feature

Four result type groups: Currently: Qualifications / Units / Skill Sets Add: RTOs

RTO result card shows: - RTO name - RTO number - State - Status (Active) - Qual count on scope: "47 qualifications on scope" - Single CTA: "Claim your free workspace →"

RTO data source: ASQA public register data already in rtopacks-db. If RTO domain data is not present in rtopacks-db, note as a precondition gap — do not build the domain verification step until confirmed available.


Deliverable 2 — Unit Detail Page

This is the page that makes the price land correctly. By the time they see the number they already understand what they're buying.

URL pattern: ucca.college/units/:unit_code

Page layout — three columns on desktop, stacked on mobile:

Left column — Unit data (from TGA via rtopacks-db): - Unit code + full title - Training package - AQF level - Unit descriptor (full text) - Elements and performance criteria — expandable per element - Required knowledge — expandable - Required skills — expandable - Assessment conditions - Foundation skills

Full TGA unit record. Presented cleanly. Not a government PDF. Every section expandable.

Right column — RTOs offering this unit: - List of RTOs who have this unit on scope (from ASQA data in rtopacks-db) - Each RTO shows: name, state, clickable - Click RTO → RTO detail page (Deliverable 3) - If no RTOs: "No RTOs currently offering this unit. Be the first."

Centre/bottom — Pricing and CTA:

Surfaces after unit data. Not before.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Standard pack — off the shelf
Template document + assessment, TAE-mapped
Delivered as: Word / PDF / SCORM

$40.00 inc. GST

UCCA packs to order and contextualises.
This is the off-the-shelf price.
Your pack can be built for your context,
your learners, your delivery model.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Price pulled from L3 catalogue API — RTP-UNIT-GENERIC SKU. Never hardcoded.

CTA: "To purchase you need a workspace. It's free." Button: "Create your workspace →"

Secondary CTA: "Already an RTO? Enter your RTO number and we'll load your approved scope." → leads to RTO onboarding flow

Video embed: Placeholder container — 16:9, max-width 560px, above pricing block. Tim to supply video. Alex builds container now, content drops in when ready.

Qualification context: Collapsed section below unit detail: "This unit appears in X qualifications." Expand → list of quals containing this unit, each linkable. Qual detail page: stub the route now, build in a future brief.


Deliverable 3 — RTO Detail Page + Onboarding Entry Point

URL pattern: ucca.college/rtos/:rto_number

What we show — a considered subset. Not a data dump: - RTO name and number - Trading name if different - State - ASQA registration status - 5 quals from their scope (first 5 alphabetically) with "+ X more" count - Single statement: "Your free workspace is ready. Everything you're approved to deliver is already loaded."

Not "we found your data." — "You're pre-approved. Welcome aboard."

CTA: "Claim your free workspace →"

Step 1 — Verification:

To get you in we need one thing.

Enter your work email and mobile.
We'll send you two codes. That's it.

[ work email field ]
[ mobile number field ]
[ Send my codes ]

Email must match RTO's registered domain. If domain match fails: "That email doesn't match your registered domain. Try your work email or contact us." Do not reveal what domain we're expecting.

Step 2 — Two codes:

Check your email and phone.

[ Email code  ______ ]
[ Mobile code ______ ]
[ Verify and enter → ]

Both required. 6-digit OTP. 10 minute expiry.

Step 3 — Data confirmation:

Welcome to RTOpacks.
Here's what we know about you. Is this correct?

RTO Name:        [name]
RTO Number:      [number]
State:           [state]
ASQA Status:     Active
Quals on scope:  [count] — [view all]

[ Yes, that's us → ]     [ Something's wrong ]

"Yes, that's us" → workspace opens, Composer enabled in free tier, welcome screen shown.

"Something's wrong" → free text flag, they still get in, flag logged, notification to admin@ucca.online.

Role inference from email (logged to ops, never shown to user): - ceo@ / director@ / owner@ / principal@ → decision maker - admin@ / info@ / contact@ → role account, prompt for name on first use - firstname.lastname@ → named individual


Workspace welcome screen (first login only):

You're in.

Your workspace is loaded with your
[X] approved qualifications and [Y] units.

Start noodling — it's free.
Map an existing course, design a new one,
or search for a unit and start there.

Infinite noodles. Free. Forever.
Print for $10/month when you're ready.

[ Start with a unit → ]    [ Browse my quals → ]

No tour. No walkthrough. No onboarding sequence. They're adults. Get out of the way.


FastAPI endpoints required

  • GET /v1/public/units/:unit_code — unit detail (public)
  • GET /v1/public/units/:unit_code/qualifications — quals containing this unit (public)
  • GET /v1/public/units/:unit_code/rtos — RTOs offering this unit (public)
  • GET /v1/public/rtos/:rto_number — RTO public profile (public)
  • POST /v1/onboarding/verify-email — send OTP to email + mobile
  • POST /v1/onboarding/confirm — verify both OTPs, create workspace session
  • POST /v1/onboarding/confirm-data — log yes/flag response
  • POST /v1/onboarding/flag — log data correction flag

OPS STUB REQUIRED AT DEPLOY

ops.ucca.online → COMMERCIAL → Onboarding - Table: rto_number, email (masked), domain_matched, verified_at, data_confirmed, flag_text - Row count: "X RTOs onboarded" - Flag queue: unresolved flags visible and resolvable


Confirm deployed with:

  1. Screenshot: search results showing RTO result type alongside quals/units/skill sets
  2. Screenshot: unit detail page showing TGA data, RTO list, and pricing block
  3. Screenshot: RTO detail page showing subset data and claim CTA
  4. Screenshot: onboarding flow — all three steps
  5. Screenshot: workspace welcome screen
  6. Screenshot: ops onboarding table showing at least one test onboard
  7. Confirm price on unit detail page pulls live from L3 — change RTP-UNIT-GENERIC in ops console, confirm page updates without redeploy

→ TIM

  • Video embed container is live but empty. Record a short explainer (2-3 mins) — what RTOpacks builds against a unit and how. Drop URL to Alex when ready.
  • Domain verification depends on ASQA domain data in rtopacks-db. Alex will flag if missing. Fallback: user types their domain manually. Less elegant, unblocks the build.
  • Test the onboarding yourself on deploy. Go to ucca.college, find your RTO, claim the workspace, go through the flow. If the data confirmation screen feels wrong, flag it before B-PORT-01 lands on top of it.
  • "Something's wrong" flags arrive at admin@ucca.online. These are data quality signals against the ASQA register. Don't ignore them.

UCCA Inc · Brief B-CAT-02 · Session 18 · 18 March 2026 Cloudflare Account: e5a9830215a8d88961dc6c80a8c7442a "Infinite noodles. Free. Forever."