Compare commits

..
2 Commits
3 changed files with 56 additions and 9 deletions
+14 -6
View File
@@ -8,14 +8,22 @@
## Ideas pendientes ## Ideas pendientes
- **Protección con PIN o contraseña opcional:** Permitir que quien comparte un archivo pueda agregar un PIN de 4 dígitos o contraseña opcional para mayor privacidad al compartir enlaces sensibles. - **Mini editor de texto con syntax highlighting enriquecido:** Editor embebido ligero (CodeMirror o Monaco Editor minificado) para edición o visualización avanzada de código con resaltado de sintaxis antes de compartir.
- **Descargas comprimidas ZIP multi-archivo:** Si un usuario sube un lote de varios archivos a la vez, empaquetarlos en un solo enlace con opción "Descargar todo como ZIP". - **Previsualización de modelos 3D / audio spectrum:** Visualizador simple para archivos GLTF/OBJ o visualizador de espectro interactivo para pistas de audio.
- **Límite de un solo uso (Burn after reading):** Opción para que un archivo o secreto en texto se auto-elimine inmediatamente después de la primera visualización o descarga.
- **Integración con bot del ecosistema (sigma-robot):** Enviar alerta o notificación opcional a un canal cuando un archivo clave haya sido descargado o abierto. ---
## Ideas promovidas a objetivos.md
- [x] **Descargas comprimidas ZIP multi-archivo** → [Objetivo #1](objetivos.md#pendientes)
- [x] **Notificación por bot o webhook al compartir** → [Objetivo #2](objetivos.md#pendientes)
- [x] **Modo P2P / WebRTC para transferir archivos pesados** → [Objetivo #3](objetivos.md#detalle-de-objetivos-pendientes)
- [x] **Widget publicitario del ecosistema (ads.sigmac.app)** → [Objetivo #4](objetivos.md#detalle-de-objetivos-pendientes)
- [x] **Protección con PIN o contraseña opcional** → [Objetivo #5](objetivos.md#detalle-de-objetivos-pendientes)
- [x] **Límite de un solo uso (Burn after reading)** → [Objetivo #6](objetivos.md#detalle-de-objetivos-pendientes)
--- ---
## Ideas en borrador ## Ideas en borrador
- Modo P2P / WebRTC para transferir archivos pesados gigabytes directamente entre navegadores en la misma red local sin almacenarlos en el servidor. - Sincronización de portapapeles en tiempo real entre dispositivos autorizados mediante WebSockets.
- Mini editor de texto con syntax highlighting enriquecido (Monaco Editor o CodeMirror ligero).
+37
View File
@@ -13,6 +13,43 @@
|---|----------|--------|-----------| |---|----------|--------|-----------|
| 1 | Soporte para compresión zip en descargas multi-archivo | pablinux | Media | | 1 | Soporte para compresión zip en descargas multi-archivo | pablinux | Media |
| 2 | Notificación opcional por bot o webhook al compartir | pablinux | Baja | | 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.
--- ---
+5 -3
View File
@@ -38,9 +38,9 @@
## 🚀 En Progreso / Inmediatas ## 🚀 En Progreso / Inmediatas
- [ ] **Creación del Repositorio Git Remoto:** - [x] **Creación del Repositorio Git Remoto:**
- Crear repo en `git.telcotronics.net/pablinux/app_compartir.git`. - Configurado en `https://git.telcotronics.net/pablinux/app_compartir.git`.
- Configurar `git remote add origin ...` y realizar primer push. - Rama `main` 100% sincronizada y verificada con `origin`.
--- ---
@@ -49,6 +49,8 @@
### Fase 2: Experiencia y Utilidades ### Fase 2: Experiencia y Utilidades
- [ ] **Descarga Multi-archivo Comprimida (.zip):** - [ ] **Descarga Multi-archivo Comprimida (.zip):**
- Empaquetar múltiples archivos en un único archivo zip descargable al vuelo. - Empaquetar múltiples archivos en un único archivo zip descargable al vuelo.
- [ ] **Transferencia Directa P2P (WebRTC):**
- Tráfico directo punto a punto navegador a navegador para archivos de gran volumen sin persistencia en disco del servidor.
- [ ] **Protección por PIN / Contraseña opcional:** - [ ] **Protección por PIN / Contraseña opcional:**
- Permitir a quien comparte proteger el visor con una clave de 4-6 dígitos. - Permitir a quien comparte proteger el visor con una clave de 4-6 dígitos.
- [ ] **Modo de un solo uso (Burn after reading):** - [ ] **Modo de un solo uso (Burn after reading):**