Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#82 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
12/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
typescript
Lĩnh vực
api, documentation, frontend

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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
Ngôn ngữ chính
TypeScript
Star
1
Fork
6
Merge trung bình
23 giờ 53 phút
Pull request đã merge (30 ngày)
27

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Your-Voldemort/StudentStack

Tất cả issue của Your-Voldemort/StudentStack

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.