Feature (Phase 1): Extend resources schema for opportunities (kind, opensAt, recurrence, amount, provider, eligibility)
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
Hướng nghiên cứu
Start with the resources table definition in src/db/schema.ts, then follow the Resource type and column list in src/lib/resources.ts and the fixtures in src/lib/mock-data.ts. Add the new columns and the ResourceEligibility type, generate the Drizzle migration, and check that it applies without changing the existing rows, which should default to kind = 'perk'. Done when the admin form in src/components/admin/resource-form.tsx and the actions in src/app/admin/(dashboard)/actions.ts create and edit the new fields.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
Tracked from docs/2026-09-18-improvement-plan.md (§4 Phase 1 — Schema additions).
To support scholarships, fellowships, internships, mentorship programs, and open-source/hackathon programs alongside software perks, resources needs orthogonal opportunity fields (all nullable or defaulted with zero migration risk to existing perk rows).
Schema Additions (src/db/schema.ts)
kindenum column:
(Categories stay as they are;kind: text("kind", { enum: ["perk", "scholarship", "fellowship", "internship", "mentorship", "program"], }) .notNull() .default("perk"),kindis orthogonal.)- Timeline & funding metadata:
opensAt: timestamp("opens_at")deadline: timestamp("deadline")(already exists)recurrence: text("recurrence")(e.g."annual, opens Feb")amount: text("amount")(e.g."₹31,000/month","$1,500–6,600")provider: text("provider")(e.g."Google","AICTE","Ministry of Education")
- Structured
eligibilityJSONB column:export type ResourceEligibility = { levels?: ("UG" | "PG" | "PhD" | "HighSchool")[]; countries?: string[]; // ISO codes e.g. ["IN"] states?: string[]; minYear?: number; maxAge?: number; gender?: string; incomeCapInr?: number; fields?: string[]; // e.g. ["CS", "ECE"] };eligibility: jsonb("eligibility").$type<ResourceEligibility>()
- Update
Resourcetype & Admin form:- Expose the new columns in
src/lib/resources.ts(resourceColumns,Resourcetype) andsrc/lib/mock-data.ts. - Add inputs for
kind,opensAt,recurrence,amount,provider, andeligibilityinsrc/components/admin/resource-form.tsxand admin actions (src/app/admin/(dashboard)/actions.ts).
- Expose the new columns in
Acceptance Criteria
-
src/db/schema.tsdefineskind,opensAt,recurrence,amount,provider, andeligibilityonresources(andingestion_candidateswhere applicable). - Drizzle migration is generated and applies cleanly without breaking existing 593 rows (which default to
kind = 'perk'). -
ResourceTypeScript type, mock data, and/admincreate/edit resource form support the new fields.
Files Involved
src/db/schema.tssrc/lib/resources.tssrc/lib/mock-data.tssrc/components/admin/resource-form.tsxsrc/app/admin/(dashboard)/actions.ts
- Ngôn ngữ chính
- TypeScript
- Star
- 1
- Fork
- 6
- Merge trung bình
- 1 ngày 41 phút
- Pull request đã merge (30 ngày)
- 28
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Your-Voldemort/StudentStack
-
Feature (Phase 3): Accountless localStorage eligibility profile ('Only what I'm eligible for' toggle) + auth sync & per-user ICSCó thể đã có người làm @Aryan-Techie đã nhận 1 ngày trước. Đang mởenhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
Your-Voldemort/StudentStack#84 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Feature (Phase 2): Implement named ingestion sources (RSS feeds, GitHub markdown/YAML lists, Apify actors) & deadline expiry rulesCó thể đã có người làm @Aryan-Techie đã nhận 1 ngày trước. Đang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
Your-Voldemort/StudentStack#83 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Feature (Phase 4): Expand public API (/api/resources filters & /api/resources/[slug]), add API & Agents page + llms.txt, and community freshness/creditsCó thể đã có người làm @Aryan-Techie đã nhận 1 ngày trước. Đang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 12/100
Your-Voldemort/StudentStack#82 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Content/Data (Phase 1): Import student_resources.json (tensorboy 91 net-new rows), curate 40+ flagship deadlines, and seed mentorship programsCó thể đã có người làm @Aryan-Techie đã nhận 1 ngày trước. Đang mởenhancement
Độ khó 4/5 Hơn một tuần Mức phù hợp với người mới 22/100
Your-Voldemort/StudentStack#79 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Epic: Phase 3 — User Accounts, Bookmarks, Deadlines, PersonalizationCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởenhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
Your-Voldemort/StudentStack#42 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Your-Voldemort/StudentStack
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 72/100
zts212653/clowder-ai#1678 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
Progressive-Victory/the-website#680 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100