Feature (Phase 4): Expand public API (/api/resources filters & /api/resources/[slug]), add API & Agents page + llms.txt, and community freshness/credits
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 12/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- api, documentation, frontend
Línea de trabajo
This bundles four separate features: query filters on src/app/api/resources/route.ts, a new src/app/api/resources/[slug]/route.ts, an API docs page plus src/app/llms.txt/route.ts, and bookmark-based and contributor credits on /r/[slug]. Start by reading the existing resources route and src/lib/resources.ts, then ask the maintainer which slice to take. Done means the listed acceptance criteria pass for that slice.
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 4.1, 4.3, 4.4). Builds on the initial pagination slice in #69 / #39.
Currently, GET /api/resources only supports ?page=&limit=. To complete Phase 4 distribution and community loops:
Scope & Implementation Plan
1. Expand Public Read API & Rate Limiting (src/app/api/resources/route.ts, src/app/api/resources/[slug]/route.ts)
- Add query filters to
GET /api/resources:kind(perk,scholarship,fellowship,internship,mentorship,program)category(category slug)region(IN,Global)deadline_before(ISO date string — returns active resources closing before date)
- Add
GET /api/resources/[slug]returning full details for a single approved resource (404 if not found). - Add rate limiting and
Cache-Control: public, s-maxage=60, stale-while-revalidate=300headers.
2. "API & Agents" Page and /llms.txt
- Create
src/app/api-docs/page.tsx(or/agents) documenting the free JSON API (GET /api/resources,GET /api/resources/[slug]),/deadlines.ics, and/deadlines.rssfor student developers, Discord bots, and AI agents. - Add
src/app/llms.txt/route.ts(orpublic/llms.txt) describing StudentStack's purpose, endpoints, categories, and presets in standardllms.txtformat.
3. Community Freshness & Campus Ambassador Credits (Phase 4.3 & 4.4)
- Aggregate "N students got this" badge: Query
bookmarkswherestatus = 'got_it'grouped byresource_idand surface the aggregate count on resource cards and/r/[slug]pages (keeping individual users private, resolving PRD open question 1). - Contributor credit: When a student-submitted resource (
/submit,submitted_by) is approved, display an optional contributor credit on its/r/[slug]page.
Acceptance Criteria
-
GET /api/resourcessupportskind,category,region, anddeadline_beforequery parameters. -
GET /api/resources/[slug]returns a single resource by slug with cache headers. -
/llms.txtand an "API & Agents" documentation page are live and linked from the site footer. - Resource cards / detail pages display aggregate
"N students got this"counts when > 0, and/r/[slug]displays contributor attribution for community-submitted resources.
Files Involved
src/app/api/resources/route.tssrc/app/api/resources/route.test.tssrc/app/api/resources/[slug]/route.ts(new)src/app/llms.txt/route.ts(new)src/app/api-docs/page.tsx(new)src/lib/resources.ts
- Lenguaje dominante
- TypeScript
- Estrellas
- 1
- Forks
- 6
- Merge medio
- 23 h 53 min
- PR fusionados (30 d)
- 27
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
-
Feature (Phase 3): Accountless localStorage eligibility profile ('Only what I'm eligible for' toggle) + auth sync & per-user ICSPosiblemente ocupada @Aryan-Techie la tomó hoy. Abiertoenhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
Your-Voldemort/StudentStack#84 ·
Los mantenedores suelen responder en 1 día
-
Feature (Phase 2): Implement named ingestion sources (RSS feeds, GitHub markdown/YAML lists, Apify actors) & deadline expiry rulesPosiblemente ocupada @Aryan-Techie la tomó hoy. Abiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 18/100
Your-Voldemort/StudentStack#83 ·
Los mantenedores suelen responder en 1 día
-
Content/Data (Phase 1): Import student_resources.json (tensorboy 91 net-new rows), curate 40+ flagship deadlines, and seed mentorship programsPosiblemente ocupada @Aryan-Techie la tomó hoy. Abiertoenhancement
Dificultad 4/5 Más de una semana Aptitud para principiantes 22/100
Your-Voldemort/StudentStack#79 ·
Los mantenedores suelen responder en 1 día
-
Feature (Phase 1): Extend resources schema for opportunities (kind, opensAt, recurrence, amount, provider, eligibility)Posiblemente ocupada @Aryan-Techie la tomó hoy. Abiertoenhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Your-Voldemort/StudentStack#78 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
Your-Voldemort/StudentStack#42 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Your-Voldemort/StudentStack
Issues similares
-
批量图谱关联的备份应排除Obsidian索引Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
logancyang/obsidian-copilot#3753 ·
Los mantenedores suelen responder en 1 día
-
area: presentation severity: important
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
voithos-labs/aragonite#763 ·
Los mantenedores suelen responder en 2 días
-
fix(cursor): align Grok 4.7 context window to 256k/500k and drop unsupported max effort tierAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
diegosouzapw/OmniRoute#17386 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
💡 [Feature] Add an option to hide the empty screen background illustration (Distraction-Free)Abierto
Dificultad 2/5 Medio día Aptitud para principiantes 72/100
super-productivity/super-productivity#10982 · 1 comentario ·
Los mantenedores suelen responder en 1 día