Feature (Phase 3): Accountless localStorage eligibility profile ('Only what I'm eligible for' toggle) + auth sync & per-user ICS
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- nextjs, react, supabase, typescript
Direzione di ricerca
Start with src/lib/directory-filters.ts and its test src/lib/directory-filters.test.ts: add the eligibility check inside applyFilters() and let the existing unit tests drive it. Then wire the toggle and the new src/components/directory/eligibility-sheet.tsx into src/components/directory/directory-client.tsx, persisting the profile to localStorage. The ICS route src/app/u/[token]/deadlines.ics/route.ts and the Supabase profile sync are separate pieces that can land later. Done means the toggle filters the directory and the new unit tests pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
Tracked from docs/2026-09-18-improvement-plan.md (§3.4 #1, §4 Phase 3.1 & 3.3). Relates to #34 and #42.
A key insight from the competitive landscape (§3.4 #1) is that students shouldn't have to create an account just to filter the directory down to what they can claim or apply to.
Implementation Plan
- Accountless Eligibility Profile (
localStoragefirst, optional Supabase sync):- Build a skippable "My Eligibility" sheet/drawer accessible from the directory header:
- Country / State (default
IN) - Degree Level (
UG/PG/PhD/HighSchool) - Year of study (
1–5+) - Branch / Field (
CS,ECE,Mechanical,Design, etc.) - Checkboxes:
"I have a .edu / college email","I have the GitHub Student Developer Pack","I have a valid Student ID"
- Country / State (default
- Persist immediately in
localStorageso it works with zero sign-up friction. - When a user signs in (via existing Supabase Auth), sync the profile to
profiles.
- Build a skippable "My Eligibility" sheet/drawer accessible from the directory header:
- "Only what I'm eligible for" toggle in Directory (
src/lib/directory-filters.ts,src/components/directory/directory-client.tsx):- Single toggle switch in the directory filter bar: "Only what I'm eligible for".
- Evaluates client-side inside
applyFilters():- Matches
resource.verificationNeededagainst user's verification methods (.edu, GitHub Pack, Student ID). - Matches
resource.region/regionsagainst user's country. - Matches
resource.eligibility(levels,countries,states,minYear,fields) where populated on the resource (treating unset eligibility fields as open/unrestricted).
- Matches
- Per-user saved deadlines ICS feed (
/u/[token]/deadlines.ics):- For signed-in users with bookmarked/tracked opportunities (#33), generate a personal calendar token so they can subscribe to
/u/<token>/deadlines.icscontaining only their saved/applied items with-P1Dalerts.
- For signed-in users with bookmarked/tracked opportunities (#33), generate a personal calendar token so they can subscribe to
Acceptance Criteria
- Users can configure their eligibility profile without signing in, persisted in
localStorage. - Toggling "Only what I'm eligible for" in
/directoryaccurately filters resources acrossverificationNeeded,region, andeligibilityJSONB rules. - Signed-in users have their local eligibility profile synced and can subscribe to
/u/[token]/deadlines.icsfor their bookmarked deadlines. - Unit tests in
src/lib/directory-filters.test.tsverify client-side eligibility matching.
Files Involved
src/lib/directory-filters.tssrc/lib/directory-filters.test.tssrc/components/directory/directory-client.tsxsrc/components/directory/eligibility-sheet.tsx(new)src/app/u/[token]/deadlines.ics/route.ts(new)
- 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à 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à 4/5 3-5 giorni Idoneità per principianti 35/100
Your-Voldemort/StudentStack#78 ·
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
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
simkimsia/netlify-axi#19 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
subhranshudash13-dotcom/Contribo#74 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement frontend good first issue Stellar Wave trivial
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Godgift-care/sci-healthcare-frontend#166 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
backend good first issue security Stellar Wave trivial
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Godgift-care/sci-healthcare-backend#171 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno