BodhiTree Documentation
Overview
What is BodhiTree?
Learning philosophy
How BodhiTree differs from other platforms
Where to go next
Contact
Core Features
Interactive multimedia books
Rich learning elements
Assessment and running a class
Multi-platform access
Institutional Adoption
IIT Bombay
Other institutions
User Guide
1. Getting Started
1.1 Creating an account
1.2 Signing in
Two devices at a time
1.3 Instructor mode vs Student mode
1.4 Your role in a course
What each role can do
Enrollment status
1.5 Your profile
1.6 Signing out
2. Creating and Setting Up a Course
2.1 The My Courses dashboard
2.2 Creating a course
Choosing an enrollment type
The two forum defaults
2.3 Importing a course
From a file
From a URL
2.4 Publishing and unpublishing
2.5 Downloading, sharing, and exporting
2.6 Deleting a course
2.7 Course Settings
Card 1: Course Settings
Card 2: About Course
Card 3: Multimedia Book Settings
Card 4: Course Announcement Settings
Card 5: Discussion Forum Settings
Card 6: Content Protection
2.8 Additional Pages
Known limitations
3. People and Enrollment
3.1 The four ways to add people
3.2 Bulk enrollment from a CSV
The file
Recognised column names
Options
The confirmation step
Progress and aborting
The results screen
Enrollment can be capped
3.4 Approving pending students
3.5 Managing enrolled students
Actions menu
Editing batch tags
Upload Tags CSV
3.6 Adding one person at a time
3.7 Adding someone who already has an account
3.8 Managing TAs
Choosing between STA and JTA
What only the creator can do
3.9 Losing access
4. Course Content: the Multimedia Book
4.1 How content is structured
4.2 Building a chapter
Reordering
4.3 Adding content
Video
Document
URL
Quiz
4.4 Authoring quiz questions
Question types
Fields
The quiz ⋮ menu
4.5 In-video quizzes (markers)
Adding a marker
Bulk import and export
What students experience
4.6 Reusing content
4.7 Publishing content to students
5. Labs and Activities
5.1 The labs list
5.2 Creating a lab
5.3 Programming activities
Basic setup
Advanced configuration
Testcases
Resource limits
Autograding
Rubrics for subjective grading
5.4 Quiz activities (lab quizzes)
Questions
Settings
Required files
5.6 Managing activities
The Recycle Bin
5.7 Import and export
Exporting
Importing
5.8 Viewing submissions
Grading with rubrics
Submitting on a student’s behalf
7. Grades and the Gradebook
7.1 How the final percentage is calculated
Where each mark comes from
7.2 The three views
7.3 Editing a grade directly in the grid
7.4 Publishing grades to students
7.5 Extra columns
Creating a column
Editing a column
Deleting a column
7.6 Hiding columns from students / excluding from totals
7.7 Importing marks from a CSV
File requirements
Column header syntax
Cell values
Who gets matched
The import flow
Template
7.8 Undoing an import (rollback)
7.9 Exporting
7.10 Stale grade warnings
7.11 Deleting the gradebook
8. Announcements, Email and the Discussion Forum
8.1 Announcements
Whether announcements send email
8.2 Email Notices
Choosing recipients
Importing a recipient list
Composing
8.3 The Discussion Forum
Creating a thread
Moderating
Anonymity
Forum email
8.4 Schedule
9. Analytics and Statistics
9.2 Quiz Report
9.3 Leaderboards
Course leaderboard
Lab leaderboard
9.5 Exporting data
10. Reference
10.1 File size limits
10.2 Code execution limits
What you may change
Output shown to students
10.3 Attempt limits
10.4 CSV formats
Gradebook extra-columns import
Gradebook export
Email recipients import
10.5 Quiz question file (SAFE ODT format)
10.6 Roles at a glance
10.7 Time and scheduling
10.8 Account and session limits
10.9 Features that are not available
Appendix A. What Your Students See
A.1 Before they are enrolled
A.2 Publishing and the “Upcoming Content” state
A.3 Multimedia Book quizzes: the three reveal settings
A.4 In-video quizzes
A.5 Labs and activities
A.7 Programming assignments
A.8 Lab quizzes (the “other” activity type)
A.9 Grades, leaderboard, and statistics
A.10 Discussion forum
Developer Documentation
Overview
📋 Step-by-Step Process for Feature Development
✅ 1. Submit Feature Request
🧱 2. Approval & Preparation
🧪 3. Developer Tasks
a. Planning
b. Coding
c. Testing
d. Submission
🔄 4. Core Team Review & Integration
🚀 5. Deployment & Final Testing
🌐 6. Production Release
Found a bug instead?
Feature Development
Best Practices
Writing a Git Message
Writing subject line
Add emojis to your messages
Access Request
What you are asking for
Steps
While you have access
Feature Request Process
📌 Steps
✅ Approval Team Members
Design Process
Bug Reporting
Follow TDD Approach
🧭 TDD Workflow: Red – Green – Refactor
📁 Folder Structure
Django (Backend)
React (Frontend)
✅ Test Types with Logic and Examples
1. Unit Testing
2. Integration Testing
3. Functional Testing
4. End-to-End (E2E) Testing
5. Smoke Testing
6. Regression Testing
🧪 Real TDD Example: “Create a Course”
Django
React
🚀 TDD Best Practices
Testing Types in Bodhitree
1. ✅ Unit Testing
🔍 What:
🔧 React:
🔧 Django:
2. ✅ Integration Testing
🔍 What:
🔧 React:
🔧 Django:
3. ✅ Functional Testing
🔍 What:
🔧 React:
🔧 Django:
4. ✅ End-to-End (E2E) Testing
🔍 What:
🔧 Tools:
5. ✅ Manual Testing
🔍 What:
🔧 Tools:
6. ✅ Smoke Testing
🔍 What:
🔧 Usage:
7. ✅ Regression Testing
🔍 What:
🔧 Tools:
8. ✅ Performance Testing
🔍 What:
🔧 React:
🔧 Django:
9. ✅ Security Testing
🔍 What:
🔧 React:
🔧 Django:
🧩 Summary Table
Testing Process
Process
Future: enhancements (using metrics for quality software)
See also
Branching Style
Purpose
Git branching structure matrix
Key Points
Merge Rules
Key Points for Quarterly Releases
Versioning System:
Merging Process for Releases
See also
Platform Setup & Installation
Original Repository
Directory Structure
Prerequisites
Installation
Method 1: Interactive Script (Recommended)
Method 2: Manual, Step-by-Step Installation
Developing with VS Code
Step 1: Install the required VS Code extensions
Step 2: Attach VS Code to the containers
Step 3: Run and debug the
wsgi
(backend) container
Step 4: Run the
nodejs
(frontend) container
Contributing
Merge Request Checklist
🔍 Code Quality
🧪 Testing
📄 Documentation
🔐 Security & Performance
🚀 Deployment Readiness
📝 Merge Request Metadata
🧑⚖️ Reviewer Checks (For Reviewers Only)
Deployment
Best Practices
Versioning Convention
In short
Versioning
Current & Past Versions
Current version
Upcoming version
Past versions
See also
Bug Reporting & Process
Format for creating an issue on Github
Title
Body
After you submit
Do not use this format for
BodhiTree Documentation
Index
Index