Add opt-in racer preferences and discovery filters
- Lingua principale
- JavaScript
- Stelle
- 30
- Fork
- 9
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
## Goal
After the Friend System MVP is stable, help cubers discover compatible racers beyond people they have already met in a room.
## Candidate profile fields
All fields must be optional, coarse, and independently hideable:
- preferred WCA events;
- language tags;
- timezone or broad availability windows;
- self-described pace bands per event.
Do not infer or publish age, exact location, email, hidden WCA identity, or solve history.
## Discovery contract
- Users are excluded from recommendations by default until they opt in.
- Filters and recommendations must respect blocks and profile visibility.
- Explain why a result matched; do not create opaque global rankings.
- Keep search bounded and rate-limited and provide a way to leave discovery immediately.
- Validate demand with Friend System usage before choosing the final fields or ranking logic.
## Acceptance criteria
- [ ] Research which two or three fields users will actually maintain and document the privacy tradeoffs.
- [ ] Add profile visibility and discovery opt-in controls with safe defaults.
- [ ] Define coarse, validated values rather than unrestricted location/speed text where possible.
- [ ] Add filtered discovery with pagination, rate limits, block enforcement, and explicit empty states.
- [ ] Add data retention/deletion behavior and privacy-safe adoption metrics.
- [ ] Test hidden fields, opt-out, blocking, pagination, and unauthorized access.
## Dependencies
- #75
- #82
- #188
## Non-goals
- Exact geolocation.
- Age-based matching.
- Automatic competitive ratings.
- Shipping as part of the Friend System MVP.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia esaminando le dipendenze #75, #82 e #188, quindi valida la domanda attraverso l’utilizzo di Friend System prima di definire i campi del profilo o la logica di ranking. Il lavoro è considerato completato quando i compromessi relativi alla privacy e i campi scelti sono documentati e sono presenti i controlli di discovery, i filtri, le misure di sicurezza, il comportamento di conservazione e i test di privacy e accesso elencati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- javascript
- Ambito
- backend-api-design
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 25/100