Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Chiusa
#81 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Una pull request collegata è già stata integrata.

  • #91 di @rootsiemen — integrata

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
50/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
typescript
Ambito
frontend

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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
Lingua principale
TypeScript
Stelle
1
Fork
6
Merge medio
21h 33m
PR unite (30g)
48

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Your-Voldemort/StudentStack

Tutte le issue di Your-Voldemort/StudentStack

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.