Workflow โ Award Applicant
| Module | Registration + AI |
| Actors | Guest โ Applicant, LinkedIn, AI (MiniMax m3), System |
| SRS refs | UC-04, FR-0302โ0308, FR-0400, BR-001/002/007/010 |
| Status | Planned โ ships with v0.4.0 (interview completes in v0.5.0) |
Purpose
Register an award candidate, run their AI category interview, and hand them a personal share link + "I have applied" card to start collecting public votes.
Preconditions
- Event type
award(orai), registration open, โฅ1 active category. - Toggle
registration.awardon. - Applicant has no registration of any type in this event (BR-001) โ including GoH (BR-002).
Main flow
- Guest taps Apply for an Award (
/register/award). - Chooses one category (active only). "One person, one category" notice shown.
- Continue with LinkedIn โ profile imported (id, name, email, picture) โ the system may verify the LinkedIn profile exists (BR-008). Basic fallback available with reduced trust badge.
- Basic info form: name (prefilled), email, WhatsApp number (required, BR-007), optional title/company.
- Photo upload (jpg/png/webp, min 400ร400) โ preview + confirm.
- AI interview:
- System draws N (default 5) random active questions from
question_bankfor the category (BR-010). - Applicant answers one by one (text).
- Each answer โ AI marks: score 0โ100 + short feedback โ
ai_answers. - Session total + summary โ
ai_sessions, registrationstatus=ai_scored.
- System draws N (default 5) random active questions from
- Success page:
- Personal share link
https://event.production1.jugaar.ai/v/{public_token}, - "I have applied for {event}" card (name + text from admin campaign settings),
- tip: post link + card on LinkedIn/Facebook to gather votes.
- Personal share link
- Notification to applicant (dashboard + email/WhatsApp placeholder).
Alternate / error flows
- A1 Event type = normal โ steps 6 skipped entirely โ normal registration OK (FR-0405).
- A2 AI unavailable โ interview postponed: registration saved
status=submitted, "continue later" link on dashboard; retry notice sent when AI recovers. - A3 Duplicate category attempt โ error "You already applied in a category" (BR-001).
- A4 Applicant also tries GoH (or reverse) โ blocked with explanation (BR-002).
- A5 Invalid photo โ rejection message, upload again (no data lost).
Rules applied
BR-001, BR-002, BR-007, BR-008, BR-010.
Data touched
| Table | Change |
|---|---|
| users | INSERT/lookup |
| registrations | INSERT (type=award, public_token, photo) |
| question_bank | SELECT random active |
| ai_sessions / ai_answers | INSERT session + marked answers |
| audit_log | registration.created, ai.session.completed |
| notifications | welcome + share-link reminder |
Sequence
sequenceDiagram
participant A as Applicant
participant W as Website
participant LI as LinkedIn
participant AI as AI (MiniMax m3)
participant DB as MariaDB
A->>W: /register/award โ pick category
W->>LI: OAuth
LI-->>W: verified profile
A->>W: info + WhatsApp + photo
W->>DB: registration (award)
loop N random questions
W->>A: question
A->>W: answer
W->>AI: mark answer
AI-->>W: score + feedback
W->>DB: ai_answers
end
W->>DB: session total, status=ai_scored
W-->>A: share link + "I have applied" card
