Instructor console

Brophy FPV Club · flight simulator lab
← Home page

Sign in

The instructor password signs every command, and each kiosk refuses anything it can't verify. The password never leaves this page. The GitHub side is handled by the club's API (brophy-fpv-club-api.netlify.app), which holds the repo token so this page doesn't have to.

Review photos Approvals Kiosks Fly requests Emails

Pilot emails

One address per pilot, by roster name. The Request-to-fly form prefills the pilot's email from here, and a mentor spotter's address too (they approve every flight they spot). The list also fills itself in from each request filed. Saved to settings/fly-recipients.json in the private control repo. Anyone who types a roster name on the public form sees that pilot's address prefilled - the price of prefilling.

Loading the next event…

Calendar

Every request on file, on the day of the flight. Green = approved, amber = waiting, red = denied; events are outlined. Click a day to see it below.

Requests on file

Newest flight first. Approvers decide from the buttons in their email; if one answers another way (a reply, in person), record it here - that settles it for every approver and the pilot is emailed the same as if they had clicked.

Who approves, who is told

The Request to fly form emails people in two roles. Approvers each get their own Approve / Deny links; every approver must say yes (one no denies). Told people get a separate heads-up with the details and who to email if there is an issue, then the decision. The pilot's own email is required on the form and gets the decision too; the pilot can add more "told" addresses. Addresses live in the private control repo (settings/fly-recipients.json), never in the website's code. Comma or newline separated.

Pilot and mentor addresses live on the Emails tab. A pilot who is not a mentor must name a mentor as the spotter; a mentor spotter always approves too. Fields above and below all take several addresses, comma or newline separated.

Club meeting

Special event presets

A preset is a starting point on the form: its name, who is told and who else has to approve. The mentor filing can still rename the event and add people.

Review photos

Photos pilots took of their work on the Pilot Path page. Pass files the same signed approval as the Approvals tab (both kiosks pull it) and tells the pilot; Fail tells the pilot why, and they can send a new photo. The badge rules still apply: Sim Flight needs 5 sim hours, a checkpoint needs the rest of its tier.

Approve a badge

For bench and witnessed badges. The pilot has DM'd their photo (or you watched them do it); you approve here and a decision signed with your password is filed for that pilot. Both kiosks pull it on their next sync, whichever is on. Quiz badges are earned by passing the quiz — only use this to override. Nothing here can be undone by a student; Revoke is yours alone.

Approving a badge that is already earned is harmless.

Progress

Sources: kiosk = the kiosk’s last snapshot (data.json), approved = a decision on file from this console, quiz / lessons / steps = what the pilot did on the website. Approve and Revoke file the same signed decision as the form above (with its note); both kiosks apply it on their next sync, and a revoke clears the badge there even if the kiosk awarded it.

Sim Flight for everyone at 5+ hours

Pilots the kiosk shows with 5 or more sim hours who do not hold Sim Flight yet. One click files a signed approval for each (note: "5+ sim hours"); both kiosks apply them on their next sync. Revoke any one from their progress list.

Loading…

Who holds what

Kiosk snapshot plus instructor decisions on file.

Kiosk

Loading…

Actions

Commands reach the kiosk within about 15 s. They expire after 10 minutes and each one runs once. Firewall / Steam blocking needs admin rights and stays in the admin dashboard on the kiosk itself (use Chrome Remote Desktop).

Results

Nothing yet.