Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#78 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@Aryan-Techie ya está trabajando en esto.

Desde el 20/10/2026.

  • #99 de @Aryan-Techie — abierto

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
TypeScript
Estrellas
1
Forks
6
Merge medio
1 d 41 min
PR fusionados (30 d)
28

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Your-Voldemort/StudentStack

Todos los issues de Your-Voldemort/StudentStack

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.