Feature (Phase 1): Extend resources schema for opportunities (kind, opensAt, recurrence, amount, provider, eligibility)
I maintainer di solito rispondono entro 1 giorno
@Cipher-Shadow-IR ci sta già lavorando.
Dal 19/10/2026.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- TypeScript
- Stelle
- 1
- Fork
- 6
- Merge medio
- 23h 53m
- PR unite (30g)
- 27
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Your-Voldemort/StudentStack
-
enhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
Your-Voldemort/StudentStack#84 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 18/100
Your-Voldemort/StudentStack#83 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
Your-Voldemort/StudentStack#82 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 Più di una settimana Idoneità per principianti 22/100
Your-Voldemort/StudentStack#79 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
Your-Voldemort/StudentStack#42 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Your-Voldemort/StudentStack
Issue simili
-
docs(api): openapi.yaml still documents gif-tools optimize colors as 2-256 instead of 2, 4, 16, 256Apertaarea: backend documentation priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
snapotter-hq/SnapOtter#2919 ·
I maintainer di solito rispondono entro 1 giorno
-
accepted :+1: bug db/redis
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
beekeeper-studio/beekeeper-studio#4882 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
ready-for-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
konflux-ci/konflux-ui#1630 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
ahmedkhaleel2004/gitdiagram#233 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
simkimsia/netlify-axi#19 ·
I maintainer di solito rispondono entro 1 giorno