Have a fresh email address ready (one you haven't used on the app)
Confirm at least 1 active event with open rounds exists (ask in the group chat if unsure)
Have a second browser or incognito window ready for multi-device tests
Need Creator or Admin access? Text the Tech Lead in the group chat with your email and they'll get you set up.
Journey ANew Participant (Primary User Flow)
Phase 1 Discovery (Not Logged In)
Open the app URL in your browser
HomePage loads with hero section, feature highlights, and active event cards
Check the header navigation
Should show a "Login" button. No user menu or avatar visible.
Click "Browse Events" on the home page
Events page loads. Event cards show name, dates, participant count, and status badges.
Click on any event card
Event detail page loads with: name, description, dates, participant count, rounds list with status badges (Open/Locked/Scored), and a leaderboard preview (top 5).
Click "Join Event" while not logged in
You get sent to the login page
Phase 2 Sign Up & First Login
On the login page, enter your fresh email address
Email input field accepts the address. "Send Magic Link" button is visible.
Click "Send Magic Link"
Button shows loading state, then a success message: "Check your email"
Check your email inbox and click the magic link
Link opens a verification page in your browser. After a moment, you're sent to the home page, now logged in.
Check spam/junk folder if the email doesn't arrive within a minute.
Verify the header changed
"Login" button is gone. User avatar or email is shown. User menu is accessible.
Phase 3 First Profile Setup
Click your name/avatar in the top right, then click "Settings"
Settings page loads with empty/default profile values.
Fill in display name, bio, and location
All fields accept input. No errors.
Try uploading an invalid file as avatar (e.g., a PDF)
Error message: "Invalid file type"
Try uploading an oversized image (>5MB)
Error message: "File too large"
Upload a valid image (JPEG, PNG, WebP, or GIF under 5MB)
Upload starts, preview of your avatar appears.
Click "Save"
Success toast message. Refresh the page — all values persist.
Phase 4 Join an Event
Navigate to a free event detail page and click "Join Event"
(Optional) Test leaving an event: click "Leave Event"
Confirmation modal with warning. After confirming: removed from event, button changes back to "Join Event", stats section disappears.
Phase 5 Play a Round
On the event detail page, find a round with "Open" status and click "Play"
Play page loads. Shows round name, "Open" status badge, lock countdown, and all questions.
Answer a multiple choice question
Options display as buttons. Clicking one highlights it. Selection auto-saves. You can change your selection.
Answer a yes/no question
Yes/No buttons shown. Click one — it highlights and auto-saves.
Answer an over/under question
Line value displayed (e.g., "O/U 45.5"). Click "Over" or "Under" — highlights and auto-saves.
Answer a numeric question
Number input field accepts your value. Auto-saves.
Set the dedication slider
Slider range 0-100%. Points calculation updates dynamically (e.g., "50,000 × 20% = 10,000 dedicated"). Drag to your desired percentage.
Click "Submit Round"
Confirmation modal shows summary of your answers and dedication %. After confirming: success message, inputs become disabled, "Submitted" badge appears.
Phase 6 Results & Leaderboard
Navigate to the event leaderboard (before round is scored)
Your entry is visible with your current points. Your row is highlighted. Rankings shown for all participants.
Return to the Play page for your submitted round
Locked state: your answers shown read-only, dedication % locked, message says "Waiting for results".
Look for the green "live" indicator on the page
A green dot or indicator should be visible, meaning you'll get live updates.
When the admin scores the round, you should see a pop-up notification and the page updates on its own — no refresh needed.
After the round is scored, view results on the Play page
Each question shows the correct answer highlighted. Your answer marked with a check (correct) or X (incorrect). Points earned shown with multiplier breakdown.
Check the updated leaderboard
Rankings updated. Top 3 show gold/silver/bronze badges. Your position shows rank change indicator (up/down/same).
Test leaderboard features: pagination and round filter
If >20 participants: page controls work. Round filter dropdown lets you view standings for a specific round or all rounds.
Phase 7 View Other Players
On the leaderboard, click another player's name
Their profile page opens. Shows their name, avatar, bio, and stats (if public). Private profiles show "This profile is private".
Phase 8 Settings & Preferences
Go to Settings → edit your display name and bio, then Save
Success message. Refresh page — changes persist.
Upload a new avatar, then delete it
New image uploads and previews. "Delete Avatar" prompts confirmation. After deleting, default avatar is shown.
Go to Notifications section and toggle preferences
Toggle email notifications, push notifications (browser may prompt for permission), round reminders, results notifications, winner announcements. Save — preferences persist.
Go to Privacy section and toggle settings
Toggle profile public, show statistics, show event history, searchable profile. Save, then verify from another user's perspective that privacy is applied.
Go to Display section and switch themes
Select Dark → UI changes. Select Light → UI changes. Select System → matches OS. Theme persists after refresh.
Go to Account section. Verify info, then Logout.
Email (read-only), "Member Since" date, and User ID displayed. Clicking "Logout" shows confirmation. After confirming: logged out, redirected to HomePage.
Phase 9 Returning User Login
Close and reopen the app. If session expired, log back in with the same email.
If session was still valid: auto-logged in. If expired: same magic link flow. After login, all your data (profile, events, points) is intact.
Journey BEvent Creator
Phase 1 Get Creator Access
Login as a regular user. Text the Tech Lead in the group chat with your email to get Creator access.
Once they confirm, refresh the app. You should now see a "Create Event" button or link.
Phase 2 Create an Event (4-Step Wizard)
Step 1 — Basic Info: Click the "Create Event" button. Fill in event name, category, description, start/end dates, max participants (optional).
Wizard shows "Step 1 of 4". All fields validate (name required, end date must be after start). Click "Next" to proceed.
Step 2 — Rounds: Click "Add Round", enter round name and lock time. Add a second round.
Progress shows "2 of 4". Round forms appear. Can reorder rounds by dragging. Click "Next" to proceed.
Step 3 — Questions: Select a round tab. Add questions of different types (multiple choice with 3-4 options, yes/no, over/under, numeric). Switch to second round tab and add questions there too.
Progress shows "3 of 4". Question forms appear with type-specific editors. Click "Next" to proceed.
Go to the Users page in the admin menu. Search for a user by email. Change their role to "Event Creator".
User list loads. Search filters results. User details show email, role, join date. Role change updates successfully. Changing to "Admin" requires confirmation.
Phase 3 Event Administration
Go to the Events page in the admin menu. Filter by status. Search for an event. Change an event's status. Archive an event.
All events listed. Filters work. Search works. Status changes apply. Archived events move to archived section.
Phase 4 Sweepstakes Draw
Go to the Draws page in the admin menu. Select a completed event. Click "Execute Draw".
Draw page shows prizes. Confirmation pop-up before executing. After draw: winners shown, proof-of-fairness info displayed. You can download an audit trail.
1 point = 1 sweepstakes entry. The draw is provably fair — anyone can verify the results weren't rigged.
Phase 5 Analytics
Go to the Analytics page in the admin menu. View user/event/charity numbers. Set a date range. Try exporting data.
Analytics page loads with charts and numbers. Date range filter works. Export button downloads a spreadsheet file.
Journey DEdge Cases & Error Handling
D1 Network Errors
Disconnect your internet, try to submit a prediction, then reconnect and retry.
Error message shown when disconnected. After reconnecting, retry succeeds.
D2 Session Expiration
Wait a long time without using the app (or open a fresh incognito window), then try doing something that requires being logged in.
You get sent back to the login page. After logging in again, all your data is still there.
D3 Invalid URLs / 404s
Type random garbage into the URL bar after the site address (e.g., add /events/banana or /xyzzy)
A "not found" or error page shows up. No blank white screens or freezes.
D4 Round Lock Timing
Stay on the Play page when a round is about to lock (check the countdown). Wait for it to lock.
You get a notification when the round locks. If you try to submit after that, you see a "Round locked" error. All the inputs go grey/disabled.
D5 Concurrent Access
Login in two different browsers (or one normal + one incognito). Submit a prediction in Browser 1. Refresh Browser 2. Then logout in Browser 1 only.
Both browsers work on their own. Browser 2 shows the same picks after refresh. Logging out in Browser 1 doesn't kick you out of Browser 2.
D6 Live Connection Reconnection
On the Play page, look for the green "live" dot. Turn your WiFi off for a few seconds, then turn it back on.
The dot changes or shows "Reconnecting..." while offline. Green dot comes back when you're online again. Anything you missed gets caught up automatically.
Tester Notes
Record any bugs, observations, or issues you encounter during testing.