Feature (Phase 1): Add 'kind' filter chip row to Directory and opportunity presets (scholarships, open-source, internships)
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #91 de @rootsiemen — fusionado
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 50/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- frontend
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Filter logic (
src/lib/directory-filters.ts):- Add
kind: string[]toDirectoryFilters. - Filter by
kindinapplyFilters()(respectingskip === "kind"for faceted counts). - Add
countByKind(resources: Resource[]): Record<string, number>.
- Add
- Directory UI (
src/components/directory/directory-client.tsx):- Render a horizontal chip bar above the filter/search controls:
All,Perks,Scholarships,Internships,Mentorship,Programswith live facet counts. - Sync
kindwith the URL query string (?kind=scholarship) so filtered views are shareable.
- Render a horizontal chip bar above the filter/search controls:
- 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
-
applyFiltersandcountByKindfilter and count resources bykind. - Directory page renders the
kindchip bar with live counts and syncs selection to?kind=URL params. -
/scholarships-for-indian-students,/open-source-programs, and/paid-internships-indiaresolve viasrc/app/[preset]/page.tsx. - Unit tests in
src/lib/directory-filters.test.tscoverkindfiltering and facet counts.
Files Involved
src/lib/directory-filters.tssrc/lib/directory-filters.test.tssrc/lib/presets.tssrc/components/directory/directory-client.tsx
- Lenguaje dominante
- TypeScript
- Estrellas
- 1
- Forks
- 6
- Merge medio
- 22 h 9 min
- PR fusionados (30 d)
- 42
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Your-Voldemort/StudentStack
-
/submit, /my-list, and /onboarding return 500 when Supabase isn't configuredPosiblemente ocupada @Aryan-Techie la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Your-Voldemort/StudentStack#127 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Your-Voldemort/StudentStack#126 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Your-Voldemort/StudentStack#120 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Your-Voldemort/StudentStack#119 ·
Los mantenedores suelen responder en 1 día
-
Past deadlines labelled "today"; search placeholder ignores eligibility filterPosiblemente ocupada @Aryan-Techie la tomó hace 1 día. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Your-Voldemort/StudentStack#118 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de Your-Voldemort/StudentStack
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Automattic/data-liberation-agent#953 ·
Los mantenedores suelen responder en 1 día
-
README に GitHub の組織のバッジを足すAbiertodocumentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
funmary-app/funmary#399 ·
Los mantenedores suelen responder en 1 día
-
area:curator enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
CassioDalla/Scrinalia#150 ·
Los mantenedores suelen responder en 1 día
-
status: needs-triage v1-bug-bash
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
a2ui-project/a2ui#3533 ·
Los mantenedores suelen responder en 1 día
-
backend enhancement priority:P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
geolens-io/geolens#3310 ·
Los mantenedores suelen responder en 1 día