Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Feature (Phase 1): Add 'kind' filter chip row to Directory and opportunity presets (scholarships, open-source, internships)

已关闭
#81 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

已经有一个关联 PR 被合并了。

  • #91 来自 @rootsiemen —— 已合并

评估

难度
3/5
预计耗时
1-2 天
新手友好度
50/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
typescript
领域
frontend

调研方向

Start in src/lib/directory-filters.ts, where applyFilters and the faceted-count logic live, then check whether Resource already has a kind field, since the issue depends on Phase 1 data. Next, read src/lib/presets.ts and src/components/directory/directory-client.tsx to see how filters and URL params are wired. Done when applyFilters and countByKind handle kind, the chip bar syncs to ?kind=, the three presets resolve, and src/lib/directory-filters.test.ts passes.

由索引模型根据 Issue 内容生成。

描述

enhancement

Description

Tracked from docs/2026-09-18-improvement-plan.md (§4 Phase 1.6).

Once opportunities (kind: perk | scholarship | fellowship | internship | mentorship | program) are added in Phase 1, the Directory needs a top-level kind chip row above the existing filters so students can switch between All / Perks / Scholarships & Fellowships / Internships / Mentorship / Programs, plus three high-intent SEO preset pages.

Implementation Plan

  1. Filter logic (src/lib/directory-filters.ts):
    • Add kind: string[] to DirectoryFilters.
    • Filter by kind in applyFilters() (respecting skip === "kind" for faceted counts).
    • Add countByKind(resources: Resource[]): Record<string, number>.
  2. Directory UI (src/components/directory/directory-client.tsx):
    • Render a horizontal chip bar above the filter/search controls: All, Perks, Scholarships, Internships, Mentorship, Programs with live facet counts.
    • Sync kind with the URL query string (?kind=scholarship) so filtered views are shareable.
  3. New SEO Presets (src/lib/presets.ts):
    • scholarships-for-indian-students: Scholarships and fellowships open to Indian students (kind: ["scholarship", "fellowship"], region/eligibility India).
    • open-source-programs: Paid open-source mentorship programs like GSoC, LFX, Outreachy, MLH, Season of KDE (kind: ["program"]).
    • paid-internships-india: Research and industry internships with stipends open to students in India (kind: ["internship"], costType: ["stipend"]).

Acceptance Criteria

  • applyFilters and countByKind filter and count resources by kind.
  • Directory page renders the kind chip bar with live counts and syncs selection to ?kind= URL params.
  • /scholarships-for-indian-students, /open-source-programs, and /paid-internships-india resolve via src/app/[preset]/page.tsx.
  • Unit tests in src/lib/directory-filters.test.ts cover kind filtering and facet counts.

Files Involved

  • src/lib/directory-filters.ts
  • src/lib/directory-filters.test.ts
  • src/lib/presets.ts
  • src/components/directory/directory-client.tsx
主要语言
TypeScript
星标
1
派生
6
平均合并
21 小时 33 分钟
30 天内合并 PR
48

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Your-Voldemort/StudentStack 的其他 Issue

查看 Your-Voldemort/StudentStack 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

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