Milestone System
The milestone system tracks student progress through program requirements, thesis stages, and other academic checkpoints.
Overview
What Are Milestones?
Milestones are:
- Defined checkpoints in academic progress
- Trackable with submission and approval workflows
- Configurable for different programs
- Triggering notifications and reminders
Milestone Components
| Component | Description |
|---|---|
| Templates | Milestone definitions |
| Instances | Assigned milestones for specific students |
| Sets | Groups of related milestones |
| Approvals | Review workflow for submissions |
Milestone Templates
Template Properties
Each template defines:
- Name - Milestone title
- Description - What's required
- Category - Type of milestone
- Applicable To - Who it applies to
- Approval Requirements - Who must approve
- Form Schema - Data to collect
- Deadline Rules - When it's due
Categories
| Category | Examples |
|---|---|
thesis_progress | Draft submission, data collection |
committee_formation | Committee selection, approval |
defense | Proposal defense, final defense |
annual_review | Yearly progress review |
administrative | Paperwork, registrations |
presentation | Conference talks, lab meetings |
submission | Paper submissions |
Creating Templates
- Go to Admin → Milestones → Templates
- Click Create Template
- Fill in template details
- Define approval workflow
- Add form fields (if needed)
- Save
Milestone Sets
What Are Sets?
Sets group related milestones:
- Honors Thesis Set - All thesis milestones
- PhD Year 1 Set - First-year requirements
- Annual Review Set - Yearly checkpoints
Creating Sets
- Go to Admin → Milestones → Sets
- Click Create Set
- Name and describe the set
- Add templates to the set
- Set order and dependencies
- Save
Milestone Instances
Assigning Milestones
When a student enters a program or starts thesis:
- System creates instances from templates
- Instances are linked to the student
- Deadlines are calculated
- Approvers are determined
Instance States
| State | Description |
|---|---|
not_started | Milestone not begun |
in_progress | Student working on it |
submitted | Awaiting review |
under_review | Being evaluated |
revision_requested | Needs changes |
approved | Completed successfully |
completed | Finalized |
exempted | Requirement exempted |
waived | Requirement waived |
State Transitions
not_started → in_progress → submitted → under_review
│
┌───────────────────────┼───────────────────────┐
│ │ │
▼ ▼ ▼
revision_requested approved rejected
│ │
│ ▼
└────────────────► completed
Approval Workflow
All approvals run through the unified workflow engine (Workflow → WorkflowInstance → StageInstance → StageApproval). When a student submits something for review, the entity itself simply carries the status submitted — per-approver progress is tracked on StageApproval records, each of which moves through:
| Approval status | Meaning |
|---|---|
pending | Awaiting this approver's decision |
approved | This approver signed off |
rejected | This approver rejected |
revision_requested | This approver asked for changes |
delegated | Passed to another approver |
Approval Roles & Ordering
Who approves each stage (advisor, committee members, program committee, department admin) and whether they act sequentially or in parallel is defined on the Workflow itself — workflow definitions are seeded at application boot and managed in the program consoles' Workflows tab. Approver assignment is resolved automatically per entity (e.g., the student's advisor, the relevant committee group).
To change an approval chain, edit the workflow's stages and approver roles in the Workflows tab rather than per-milestone configuration.
Deadlines and Reminders
Deadline Calculation
Deadlines can be:
- Fixed Date - Specific calendar date
- Relative - Offset from another date
- Rolling - Repeating interval
Reminder Configuration
Set up automatic reminders:
- Days before deadline
- Reminder frequency
- Notification channels (email, in-app)
- Escalation rules
Example Configuration
Defense Milestone:
Deadline: Thesis submission date + 30 days
Reminders:
- 14 days before: First reminder
- 7 days before: Second reminder
- 1 day before: Final reminder
Escalation:
- Overdue: Notify advisor
Form Schemas
Custom Fields
Milestones can collect data:
- Text responses
- File uploads
- Date selections
- Checkboxes
- Signatures
Schema Definition
Define fields in JSON schema format:
{
"type": "object",
"properties": {
"abstract": {
"type": "string",
"title": "Thesis Abstract"
},
"defense_date": {
"type": "string",
"format": "date",
"title": "Proposed Defense Date"
}
}
}
Notifications
Notification Events
Automatic notifications for:
- Milestone assigned
- Deadline approaching
- Submission received
- Approval required
- Status changed
- Revision requested
Email Templates
Each event can use custom email templates:
- Go to Admin → Email Templates
- Create template for milestone event
- Link template to milestone
- Configure recipients
Reporting
Milestone Reports
Generate reports showing:
- Milestone completion rates
- Overdue milestones
- Approval timelines
- Student progress summaries
Accessing Reports
- Go to Admin → Reports → Milestones
- Select report type
- Filter by program, date, status
- Export as needed
Troubleshooting
Milestone Not Appearing
- Verify set is assigned to student
- Check instance was created
- Confirm student has correct role
- Review visibility settings
Approval Stuck
- Check all required approvers
- Verify approver has permission
- Review approval configuration
- Manually advance if needed