feat: add CSV import for student event rankings
Let advisors load preference ranks from a converted CSV with fuzzy matching, known aliases, and a parse-preview-save page instead of relying on the ranking editor. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# Import Student Event Rankings
|
||||
|
||||
**Created:** 2026-08-28
|
||||
**Last updated:** 2026-08-28
|
||||
**Description:** How to import student event preference rankings from a CSV.
|
||||
|
||||
## CSV format
|
||||
|
||||
```
|
||||
Student Name,1,2,3,4,5,6
|
||||
"Last, First",Video Game Design,Coding,Flight
|
||||
First Last,Video Game,Coding
|
||||
```
|
||||
|
||||
- `Student Name` is required. `Last, First` and `First Last` both work.
|
||||
- Rank columns are `1` through `10`. Empty cells are skipped. Extra columns are ignored.
|
||||
- Event cells may be the official name, the catalog short name, or a close miss. Fuzzy matching scores both.
|
||||
- Known nicknames that fuzzy cannot reach are also accepted, including `Solar Racer`, `Challenging Tech`, `Digital Photo`, `Forensics`, `Micro Controller`, `Med Tech`, `Innovations & Inventions`, `Systems Control Tech`, `Structural Eng`, `Drone Challenge`, `Robotics`, and `Audio Podcast`.
|
||||
|
||||
## Steps
|
||||
|
||||
1. Sign in and open **Student Event Ranks** (`/students/event-ranking`).
|
||||
2. Click **Import**.
|
||||
3. Choose the CSV and click **Parse**.
|
||||
4. Review matched rows (raw text, chosen event, score) and any unmatched or ambiguous issues.
|
||||
5. Click **Save to Database**. If any matched student already has rankings, confirm the replace dialog.
|
||||
|
||||
Save replaces rankings only for students who have at least one accepted rank in the file. Other students are unchanged.
|
||||
|
||||
## What is not imported
|
||||
|
||||
Unmatched students, unmatched events, and ambiguous event names are reported in the preview and are not saved. Fix the CSV text or add the student/event in the app, then parse again.
|
||||
@@ -1,7 +1,7 @@
|
||||
# Year Rollover Runbook
|
||||
|
||||
**Created:** 2026-08-14
|
||||
**Last updated:** 2026-08-14
|
||||
**Last updated:** 2026-08-28
|
||||
**Description:** How to roll the chapter into a new competition year using the locked New Year wizard.
|
||||
|
||||
## Prerequisites
|
||||
@@ -40,7 +40,7 @@
|
||||
- `/import` is add-only and skips existing first+last name matches, so re-importing a full roster is safe for returners.
|
||||
11. **Import the new state schedule** from the calendar import page.
|
||||
12. On **Meeting Schedule**, click **Reset** once. That page keeps team/student ids in browser localStorage; after a rollover those ids are stale.
|
||||
13. Collect new event rankings and run team assignment as usual.
|
||||
13. Collect new event rankings (CSV import at `/students/event-ranking/import`, or the ranking editor) and run team assignment as usual.
|
||||
|
||||
## What is deleted vs kept
|
||||
|
||||
|
||||
Reference in New Issue
Block a user