Milestones List
The Milestones page displays a list of all milestones associated with the current project.
Accessing Milestones
Navigate to Projects -> [Your Project] -> Milestones from the sidebar.
Viewing Milestones
The page shows a table with the following columns:
- Name: The name of the milestone (clickable link to the Milestone Details page).
- Status: The current status of the milestone (e.g., Open, In Progress, Completed).
- Due Date: The target completion date for the milestone.
- Actions: (Usually contains an edit button or link).
Adding a New Milestone
Click the Add Milestone button located in the top-right corner of the page.
Adding milestones requires the Add/Edit permission for the Milestones application area for the specific project. Users without this permission will not see the "Add Milestone" button.
Searching and Filtering
- Search: Use the search bar to find milestones by name.
- Filtering: Apply filters (e.g., by status) if available.
Sorting
Click on column headers to sort the list by that column.
Navigation
Clicking on a milestone name will navigate you to the Milestone Details page for that specific milestone.
Hierarchical Milestones
TestPlanIt supports hierarchical milestone structures, allowing you to organize milestones in parent-child relationships for better project planning and tracking.
Overview
Hierarchical milestones enable you to:
- Break down large milestones into smaller, manageable sub-milestones
- Track progress hierarchically with child milestone completion affecting parent progress
- Organize by phases such as Sprint → Epic → Story
- Visualize dependencies between different levels of work
- Roll up metrics from child milestones to parents
Milestone Structure
Parent-Child Relationships:
- A milestone can have one parent milestone
- A milestone can have multiple child milestones
- Root milestones have no parent (top-level)
- Leaf milestones have no children (bottom-level)
Hierarchy Tracking:
- Root: The top-most ancestor in a milestone tree
- Parent: The immediate parent of a milestone
- Children: Direct descendants of a milestone
- Descendants: All milestones below in the hierarchy tree
Creating Hierarchical Milestones
Creating a Root Milestone
- Navigate to Projects → [Your Project] → Milestones
- Click Add Milestone
- Fill in milestone details:
- Name: e.g., "Q1 2024 Release"
- Type: Select appropriate milestone type
- Due Date: Set target completion date
- Parent Milestone: Leave blank (or select "None")
- Save the milestone
Creating a Child Milestone
- From the Milestones page, click Add Milestone
- Fill in milestone details:
- Name: e.g., "Feature Development Phase"
- Type: Select appropriate type
- Due Date: Should typically be before or equal to parent's due date
- Parent Milestone: Select the parent from the dropdown
- Save the milestone
Alternative Method:
- Open a parent milestone's details page
- Look for Add Child Milestone button
- Fill in child milestone details
- Parent is automatically set
Viewing Hierarchical Milestones
List View:
- Milestones can be displayed with indentation showing hierarchy levels
- Expand/collapse controls for parent milestones
- Visual indicators (icons) showing parent/child status
Tree View:
- Visual tree representation of milestone hierarchy
- Shows entire milestone structure at a glance
- Click to expand/collapse branches
- Navigate directly to any milestone in the tree
Milestone Details Page:
- Parent Section: Shows the parent milestone (if any) with link
- Children Section: Lists all direct child milestones
- Breadcrumb: Shows path from root to current milestone
Hierarchy Best Practices
Organizational Patterns
Release Planning:
Release 2.0 (Root)
├── Planning Phase
├── Development Phase
│ ├── Backend Features
│ ├── Frontend Features
│ └── Integration
├── Testing Phase
│ ├── Unit Testing
│ ├── Integration Testing
│ └── UAT
└── Deployment Phase
Agile Sprint Structure:
Quarter 1 2024 (Root)
├── Sprint 1
│ ├── Epic: User Authentication
│ │ ├── Story: Login Page
│ │ ├── Story: Password Reset
│ │ └── Story: SSO Integration
│ └── Epic: Dashboard
│ ├── Story: Widgets
│ └── Story: Charts
├── Sprint 2
└── Sprint 3
Feature-Based Organization:
Product Launch (Root)
├── Core Features
│ ├── Feature A
│ ├── Feature B
│ └── Feature C
├── Marketing Activities
│ ├── Campaign Planning
│ └── Content Creation
└── Operations Setup
├── Infrastructure
└── Support Training
Hierarchy Guidelines
Depth Recommendations:
- Optimal depth: 2-4 levels
- Maximum depth: Avoid more than 5 levels for clarity
- Balance: Keep sibling counts manageable (5-10 per level)
Naming Conventions:
- Use clear, descriptive names at each level
- Include level indicators if helpful (e.g., "Phase 1:", "Sprint 3:")
- Be consistent with naming patterns across levels
Date Management:
- Child due dates should be ≤ parent due dates
- Leave buffer time between child completion and parent due date
- Consider dependencies when setting child milestone dates
Progress Tracking
Completion Behavior:
- Marking a parent as complete doesn't auto-complete children
- System can calculate parent progress based on child completion
- Completion percentages can roll up hierarchically
Status Indicators:
- All children complete: Parent can be marked complete
- Some children incomplete: Parent shows in-progress status
- Overdue children: Parent may show at-risk status
Metrics Roll-up:
- Test case counts aggregate from children to parents
- Test run assignments can be filtered by milestone hierarchy
- Reports can group by hierarchy levels
Managing Hierarchy
Moving Milestones
Changing Parent:
- Open milestone details
- Edit milestone
- Select new parent from dropdown (or "None" for root)
- Save changes
Restrictions:
- Cannot set a child milestone as parent of its own ancestor (prevents circular reference)
- Cannot set self as parent
- Moving a milestone moves all its descendants
Deleting Hierarchical Milestones
Deleting a Leaf Milestone:
- Simply deletes the milestone
- No effect on siblings or parents
Deleting a Parent Milestone:
- Cascade delete: All child milestones are also deleted
- Confirmation required before deletion
- Consider orphaning children by moving them first
Best Practice: Before deleting a parent, review child milestones and either:
- Move children to a different parent
- Delete children individually if no longer needed
- Keep a backup if data is important
Common Use Cases
Product Roadmap Planning
Use hierarchical milestones to represent:
- Root: Annual goals or product versions
- Level 1: Quarterly objectives
- Level 2: Monthly deliverables
- Level 3: Weekly sprints or tasks
Project Phase Management
Structure complex projects:
- Root: Overall project
- Level 1: Major phases (Initiation, Planning, Execution, Closure)
- Level 2: Phase deliverables
- Level 3: Specific tasks or work packages
Agile Development
Organize agile workflows:
- Root: Program Increment (PI)
- Level 1: Sprints
- Level 2: Epics
- Level 3: User Stories
Filtering and Reporting
Filter by Hierarchy:
- Show only root milestones
- Filter by specific parent
- Show milestones at specific depth
- Filter by entire hierarchy branch
Reports:
- Hierarchy-aware progress reports
- Burndown charts by hierarchy level
- Completion forecasting with child milestone data
- Resource allocation across hierarchy
Tips and Tricks
- Start Simple: Begin with 2-3 levels and expand as needed
- Use Types: Assign different milestone types to different hierarchy levels
- Color Coding: Use colors or icons to distinguish hierarchy levels
- Templates: Create milestone hierarchy templates for recurring projects
- Review Regularly: Periodically review hierarchy structure for optimization
- Document Structure: Maintain documentation of your hierarchy conventions
- Avoid Over-nesting: Too many levels can be counterproductive
- Balance Width and Depth: Prefer broader trees over very deep ones
Troubleshooting
Issue: Cannot set parent milestone
- Check if creating circular reference (milestone can't be ancestor of itself)
- Verify permissions to edit both milestones
- Ensure parent milestone is in the same project
Issue: Deleted milestone still appears
- Soft-deleted milestones may still show in some views
- Check deletion filters/settings
- Verify cascade delete completed for all children
Issue: Progress not updating
- Refresh the page to see latest completion data
- Verify child milestones are properly linked
- Check if completion percentages need manual recalculation
API Reference
Get Milestone with Hierarchy:
GET /api/model/Milestones/findFirst?q={
"where": {"id": 123},
"include": {
"parent": true,
"children": true,
"root": true
}
}
Create Child Milestone:
POST /api/model/Milestones/create
Content-Type: application/json
{
"data": {
"name": "Child Milestone",
"project": {"connect": {"id": 1}},
"parent": {"connect": {"id": 123}},
"milestoneType": {"connect": {"id": 5}},
"dueDate": "2024-12-31"
}
}
Get All Descendants:
GET /api/model/Milestones/findMany?q={
"where": {"rootId": 123},
"orderBy": {"createdAt": "asc"}
}