CSV marks import (TAs)
Most marks live in spreadsheets before they live anywhere else. This feature meets them there — with validation, previews and zero silent errors.
The problem
Ask any teaching assistant where their marks live and you will get the same answer: a spreadsheet. Checkers, quizzes and hard-copies accumulate in rows and columns, and there comes a day when all of it has to become entries in a system — by hand, one row at a time, hoping nobody’s email address has a typo. Manual entry is slow, and its failures are silent: a mistyped address means a student never sees their mark.
How it works
CSV import turns that spreadsheet into a checked import. Teaching staff paste or upload CSV rows — an email and a score per line — and the portal validates everything before saving anything. Each row is checked against the course roster: is this a real enrolled student? Is the score a valid number, within the allowed range? Rows that pass are previewed as they will be saved; rows that fail are listed with the reason, right there, so they can be fixed and re-imported without touching the good rows twice.
The import writes to the same underlying records as manual entry — it is not a parallel system with different rules. Whatever happens next (publishing, the marksheet, the leaderboard) sees exactly what a manual entry would have produced.
Why validation-first matters
- Silent failures become visible. An unknown email is a row-level error, not a student quietly missing their marks.
- Retries are cheap. Fix only the flagged rows in your spreadsheet and import them again.
- Nothing half-saves. The preview step means staff see the effect before committing, exactly as with hand-entered marks.
Built for the middle of the semester
The feature is designed for the moment it is actually needed: scores just arrived, the class is large, and time is short. That is why it never demands a particular spreadsheet template — two columns are enough — and why it reports problems in bulk rather than stopping at the first one. A mid-semester import should take minutes, not an evening.
| Row | Score | Status | |
|---|---|---|---|
| 1 | student.a@example.edu | 8 | Ready |
| 2 | student.b@example.edu | 9.5 | Ready |
| 3 | student.c@exmaple.edu | 7 | Not enrolled |
| 4 | student.d@example.edu | eleven | Not a number |
| 5 | student.e@example.edu | 10 | Ready |
3 rows ready · 2 need fixing — correct them and import again; the ready rows are shown before anything is saved.
Frequently asked questions
What should the CSV look like?
What if a student is not on the roster yet?
Do imported marks publish immediately?
Running a course on nuSkor?
Marks entry, CSV import, evaluation slots and announcements — sign in as a TA and run the whole workflow from one place.
