Fab Academy
Randomizer

Choose your operation mode to begin.

โš™๏ธ Settings

Appearance

Map

10
3s

Randomizer

3
5
0.5

Help & Support

Data Management

โš ๏ธ Danger Zone

๐Ÿ“„ presented.json - Export

๐Ÿ“ฅ Import JSON Data

๐Ÿ“š Help & Setup (Instructor Mode)

Welcome to Instructor Mode

As an instructor, you control the randomizer and broadcast the selected student's result to all participants connected in the session.

๐ŸŽฏ How to Spin

  • Click the Spin button at the bottom of the screen to randomly select a student. The map flies to their lab automatically.
  • A popup appears showing the student's name, lab, and their Special mention history by week.
  • The student is automatically marked as Present in the current week after every spin. Use Absent if they didn't present.
  • From the popup you can also:
    • ๐Ÿ“„ Open Student Page โ†’ View the student's full profile
    • ๐Ÿ”ฌ Lab โ†’ View the lab's page
    • ๐Ÿ” Search Lab โ†’ Quick Google Image search for the lab

๐Ÿ“… Remove Student from Presented Today

  • Use the Reset button in the popup, or the Remove icon in the Presented Today sidebar, to clear a student's present/absent status entirely without recording anything for the week.

โญ Special Mention

  • Use Good Work โญ to flag a student for exceptional work each week.
  • A star with the week number is permanently added inside the student's popup as a record.
  • Special mentions track exceptional nominations from different labs during extra time โ€” these students appear in the Special tab for easy selection.

Interface Guide

The sidebar panels give you quick access to session data. Click the vertical tab selection buttons on the right edge of the sidebar to open each panel.

๐Ÿ“‹ Today's List (Main Sidebar)

  • Shows all students and their status for today's session: present, absent, or special mention.
  • Click any student row to jump the map to their lab and show the popup.
  • Use the search box at the top of the sidebar to find a student quickly by name or lab.

๐Ÿ—บ๏ธ Labs Tab

  • Lists all registered FabAcademy labs with their respective students.
  • Shows how many students are in each lab and how many have presented.
  • Click a student name to fly the map to that lab's location.

๐Ÿ“† Weeks Tab

  • Displays a log of past presentation sessions by week number.
  • Use this to review which students presented, were absent, or received a special mention in previous weeks โ€” useful for verifying fairness over time.
  • ๐Ÿ’ก You can drag and drop a student entry from one week to another in this panel to reassign them to a different week.

โœจ Special Tab

  • Shows all students who raised their hand to present during extra time. A small red badge shows the number of students in the waiting list.
  • Useful as a quick reference during endorsement rounds or extra-work review moments.
  • Click the Good Work โญ badge to award a student a special mention.

Data & Import

Student data is synchronised with Firebase. When you first log in, the system checks whether historical data already exists in the shared database.

โณ Checking Synchronised Data...

Connecting to Firebase to verify your historical student data.

๐Ÿ“ฅ Importing Data

  • If the database is empty, import your people.json or presented.json via Settings โ†’ Data Management โ†’ Import.
  • You can upload a file directly or paste raw JSON into the text field.
  • Importing overwrites all current student data โ€” use with care.

๐Ÿ“ค Exporting Data

  • At the end of each session, click the Export button (bottom-left) to download an updated presented.json.
  • Keep this file safe โ€” it contains the full presentation history used to seed future sessions.

Settings

Open the Settings panel via the โš™๏ธ icon (bottom-left). Changes sync immediately to all connected instructors.

๐Ÿ—บ๏ธ Map & Appearance

  • Zoom Depth: How far the map zooms in when a student is selected.
  • Fly Speed: Duration of the animated map flight to a lab.
  • Show all labs on map: Toggle marker visibility for labs that haven't been called yet.
  • Dark Mode: Switch between light and dark themes.

๐ŸŽฒ Randomizer Parameters

  • History Depth (1โ€“10): How many recent picks are remembered for penalty calculation.
  • Penalty Strength (1โ€“10): How strongly recent picks are deprioritised. Higher = more variety enforced.
  • Decay Rate (0.1โ€“0.9): How fast the penalty fades. 0.1 = long memory, 0.9 = quick recovery.
  • Include Continuing / Absent Students: Toggle whether these groups enter the selection pool.

โš ๏ธ Data Management

  • Delete local & remote data: Permanently wipes the shared Firebase database for all users. Extreme caution required.

Randomizer Engine

The engine uses a Stochastic Decaying Penalty model to guarantee fairness and geographic diversity across sessions.

๐Ÿง  How Selection Works

  • Every eligible student is assigned a probability weight.
  • Students from recently selected labs or regions receive a reduced weight โ€” less likely to be picked again, but never excluded entirely.
  • A random value is drawn proportional to total weight (Roulette Wheel Selection). The student whose weight range contains the value is selected.

๐ŸŒ Two-Stage Geographic Selection

  • Stage 1: A geographic region is chosen by weighted random draw.
  • Stage 2: A lab within that region is chosen by weighted random draw.
  • This prevents high-population labs from dominating and ensures a consistent global spread across sessions.

๐Ÿ“‰ Penalty Decay Formula

  • Penalty at history index i: P(i) = max(0.01, 1 โˆ’ (S/10 ร— R^i))
  • Every student always retains a minimum non-zero chance of selection.
  • Tune Penalty Strength and Decay Rate in Settings to control the intensity of variety enforcement.

Instructor Synchronisation

Multiple instructors can share the same Instructor Key to run perfectly synchronised sessions in real time via Firebase.

๐Ÿ”„ What Syncs Automatically

  • Active spin result and selected student
  • Student status changes (present, absent, special)
  • Settings changes (zoom, fly speed, theme, randomizer parameters)
  • Map zoom level and pan position

๐Ÿ’พ Exporting in a Shared Session

  • All instructors share identical state โ€” any one of them can click Export to download the final session data.
  • Only one export is needed; the file will be the same for all.

๐Ÿ”‘ Weekly Key Rotation

  • The Instructor Key is changed weekly by the admin via the Admin Panel.
  • When the key changes, all active instructor sessions are invalidated. Re-enter the new key to continue.

๐ŸŽฎ Demo Mode

Practice Safely

You are currently in Demo Mode. This is a sandbox environment.

Any spins you make, settings you change, or students you mark as absent will not affect the real database or other users.

This mode is perfect for training, testing the randomizer logic, or preparing for a session without risking live data.

Settings & Configuration

Tweak the application behavior to suit your preference. These settings only affect your current browser session.

๐Ÿ—บ๏ธ Map Controls

  • Zoom Depth: Click the gear icon (bottom left) to adjust how far the map zooms in on a student.
  • Fly Speed: Adjust the duration of the animated map flight to a lab.

๐Ÿ‘ฅ Student Pool

  • Include Continuing Students: Toggle whether past students (Level 1/2) appear in the pool.
  • Include Absent Students: Toggle whether students previously marked absent are re-added to the rotation.

Randomizer Engine

The engine uses a Stochastic Decaying Penalty model to ensure variety and fairness.

๐Ÿง  How it works

  • The engine assigns weights to students based on their geographic location.
  • Recently selected labs and regions receive a significant penalty, making them less likely to be picked again immediately.
  • The penalty decays over time based on the Decay Rate set in the Settings.

Import & Export

Practice data management using local JSON files.

๐Ÿ“ฅ Import

  • You can practice importing custom JSON data via Settings > Data Management to see how the system handles formatting.

๐Ÿ“ค Export

  • Export locally modified lists to download a timestamped presented.json file.

๐ŸŽ“ Student (Nomination) Mode

Student Nominating Mode

If you would like to volunteer during the extra time, you can use this feature to digitally raise your hand and notify the instructor.

๐Ÿš€ How it works

  • Search for your name in the search bar at the bottom of the screen.
  • Click the + Nominate button next to your name.
  • The instructor will immediately see that you want to present.
  • Your name will appear in the sidebar list for the instructor to see.
  • To remove your nomination, click the โœ• button next to your name in the Today tab.

๐Ÿ”„ Session Recovery

  • Your nomination is tied to your browser session, which is automatically saved locally. If your tab is accidentally closed or the session expires, re-open this page in the same browser profile โ€” your session ID is stored in your browser's local storage and will be restored automatically, keeping your hand raised.