Enrollment
1. Overview
An Enrollment represents a student's participation in a specific Batch offered by an Organization.
While a Course defines what is being taught and a Batch defines when and how it is delivered, the Enrollment establishes the relationship between:
Student ↔ Batch
For example:
Course
Mathematics Foundation
│
▼
Batch
Class 10A — Evening
│
▼
Enrollment
Aarav Sharma → Class 10A
Enrollment is therefore the point where a prospective learner becomes an active participant in an organization's learning program.
2. Purpose of Enrollment
Enrollment provides a structured record of a student's participation in a batch.
It allows Tutorog to track:
- Which student joined which batch.
- When they joined.
- Their enrollment status.
- Their relationship with the organization.
- Their fee arrangement.
- Their participation history.
- When they leave or complete the program.
Enrollment also acts as the foundation for several other features:
Enrollment
│
├── Attendance
├── Fees / Payments
├── Learning Progress
├── Assignments
├── Materials
├── Feedback
└── Communication
3. Course, Batch & Enrollment
These three concepts should remain separate.
Course
What is being offered?
Batch
When and to whom is it being delivered?
Enrollment
Which student is participating in this batch?
Example:
Organization
│
▼
Course: Mathematics Foundation
│
├── Batch A — Evening
│ │
│ ├── Enrollment → Aarav
│ ├── Enrollment → Ananya
│ └── Enrollment → Rohan
│
└── Batch B — Weekend
│
├── Enrollment → Priya
└── Enrollment → Rahul
This separation allows the same Course to be delivered through multiple Batches while each student's participation remains independently tracked.
4. Enrollment Lifecycle
An enrollment can follow this lifecycle:
Requested
↓
Pending
↓
Approved
↓
Active
↓
Completed
Other possible outcomes include:
Requested → Rejected
Pending → Cancelled
Active → Withdrawn
Active → Suspended
Requested
The student or parent has expressed interest in joining.
Pending
The organization needs to review or complete the enrollment.
Approved
The organization has accepted the student.
Active
The student is currently participating in the batch.
Completed
The student has successfully completed the enrollment period or course.
Withdrawn
The student left before completion.
Cancelled
The enrollment was cancelled before becoming active.
Rejected
The organization declined the enrollment request.
5. Enrollment Sources
Students can enter an organization through different pathways.
Organization-led Enrollment
A student joins through the organization directly.
Student visits institute
↓
Organization creates enrollment
↓
Student joins batch
Tutorog Discovery
A parent/student discovers an organization through Tutorog.
Discover Organization
↓
View Course
↓
Select Batch
↓
Request Enrollment
↓
Organization Approves
↓
Enrollment Active
Invitation
An organization may invite a student to join a batch.
Organization
↓
Invite Student
↓
Student / Parent Accepts
↓
Enrollment Created
Tutorog should support multiple enrollment sources without changing the underlying enrollment model.
6. Enrollment Request
A request represents a student's intention to join.
The request may contain:
- Student
- Parent/Guardian
- Organization
- Course
- Preferred Batch
- Message
- Requested date
- Status
Example:
Enrollment Request
Student: Aarav
Course: Mathematics Foundation
Preferred Batch: Class 10A
Requested by: Parent
Status: Pending
The organization can then:
Approve · Reject · Ask for Information
7. Approval Workflow
For organizations that require approval:
Parent / Student
│
▼
Request Enrollment
│
▼
Organization
│
▼
Review Request
│
┌───┴────┐
▼ ▼
Approve Reject
│
▼
Enrollment Created
│
▼
Student Joins Batch
The organization should be able to configure whether enrollment requires approval.
8. Direct Enrollment
Some organizations may want students to join immediately.
For example, a public workshop may have available seats and no approval requirement.
The flow becomes:
Course
↓
Select Batch
↓
Confirm Enrollment
↓
Enrollment Active
If payment is required:
Select Batch
↓
Confirm Enrollment
↓
Payment
↓
Enrollment Active
Payment and enrollment should still remain separate concepts even when they happen in the same user journey.
9. Enrollment Information
An enrollment should capture information relevant to the student's participation.
Identity
- Student
- Parent/Guardian where applicable
- Organization
- Course
- Batch
Enrollment
- Enrollment date
- Start date
- End date
- Status
- Enrollment source
Financial
- Agreed fee
- Discount
- Payment arrangement
- Outstanding amount
Administrative
- Notes
- Withdrawal reason where applicable
- Completion status
The enrollment should preserve the actual agreement at the time of joining, rather than relying only on the current Course or Batch information.
10. Enrollment & Fees
Enrollment and payment should be related but separate.
For example:
Enrollment
₹12,000 agreed fee
│
├── Payment ₹4,000
├── Payment ₹4,000
└── Payment ₹4,000
This allows Tutorog to support:
- Installments.
- Discounts.
- Partial payments.
- Outstanding balances.
- Different payment schedules.
Importantly, if the course price later changes from ₹12,000 to ₹15,000, the original enrollment should still retain the agreed ₹12,000 fee.
11. Enrollment & Attendance
Attendance should be associated with the student's participation in the batch.
Enrollment
│
▼
Batch
│
├── Session 1 → Present
├── Session 2 → Present
├── Session 3 → Absent
└── Session 4 → Present
This allows Tutorog to calculate attendance for the student's enrollment.
If the student changes batches, their historical attendance should remain associated with the appropriate enrollment/batch.
12. Enrollment & Learning Progress
Progress is also tied to the student's learning relationship.
For example:
Enrollment
│
▼
Course
│
├── Topic 1 ✓
├── Topic 2 ✓
├── Topic 3 →
└── Topic 4 ○
This allows a student's learning history to remain meaningful even after they leave a batch.
13. Changing Batches
A student may need to move from one batch to another.
For example:
Batch A
│
│ Transfer
▼
Batch B
The original enrollment should generally not simply be overwritten.
Instead:
Enrollment #1
Batch A
Status: Transferred
↓
Enrollment #2
Batch B
Status: Active
This preserves the student's history.
14. Withdrawal
A student may leave before completing a course.
The enrollment should transition to:
Withdrawn
The system may capture:
- Withdrawal date.
- Reason where appropriate.
- Refund information.
- Outstanding fees.
- Last attended session.
Historical learning and attendance records should remain available according to the organization's retention and privacy policies.
15. Completion
When a student completes a course/batch:
Active
↓
Course Completed
↓
Enrollment Completed
The student should retain the completed course in their learning history.
This can eventually support:
- Certificates.
- Achievements.
- Course completion records.
- Portfolio/history.
- Reviews.
16. Parent & Student Experience
For a Parent/Guardian, enrollment should answer:
"Where is my child enrolled?"
For a Student:
"What am I currently learning?"
For an Organization:
"Which students are enrolled in my courses and batches?"
For a Tutor:
"Which students am I responsible for teaching?"
The same Enrollment record connects these experiences.
17. Organization Owner Experience
The Organization Owner should be able to:
- View enrollment requests.
- Approve/reject requests.
- Create enrollments manually.
- View active enrollments.
- Transfer students between batches.
- Withdraw students.
- View enrollment history.
- View enrollment-related financial information.
- Monitor enrollment numbers.
Example dashboard:
ENROLLMENTS
Pending Requests 5
Active Students 128
New This Month 18
Withdrawn 3
[ Review Requests ]
[ View Students ]
18. Tutor Experience
Tutors generally do not need to manage enrollment administration.
They should be able to see the result of enrollment:
My Batch
Mathematics — Class 10A
24 Active Students
They may see when:
- A student joins.
- A student leaves.
- A student transfers into/out of their batch.
But approval, fees, and enrollment administration should normally remain with the Organization Owner or authorized staff.
19. Student / Parent Experience
Students and parents should be able to see enrollment status.
For example:
Mathematics Foundation
Batch:
Class 10A — Evening
Status:
Active
Started:
1 August 2026
Tutor:
Amit Sharma
For a pending request:
Mathematics Foundation
Status:
Enrollment Request Pending
Submitted:
20 August 2026
This avoids ambiguity about whether the student has actually joined the organization.
20. Enrollment Notifications
Important enrollment events should trigger notifications where appropriate.
Examples:
Parent/Student
- Enrollment request submitted.
- Enrollment approved.
- Enrollment rejected.
- Enrollment cancelled.
- Batch changed.
- Enrollment completed.
Organization
- New enrollment request.
- Student accepted.
- Student withdrawal request.
Tutor
- New student joined assigned batch.
- Student transferred out.
- Student withdrawn.
Notifications should be relevant to each role.
21. Enrollment vs Membership
An important distinction:
Enrollment represents participation in a specific learning program.
It should not be used as a general relationship between a person and an organization.
For example:
Parent → Organization
is not necessarily an enrollment.
Instead:
Student
↓
Enrollment
↓
Batch
↓
Course
↓
Organization
This keeps the data model flexible for parents who manage multiple children and students who may enroll in multiple courses.
22. Important Product Principles
1. Enrollment belongs to a Student
Not directly to the User account.
A parent may manage multiple students, and each student can have independent enrollments.
2. Enrollment points to a Batch
Because the student participates in a specific scheduled learning group.
3. Course is inherited through the Batch
The Batch belongs to a Course, so the enrollment can understand the course through the batch relationship.
4. Enrollment has its own lifecycle
A student can request, join, transfer, withdraw, and complete a program.
5. Enrollment preserves history
Historical enrollments should not be deleted simply because a student leaves.
6. Financial agreements belong to the enrollment context
The student's agreed fee should remain historically accurate even if the course's current price changes.
23. Core Relationship
The fundamental relationship is:
Organization
│
▼
Course
│
▼
Batch
│
▼
Enrollment
│
▼
Student
With the parent relationship:
User
│
└── Parent / Guardian
│
├── Student A
│ └── Enrollment
│
├── Student B
│ └── Enrollment
│
└── Student C
└── Enrollment
And the enrollment becomes the bridge between the learner and the organization's actual learning operation.
Core Principle
Enrollment is the record that turns a Student from a prospective learner into a participant in a specific Batch, while preserving their learning, attendance, financial, and participation history.