Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Cadet Randomizer

A single-file web app for cold-calling: pick a section, hit the button, and one cadet is drawn at random with a bit of theater. Built for projecting in a classroom.

Everything lives in Cadet_Randomizer.html — no install, no build step, no server, no internet. Double-click it and it opens in your browser.

Using it

  1. Open Cadet_Randomizer.html.
  2. Click Load roster… (or drag the .xlsx anywhere onto the page).
  3. Pick a section from the dropdown.
  4. Hit Randomize — or just press Space.

The parsed roster is cached in the browser, so you only pick the file again when it changes.

The two visuals

Switch between them with the toggle; the choice takes effect immediately.

Split-flap (default) Airport-departure-board tiles clatter through the alphabet and lock in column by column, last name then first. ~2.4s.
Spinning wheel One wedge per cadet, ~5s eased spin, the pointer ticks as wedges pass, and the winning wedge floods gold.

Either way the draw ends with a confetti burst and the selected cadet's name.

Expected workbook layout

Any .xlsx works as long as each roster worksheet follows this shape. A worksheet is used when its tab name contains "Roster", or when it has cadet rows.

Row Contents
1 SECTION: in column A, the section code (e.g. A1-10) in column B
2 Headers: Last Name, First Name, MI, Grad Year, DOB, Co/Regt, ID, Email
3–21 One cadet per row; blank rows are skipped
22+ Ignored — this is where the attendance-summary table starts

Only Last Name, First Name, MI, and Co/Regt are read. The randomizer never touches the DOB, ID, or email columns.

Privacy

The workbook is parsed entirely in the browser using the built-in DecompressionStream and DOMParser — there are no dependencies and no network calls of any kind. Roster data never leaves the machine.

Roster workbooks are excluded from this repository by .gitignore. They contain cadet names, dates of birth, ID numbers, and email addresses, and this repo is public. Keep it that way — git history is permanent.

Requirements

A current Chromium-based browser or Firefox. Reading .xlsx needs DecompressionStream, which means Chrome/Edge 103+, Firefox 113+, or Safari 16.4+.

Accessibility

Respects prefers-reduced-motion — the draw is identical, just without the long build-up.

About

Very basic tool to pick a student at random with a simple visualization

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages