Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Feature (Phase 1): Extend resources schema for opportunities (kind, opensAt, recurrence, amount, provider, eligibility)

Aperta
#78 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

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
Ambito
database, frontend

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

enhancement

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)

  1. kind enum column:
    kind: text("kind", {
      enum: ["perk", "scholarship", "fellowship", "internship", "mentorship", "program"],
    })
      .notNull()
      .default("perk"),
    
    (Categories stay as they are; kind is orthogonal.)
  2. 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")
  3. Structured eligibility JSONB 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>()
  4. Update Resource type & Admin form:
    • Expose the new columns in src/lib/resources.ts (resourceColumns, Resource type) and src/lib/mock-data.ts.
    • Add inputs for kind, opensAt, recurrence, amount, provider, and eligibility in src/components/admin/resource-form.tsx and admin actions (src/app/admin/(dashboard)/actions.ts).

Acceptance Criteria

  • src/db/schema.ts defines kind, opensAt, recurrence, amount, provider, and eligibility on resources (and ingestion_candidates where applicable).
  • Drizzle migration is generated and applies cleanly without breaking existing 593 rows (which default to kind = 'perk').
  • Resource TypeScript type, mock data, and /admin create/edit resource form support the new fields.

Files Involved

  • src/db/schema.ts
  • src/lib/resources.ts
  • src/lib/mock-data.ts
  • src/components/admin/resource-form.tsx
  • src/app/admin/(dashboard)/actions.ts
Lingua principale
TypeScript
Stelle
1
Fork
6
Merge medio
23h 53m
PR unite (30g)
27

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Your-Voldemort/StudentStack

Tutte le issue di Your-Voldemort/StudentStack

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.