Compare commits
2
Commits
cfda6921f9
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc416cde99 | ||
|
|
32d0190ca8 |
+14
-6
@@ -8,14 +8,22 @@
|
||||
|
||||
## 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.
|
||||
- **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".
|
||||
- **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.
|
||||
- **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.
|
||||
- **Previsualización de modelos 3D / audio spectrum:** Visualizador simple para archivos GLTF/OBJ o visualizador de espectro interactivo para pistas de audio.
|
||||
|
||||
---
|
||||
|
||||
## 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
|
||||
|
||||
- Modo P2P / WebRTC para transferir archivos pesados gigabytes directamente entre navegadores en la misma red local sin almacenarlos en el servidor.
|
||||
- Mini editor de texto con syntax highlighting enriquecido (Monaco Editor o CodeMirror ligero).
|
||||
- Sincronización de portapapeles en tiempo real entre dispositivos autorizados mediante WebSockets.
|
||||
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
+5
-3
@@ -38,9 +38,9 @@
|
||||
|
||||
## 🚀 En Progreso / Inmediatas
|
||||
|
||||
- [ ] **Creación del Repositorio Git Remoto:**
|
||||
- Crear repo en `git.telcotronics.net/pablinux/app_compartir.git`.
|
||||
- Configurar `git remote add origin ...` y realizar primer push.
|
||||
- [x] **Creación del Repositorio Git Remoto:**
|
||||
- Configurado en `https://git.telcotronics.net/pablinux/app_compartir.git`.
|
||||
- Rama `main` 100% sincronizada y verificada con `origin`.
|
||||
|
||||
---
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
### Fase 2: Experiencia y Utilidades
|
||||
- [ ] **Descarga Multi-archivo Comprimida (.zip):**
|
||||
- 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:**
|
||||
- Permitir a quien comparte proteger el visor con una clave de 4-6 dígitos.
|
||||
- [ ] **Modo de un solo uso (Burn after reading):**
|
||||
|
||||
Reference in New Issue
Block a user