Cycles & Modules
Last updated on 2026-03-26
The cycles and modules system provides time-boxed (cycles/sprints) and scope-based (modules) organization for project tasks, along with a pages/wiki feature for project documentation. These features can be individually toggled on or off per project via project settings. All screens are nested under projects/[id]/ in the (dashboard) route group.
Cycles List
Route: /projects/[id]/cycles
A directory of all sprint cycles for a project, showing their status, progress, and key metrics.
- Cycle cards -- grid of
CycleCardcomponents, each showing cycle name, date range (start to end), status badge (Active/Upcoming/Completed), task count, progress bar (completed vs total), planned points, completed points, and velocity - Status filter tabs -- pill tabs for All, Active, Upcoming, and Completed
- Create cycle button -- opens a dialog form to create a new cycle with name, description, start date, and end date
- Active cycle highlight -- the active cycle card has a highlighted border using the primary color and appears first in the list
- Timeline bar -- each card shows a horizontal date range bar indicating where the cycle falls relative to the current date
import { CycleCard } from "@/components/pm/cycle-card"
import { DateBadge } from "@/components/pm/date-badge"
import { ProgressRing } from "@/components/pm/progress-ring"
Cycle Card Anatomy
+------------------------------------------+
| Sprint 5 [Active] |
| Mar 10, 2026 - Mar 24, 2026 |
| |
| 12 tasks ████████░░░ 72% |
| Planned: 48 pts Completed: 34 pts |
| Velocity: 34 |
+------------------------------------------+
Data Sources
| Data | Source | Location |
|---|---|---|
| Cycles | cycles (filtered by projectId) |
data/seed.ts |
| Tasks | tasks (filtered by cycleId) |
data/seed.ts |
Cycle Detail
Route: /projects/[id]/cycles/[cycleId]
A comprehensive view of an individual sprint cycle with task management, burndown charts, and progress tracking.
- Cycle header -- cycle name, date range, status badge, days remaining countdown, and progress percentage
- Task list --
TaskRowcomponents for all tasks in this cycle, with inline status and priority editing - Burndown chart -- Recharts
AreaChartshowing ideal burndown line vs actual remaining work over the sprint duration; uses theBurndownChartcomponent - Burnup chart -- alternative view using
BurnupChartshowing scope (total), completed work, and ideal completion line - Stats row -- four
StatsCardcomponents: Total Points, Completed Points, Remaining Points, and Velocity - Scope changes -- callout card showing tasks added or removed after the sprint started, with timestamps
- Add tasks -- "Add to Cycle" button that opens a dialog showing backlog tasks available to add
- Remove tasks -- context menu on task rows with "Remove from Cycle" action
import { TaskRow } from "@/components/task/task-row"
import { BurndownChart } from "@/components/charts/burndown"
import { BurnupChart } from "@/components/charts/burnup"
import { StatsCard } from "@/components/pm/stats-card"
import { DateBadge } from "@/components/pm/date-badge"
Cycle Detail Layout
+--------------------------------------------------+
| Sprint 5 [Active] 5 days left |
| Mar 10 - Mar 24, 2026 ████████░░░ 72% |
+----------+----------+----------+---------+-------+
| Total | Completed| Remaining| Velocity| |
| 48 pts | 34 pts | 14 pts | 34 | |
+----------+----------+----------+---------+-------+
| Burndown Chart | Burnup Chart |
| (area chart) | (area chart) |
+-----------+-----------------+--------------------+
| Task | Status | Priority | Est. |
+---------------------+---------+----------+-------+
| KAN-12 Setup auth | Done | High | 5 |
| KAN-13 API routes | In Prog | Medium | 3 |
| KAN-14 Dashboard | Todo | High | 8 |
+---------------------+---------+----------+-------+
Burndown Chart
The burndown chart plots two lines against the sprint timeline:
- Ideal line -- straight diagonal from total points on day 1 to zero on the last day
- Actual line -- step-down curve showing remaining points at the end of each day
- Scope line -- dashed line showing total scope, which may increase if tasks are added mid-sprint
import { BurndownChart } from "@/components/charts/burndown"
<BurndownChart data={burndownData} />
The BurndownPoint type from types/index.ts:
interface BurndownPoint {
date: string
ideal: number
actual: number
scope: number
}
Data Sources
| Data | Source | Location |
|---|---|---|
| Cycle | cycles (by cycleId) |
data/seed.ts |
| Tasks | tasks (filtered by cycleId) |
data/seed.ts |
| Burndown data | burndownData |
data/seed.ts |
| Velocity data | velocityData |
data/seed.ts |
Modules List
Route: /projects/[id]/modules
A directory of feature modules that group related tasks by scope or area.
- Module cards -- grid of
ModuleCardcomponents, each showing module name, description, status badge (Planned/Active/Completed), lead avatar, date range, task count, and completion progress bar - Status filter tabs -- pill tabs for All, Planned, Active, and Completed
- Create module button -- opens a dialog form to create a new module with name, description, lead, start date, and end date
- Progress summary -- each card shows completed tasks vs total tasks with a percentage indicator
import { ModuleCard } from "@/components/pm/module-card"
import { MemberAvatar } from "@/components/pm/member-avatar"
import { ProgressRing } from "@/components/pm/progress-ring"
Module Card Anatomy
+------------------------------------------+
| Auth & Authorization [Active] |
| User authentication, roles, permissions |
| |
| Lead: [Avatar] Sarah Chen |
| Mar 1 - Mar 31, 2026 |
| 8 tasks ██████░░░░ 62% |
+------------------------------------------+
Data Sources
| Data | Source | Location |
|---|---|---|
| Modules | modules (filtered by projectId) |
data/seed.ts |
| Tasks | tasks (filtered by moduleId) |
data/seed.ts |
| Team members | teamMembers |
data/seed.ts |
Module Detail
Route: /projects/[id]/modules/[moduleId]
A detailed view of an individual module with task management and progress tracking.
- Module header -- module name, description, status badge, lead avatar, and date range
- Task list --
TaskRowcomponents for all tasks in this module, with inline status and priority editing - Progress section -- completion percentage, tasks by status breakdown bar, and estimated vs completed points
- Add tasks -- "Add to Module" button to assign existing project tasks to this module
- Remove tasks -- context menu on task rows with "Remove from Module" action
import { TaskRow } from "@/components/task/task-row"
import { StatsCard } from "@/components/pm/stats-card"
import { MemberAvatar } from "@/components/pm/member-avatar"
Data Sources
| Data | Source | Location |
|---|---|---|
| Module | modules (by moduleId) |
data/seed.ts |
| Tasks | tasks (filtered by moduleId) |
data/seed.ts |
| Team members | teamMembers |
data/seed.ts |
Pages / Wiki
Route: /projects/[id]/pages
A project wiki for documentation, meeting notes, specs, and reference material.
- Pages list -- list of
Pageentries showing title, author avatar, last updated timestamp, and a tree structure for nested pages (pages withparentId) - Create page -- "New Page" button opens a page editor with title input and rich-text content area
- Page hierarchy -- pages can be nested under parent pages, displayed as a collapsible tree in the sidebar
- Search -- text input to filter pages by title or content
Page Detail
Route: /projects/[id]/pages/[pageId]
- Page header -- title, author avatar, created date, and last updated date
- Content area -- rendered markdown/text content
- Edit mode -- "Edit" button switches to an editable textarea with save/cancel actions
- Breadcrumbs -- if the page is nested, breadcrumbs show the parent page hierarchy
import { Page } from "@/types"
The Page type from types/index.ts:
interface Page {
id: string
projectId: string
title: string
content: string
authorId: string
parentId: string | null
createdAt: string
updatedAt: string
}
Data Sources
| Data | Source | Location |
|---|---|---|
| Pages | pages (filtered by projectId) |
data/seed.ts |
| Team members | teamMembers |
data/seed.ts |
Next Steps
- Tasks -- task detail, comments, and subtasks
- Board & Views -- Kanban board, list, backlog, calendar, timeline
- Goals & Roadmap -- goals, OKRs, and strategic roadmap