Skip to content

feat(milestones): add milestone tracking with progress visualization#3228

Open
desireddymohithreddy0925 wants to merge 13 commits into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feature/milestone-tracking
Open

feat(milestones): add milestone tracking with progress visualization#3228
desireddymohithreddy0925 wants to merge 13 commits into
Priyanshu-byte-coder:mainfrom
desireddymohithreddy0925:feature/milestone-tracking

Conversation

@desireddymohithreddy0925

Copy link
Copy Markdown
Contributor

Summary

Implements a complete milestone tracking system, allowing users to group tasks into milestones and visualize their progress dynamically.

Closes #2886

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that changes existing functionality)
  • 📝 Documentation update
  • 🎨 Code style update (formatting, renaming)
  • ♻️ Refactoring (no functional changes)
  • 🧪 Testing
  • 🏗️ Build / CI/CD / Infrastructure

Description

This PR addresses issue #2886 by adding a fully functional ProjectMilestones component alongside a robust set of backend APIs.

Changes made:

  • Database Schema: Replaced the previous partial implementation with the accurate relational model specified in the issue: a milestones table containing (id, name, dueDate) and a tasks table containing (id, title, completed, milestone_id).
  • Backend APIs:
    • GET/POST /api/milestones: Implemented creation and optimized data fetching, including aggregations to calculate completedTasks, totalTasks, and array building for taskIds via SQL/Supabase logic.
    • PUT/DELETE /api/milestones/[id]: For managing milestones and unlinking/re-linking task updates.
    • GET/POST/PUT/DELETE /api/tasks: For granular task creation and completion status updates.
  • Frontend Widget: Entirely refactored ProjectMilestones.tsx from using local-storage-mocking to connecting with our real data backend. It includes real-time progress calculations (Math.round((completedTasks / totalTasks) * 100)), UI to add tasks sequentially, toggle completion, and delete entities optimistically.

Testing

  • Created, updated, and deleted milestones via the UI.
  • Tested adding tasks to individual milestones and toggling completed status to verify percentage accuracy.
  • Confirmed database integration logic properly enforces RLS policies for users accessing only their own entities.
  • Executed local type checks (pnpm typecheck without any errors).

Screenshots / Screen Recording

(Attach a screenshot of the Project Milestones widget with the progress bar in action)

@github-actions github-actions Bot added type:bug GSSoC type bonus: bug fix type:feature GSSoC type bonus: new feature type:testing GSSoC type bonus: tests (+10 pts) type:design GSSoC type bonus: UI/design (+10 pts) type:performance GSSoC type bonus: performance (+15 pts) gssoc26 GSSoC 2026 contribution labels Jul 24, 2026
@github-actions

Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix type:design GSSoC type bonus: UI/design (+10 pts) type:feature GSSoC type bonus: new feature type:performance GSSoC type bonus: performance (+15 pts) type:testing GSSoC type bonus: tests (+10 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(milestones): add milestone tracking with progress visualization

1 participant