andoriyaprashant / andoriyaprashant/OpSo
[Feature]: Add a Search / Filter functionality on the Home Screen to quickly find programs by name or category
- 主要语言
- Dart
- 星标
- 53
- 派生
- 108
- PR 合并指标
- 30 天内没有已合并 PR
描述
## Summary
OpSo currently displays all open-source programs in a flat list on the home screen. As the number of programs grows (GSoC, Summer of Bitcoin, Linux Foundation, MLH, Outreachy, etc.), finding a specific program requires manually scrolling through the entire list. There is no search bar or filter mechanism available anywhere in the app.
## Problem
- Users who open the app with a specific program in mind (e.g., "Outreachy") have to scan the full list visually.
- There is no way to filter programs by type (e.g., stipend-based vs non-stipend, student-only vs open).
- As more programs are added by contributors, the UX will continue to degrade without a discovery mechanism.
## Proposed Solution
I would like to implement a real-time search bar on the home screen that:
1. Filters the program list as the user types, matching against program name and description.
2. Shows a "No results found" state with a helpful message if no programs match.
3. Preserves the existing card layout for search results.
4. Optionally, adds chip-based category filters (e.g., "Stipend", "Student", "Open Source").
**Implementation approach:**
- Use a `TextEditingController` + `setState` to filter the program list in memory — no backend needed.
- Wrap the existing list widget in a `Column` that includes the search field above it.
- Keep the feature opt-in (search bar is collapsed by default, expandable on tap) to not break the existing layout.
This is a pure Flutter UI feature that any contributor comfortable with stateful widgets can implement, but it has high UX impact given the app's purpose.
Would you be happy to assign this to me?
**Labels:** `enhancement`, `feature`, `UI/UX`, `flutter`, `help wanted`, `GSSoC 2026`
贡献指南
调研方向
Start by locating the home-screen program list and the existing program data used to render its cards, then run the Flutter app to observe the current layout. Add the search field and in-memory matching for program names and descriptions, preserving the card layout and showing the specified empty state; category chips are optional and should be scoped separately.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- dart, flutter
- 领域
- frontend
- Issue 类型
- 功能
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 64/100