andoriyaprashant / andoriyaprashant/OpSo

[Feature]: Add a Search / Filter functionality on the Home Screen to quickly find programs by name or category

未关闭
#489 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。