docs: formalizar y detallar objetivos derivados de ideas (WebRTC P2P, Ads, PIN y Burn-after-reading)

This commit is contained in:
2026-10-27 23:15:58 -05:00
parent 32d0190ca8
commit fc416cde99
3 changed files with 53 additions and 6 deletions
+37
View File
@@ -13,6 +13,43 @@
|---|----------|--------|-----------|
| 1 | Soporte para compresión zip en descargas multi-archivo | pablinux | Media |
| 2 | Notificación opcional por bot o webhook al compartir | pablinux | Baja |
| 3 | Transferencia directa P2P navegador a navegador (WebRTC) | pablinux | Media |
| 4 | Widget publicitario del ecosistema (ads.sigmac.app) en vistas de invitados | pablinux | Baja |
| 5 | Protección por PIN / Contraseña opcional en enlaces compartidos | pablinux | Media |
| 6 | Modo de un solo uso (Burn after reading) con autodestrucción inmediata | pablinux | Media |
---
### Detalle de Objetivos Pendientes
#### 🎯 Objetivo 3: Transferencia directa P2P navegador a navegador (WebRTC)
- **Qué debe cumplirse:**
1. Permitir la transferencia directa de archivos de gran volumen (cientos de MB o varios GB) directamente entre dispositivos sin almacenar el archivo en el disco del servidor.
2. Implementar un servidor de señalización WebRTC ultraligero en Go (vía WebSocket o SSE/HTTP POST) para el intercambio de ofertas, respuestas y candidatos ICE entre emisor y receptor.
3. Transmisión de datos mediante `RTCDataChannel` cifrado punto a punto en el navegador.
4. Integración fluida con el flujo actual: el emisor abre la sala, se genera un enlace/QR dinámico, el receptor lo abre en su navegador y comienza la transferencia directa.
5. Interfaz con barra de progreso bidireccional, velocidad de transferencia y estado de conexión (esperando receptor, conectado, transfiriendo, completado).
6. Si no hay conexión P2P directa (NAT simétrico estricto), informar claramente al usuario o requerir conexión en la misma red local / STUN básico.
#### 🎯 Objetivo 4: Widget publicitario del ecosistema (ads.sigmac.app)
- **Qué debe cumplirse:**
1. Integrar banners o anuncios contextuales no intrusivos provenientes de `ads.sigmac.app` exclusivamente en las vistas públicas de usuarios invitados (Guest): página principal, visor `/v/{id}` y página de descarga.
2. Los usuarios autenticados (WebControl / Google OAuth) en `/mis-archivos` y sus visores estarán 100% libres de publicidad.
3. Carga asíncrona desacoplada: el widget no debe demorar la carga de la página, la previsualización ni la descarga del archivo. Si el servicio de anuncios no responde o falla, el contenedor se oculta limpiamente sin alterar la UI.
4. Respetar las políticas de seguridad estrictas vigentes (CSP, sandbox, aislamiento contra XSS).
5. Diseño integrado al tema oscuro (dark mode) del proyecto, sin popups ni redirecciones invasivas.
#### 🎯 Objetivo 5: Protección por PIN / Contraseña opcional
- **Qué debe cumplirse:**
1. Permitir al creador del share definir un PIN numérico (4-6 dígitos) o contraseña alocada al subir archivo o texto.
2. El visor `/v/{id}`, descarga `/d/{id}` y raw `/raw/{id}` deben solicitar el PIN antes de entregar o previsualizar el contenido.
3. Almacenamiento seguro del hash del PIN en SQLite (bcrypt / argon2) sin almacenar texto claro.
#### 🎯 Objetivo 6: Modo de un solo uso (Burn after reading)
- **Qué debe cumplirse:**
1. Opción al subir para marcar el contenido como "Auto-destrucción tras lectura / descarga".
2. Tras la primera visualización exitosa o descarga completa, el archivo físico se purga de inmediato del disco y el registro se marca como destruido o eliminado en SQLite.
3. Intentos posteriores de acceso redirigen a una vista informativa indicando que el archivo ya fue destruido.
---