coder13 / coder13/LetsCube

Build a feature-flagged multi-session competition room

Abierto
#201 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area: results enhancement priority: P1
Lenguaje dominante
JavaScript
Estrellas
30
Forks
9
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Part of #199.

## Goal

Prove the new Room/RaceSession model through a small user-visible competition-room flow without changing the simple normal-room experience.

## Vertical slice

- Create or seed one competition room associated with a competition.
- Give it at least two event RaceSessions.
- Allow an eligible user to enter the room, choose an event session, and race.
- Keep attempts, waiting state, and results independent between sessions.
- Allow switching sessions without leaving the room.
- Preserve completed results when a session ends or another session becomes active.
- Hide the feature behind a disabled-by-default configuration flag.

## UX requirements

- The ordinary home-page **Create room** action and copy-link flow remain unchanged.
- Normal rooms do not show competition/session-selection UI.
- Competition participants enter one room, then choose an event.
- The active session and event must always be obvious.
- Mobile layouts must not become a dashboard or require navigating a complex competition schedule.
- Unsupported or unavailable sessions show a clear, recoverable state.

## Acceptance criteria

- [ ] One competition room can contain and display at least two event sessions.
- [ ] Two users can race in one session while another session retains separate state.
- [ ] Switching sessions cannot submit a solve to the wrong attempt.
- [ ] Refresh and reconnect restore the selected room/session safely.
- [ ] Permissions prevent unauthorized session creation or control.
- [ ] Ended-session results remain available to authorized users.
- [ ] Normal-room Cypress coverage proves no added step or visible complexity.
- [ ] A competition-room Cypress flow covers join → select event → solve → switch event → solve.
- [ ] The feature can be disabled without affecting normal rooms.

## Deferred

- Automatic creation three days before every WCA competition.
- Complete competition discovery and registration syncing.
- Friends, invitations, notifications, rankings, and Discord integration.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza leyendo el issue #199 y el modelo existente de Room/RaceSession; después, ejecuta la cobertura de Cypress de las salas normales antes de evaluar el flujo de las salas de competición. Está hecho cuando la funcionalidad deshabilitada por defecto admite unirse → seleccionar evento → resolver → cambiar de evento → resolver, conserva resultados de sesión separados, restaura el estado después de una actualización o reconexión y no cambia las salas normales.

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

Evaluación

Stack tecnológico
cypress, javascript, mongodb, nodejs, react
Área
full-stack, testing
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.