Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Feature (Phase 4): Expand public API (/api/resources filters & /api/resources/[slug]), add API & Agents page + llms.txt, and community freshness/credits

オープン
#82 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
12/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
typescript

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

enhancement

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=300 headers.
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.rss for student developers, Discord bots, and AI agents.
  • Add src/app/llms.txt/route.ts (or public/llms.txt) describing StudentStack's purpose, endpoints, categories, and presets in standard llms.txt format.
3. Community Freshness & Campus Ambassador Credits (Phase 4.3 & 4.4)
  • Aggregate "N students got this" badge: Query bookmarks where status = 'got_it' grouped by resource_id and 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/resources supports kind, category, region, and deadline_before query parameters.
  • GET /api/resources/[slug] returns a single resource by slug with cache headers.
  • /llms.txt and 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.ts
  • src/app/api/resources/route.test.ts
  • src/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
主要言語
TypeScript
スター
1
フォーク
6
平均マージ
23時間 53分
マージ済み PR(30日)
27

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Your-Voldemort/StudentStack のほかの issue

Your-Voldemort/StudentStack の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。