3. People and Enrollment
Where: sidebar → Course Management → People
(/courseware/course/{courseId}/management/people)
The page opens with four counters — Total Students, Approved, Pending Approval, Current TAs — and three tabs: Approved Students, Pending Approvals, Current TAs.

3.1 The four ways to add people
Method |
Best for |
Where |
|---|---|---|
Bulk CSV upload |
A whole class at once, including people without accounts |
Enroll Students/TAs → Bulk File based |
Add individually |
One or two people |
Enroll Students/TAs → Add Individual |
Search and add |
People who already have BodhiTree accounts |
Enroll Students/TAs → Search and Add |
Approve self-enrollment |
Students who found the course themselves |
Pending Approvals tab |
Bulk CSV is the only method that creates accounts for people who do not yet have one.
3.2 Bulk enrollment from a CSV
Click Enroll Students/TAs → Bulk File based Students Upload.
The file
.csv only. Anything else is rejected with “Only CSV files are allowed”.
Download Sample CSV from the dialog for a working template.
Only two columns are mandatory: Name and Email. The sample file states this
explicitly, and strongly recommends a third:
Name,Email,RollNumber,Password,Group,House
Kameswari Chebrolu,kc@gmail.com,123456,secretpass,Aryabhatta,Slytherin
Include a roll number column. The sample file’s own note recommends it: it makes marks management far easier when you download spreadsheets later.
Missing mandatory headers give “Missing mandatory headers in csv file”.
Recognised column names
These headers are understood as student fields:
email, first_name, last_name, name, password,
roll_no, roll no, roll no., rollnumber, roll,
first name, last name
Any other column becomes a batch tag — a custom grouping column on this course.
That is how Group, House, Batch, or Tutorial in the example above work. They
become filterable columns in the student table.
Options
☐ Is it an ASC file?
☑ Send welcome or password reset email? — on by default
Role: STA, JTA, or Student — the whole file is enrolled in the role you pick here
The confirmation step
Before anything is written, BodhiTree shows you what it is about to do. Read this screen — it is the only chance to catch a mistake.
New columns. Unrecognised headers are listed for confirmation:
Your file contains column(s) that aren’t standard student fields. Each one checked below will be created as a new column for this course. Leave a column unchecked if it’s a typo — its data will be ignored.
Likely typos are flagged “⚠ looks like a typo”. Unchecking a column is how you discard a mis-typed header rather than creating a junk column.
Profile updates. If your CSV has a different name or roll number for an existing user, you get a table of old → new values, with this warning:
Name & roll number are stored on the student’s global profile. Confirming will update them across the entire platform, in all of their courses, not just this one.
⚠️ Take this seriously. A stale name column in your CSV will rewrite that person’s name in every other course on BodhiTree. If you are unsure, remove the name and roll number columns and enrol on email alone.
Progress and aborting
Enrollment runs in the background with live counters for newly registered, enrolled, already enrolled, and failed.
Abort stops pending enrollments only:
Students who have already been enrolled will remain enrolled. Only pending enrollments will be cancelled.
The job survives a page reload — you will be reattached to it.
If nothing happens for about a minute you will see “Enrollment hasn’t started — the background worker may be unavailable.” That is an infrastructure problem; contact your administrator.
Enrollment can be capped
If you exceed the course owner’s plan you get “Max number of allowed students exceeded”. Students hitting the same cap while self-enrolling see the same message.
3.3 Import History
Import History shows every bulk enrollment with expandable detail:
Users created on the platform and enrolled
Users already on the platform, now enrolled
Global roll numbers updated — old and new, across all their courses
Global names updated — old and new
Users already enrolled (no action taken)
Users that failed, with the reason
Duplicate entries found in the CSV
This is where you check what a bulk import actually did, especially the two “global” sections.
3.4 Approving pending students
Pending Approvals tab. Tick the students you want, then Approve Selected or Reject Selected.
Until you approve them, pending students see “Your approval is Pending.” and can access nothing.
3.5 Managing enrolled students
The Approved Students tab has a server-side search (type at least 3 characters), filter pills All / Active / Inactive, and one column per batch tag.
Selecting everyone on the page offers to select all N students across every page — so bulk actions can span the whole roster, not just the current page.
3.6 Adding one person at a time
Enroll Students/TAs → Add Individual Students/TAs: Name, Email, Roll No., a Role choice of STA / JTA / Student, a box for each existing batch tag, and ☑ Send onboarding email to user.
3.7 Adding someone who already has an account
Enroll Students/TAs → Search and Add Students/TAs: search the platform by name or email, choose Student, Instructor, or TA — and if TA, STA or JTA — then Add.
People already enrolled are shown separately so you do not add them twice.
3.8 Managing TAs
The Current TAs tab lists staff with a coloured role badge. You can Export TAs as CSV and Remove Selected TAs.
Choosing between STA and JTA
STA (Senior TA) |
JTA (Junior TA) |
|
|---|---|---|
Create/edit activities and testcases |
✅ |
❌ |
See hidden testcases |
✅ |
✅ |
See hidden activities, solutions, execution settings |
✅ |
❌ |
Grade — edit manual marks |
✅ |
✅ |
Comment on submissions |
✅ |
own comments only |
Run and proctor exams |
✅ |
❌ |
Submit on a student’s behalf |
✅ |
❌ |
Access the gradebook |
✅ |
❌ |
Export a lab or activity |
✅ |
✅ |
An STA can do everything you can do, apart from the creator-only powers below. Appoint STAs deliberately.
JTA is the right role for a marker — someone who should grade submissions without being able to change the assessment itself.
What only the creator can do
Two things do not transfer with the STA role:
Deleting course content, when content protection is on (§2.7)
Changing the content protection setting itself
Importing email recipients from a file is course-owner-only
3.9 Losing access
If your role is removed while you are working, the next click returns you to the course list with “You no longer have instructor access to this course.”
Known limitations
The interface does not hide actions a JTA cannot perform. Buttons render for everyone; the server rejects the action. A JTA may see options that fail when clicked
Name and roll number edits are global, not per-course
Batch tag edits are lost unless you explicitly Save Tags
Previous: 2. Creating and Setting Up a Course · Next: 4. Course Content — the Multimedia Book