Admin
Bulk Upload ADMIN
1 Subject Configuration
Set the subject details that will apply to ALL questions in your CSV.
2 CSV Format & Template
Your CSV must have these exact column headers in the first row.
questionREQThe full question text
optionAREQText for option A
optionBREQText for option B
optionCREQText for option C
optionDREQText for option D
correctAnswerREQA, B, C or D
explanationOPTShown after answer
topicOPTOverrides default topic
courseCodeOPTOverrides default course code
yearOPTOverrides default year
difficultyOPTEasy, Medium or Hard
πŸ’‘ Tips: Wrap cells containing commas in double quotes. Leave optional columns blank to use defaults from Step 1. correctAnswer must be uppercase A, B, C or D.
3 Upload Your CSV
Drag & drop or click to browse. We'll validate before uploading.
πŸ“„
Drop your CSV file here
or click to select β€” .csv files only
πŸŽ‰
Upload Complete!
0
Uploaded
0
Failed
0
Total Rows
← Back to Admin
1 Subject Configuration
These defaults apply to all rows in your CSV. Individual rows can override courseCode and year.
2 CSV Format & Template
One row per part. Parts belonging to the same question share the same courseCode, year and questionNumber. The uploader groups them automatically.
courseCodeREQe.g. PHY001 β€” used to group parts into one question
yearREQe.g. 2021 β€” used to group parts into one question
questionNumberREQInteger e.g. 1, 2, 3 β€” groups all parts of one question
partREQa, b, c, d… β€” letter of this part
topicREQTopic for this specific part (can differ between parts)
marksREQInteger marks for this part e.g. 7
questionTextREQFull text of this part's question
markSchemeREQKey points β€” what the AI grades against
modelAnswerOPTFull model answer shown to students after grading
allowImageSubmissionOPTtrue or false β€” overrides default for this question
πŸ’‘ How grouping works: Rows with the same courseCode + year + questionNumber are merged into one essay question document with multiple parts. Parts are ordered by the part column (a, b, c…). Each question gets a totalMarks auto-calculated as the sum of all its parts.

⚠️ Images not supported in bulk upload β€” add diagrams later using Edit in the admin essay form.
3 Upload Your CSV
We'll validate, check for duplicates, and show a grouped preview before you upload.
πŸ“
Drop your Essay CSV file here
or click to select β€” .csv files only
πŸŽ‰
Upload Complete!
0
Questions Uploaded
0
Failed
0
Duplicates Skipped
← Back to Admin
1 Notes Import (JSON)
Upload a .json file containing an array of lecture_notes documents. This will create or update notes by topicId.

Required fields: subjectId, subjectName, courseCode, topicId, topicName, title, status, difficulty.
Optional: summary, body (HTML), keyPoints, practiceTip, estimatedReadTime, imageIds.
2 Upload JSON File
Drag & drop your .json file here, or click to select it.
πŸ“
Drop JSON file
One file containing an array of notes
3 Import Notes
This will write into the lecture_notes collection. Notes with the same topicId will be updated.