Summary
The GoalTracker widget currently displays all goals in a flat list with no way to search or filter them. Users with many goals have to scroll through everything to find a specific one. Adding a search input and status filter would make goal management significantly more usable.
Problem Statement
As users add more goals over time, the GoalTracker becomes cluttered and hard to navigate. There is no way to:
- Find a specific goal by name quickly
- View only active/in-progress goals
- View only completed goals
- Hide goals that are not relevant right now
Proposed Solution
Add a search input and a status filter dropdown/toggle above the goals list in the GoalTracker widget.
Expected Behaviour
Search:
- Text input above the goals list
- Filters goals in real time as the user types
- Matches against goal title (case-insensitive)
- Shows "No goals match your search" empty state when nothing matches
- Clear (×) button appears when search has text
Filter tabs:
- All — shows every goal (default)
- Active — goals where current < target
- Completed — goals where current >= target
Combined:
- Search and filter work together
- URL does not need to update (in-component state is fine)
UI Mockup
[ 🔍 Search goals... × ]
[ All ] [ Active ] [ Completed ]
Goal 1 ████████░░ 80%
Goal 2 ███░░░░░░░ 30%
Files to Modify
| File |
Change |
src/components/GoalTracker.tsx |
Add search input + filter tabs + filtered list logic |
Implementation Notes
- Pure React
useState — no new libraries needed
- Debounce the search input by 300ms for performance
- Filter logic runs client-side on already-fetched goals array
- Empty state should match the style of other widgets
Acceptance Criteria
I am a GSSoC 2026 contributor and would like to work on this issue. Please assign it to me 🙏
Summary
The GoalTracker widget currently displays all goals in a flat list with no way to search or filter them. Users with many goals have to scroll through everything to find a specific one. Adding a search input and status filter would make goal management significantly more usable.
Problem Statement
As users add more goals over time, the GoalTracker becomes cluttered and hard to navigate. There is no way to:
Proposed Solution
Add a search input and a status filter dropdown/toggle above the goals list in the GoalTracker widget.
Expected Behaviour
Search:
Filter tabs:
Combined:
UI Mockup
[ 🔍 Search goals... × ]
[ All ] [ Active ] [ Completed ]
Goal 1 ████████░░ 80%
Goal 2 ███░░░░░░░ 30%
Files to Modify
src/components/GoalTracker.tsxImplementation Notes
useState— no new libraries neededAcceptance Criteria
I am a GSSoC 2026 contributor and would like to work on this issue. Please assign it to me 🙏