5.6 KiB
🚀 drop.sigmac.app
Pasa fotos, notas, PDFs y archivos entre tu teléfono y tu ordenador en segundos — sin necesidad de abrir WhatsApp ni mandar mensajes a tu propio chat.
Una aplicación web ágil, moderna y ligera desarrollada en Go. Permite transferir cualquier tipo de archivo o texto con generación instantánea de enlace y código QR para escanearlo con la cámara del móvil.
🎯 ¿Qué problema resuelve?
Pasarse una foto de la PC al celular, un fragmento de código, una contraseña temporal o un PDF habitualmente obliga a abrir WhatsApp Web, buscar tu propio chat ("Chat contigo mismo"), enviar el archivo (que a menudo se recomprime) y luego borrarlo.
drop.sigmac.app elimina toda esa fricción:
- Arrastras el archivo o pegas una captura con Ctrl+V en el navegador.
- Apuntas con la cámara de tu móvil al código QR que aparece en pantalla.
- ¡Listo! Se abre el visor en tu móvil de forma inmediata.
✨ Características Principales
📤 Subida sin complicaciones
- Drag & Drop: Arrastra cualquier archivo a la ventana.
- Portapapeles directo: Presiona Ctrl+V en cualquier parte de la página para subir capturas de pantalla o texto copiado al instante.
- Pestaña Texto / Código: Comparte fragmentos de código, notas de reuniones o enlaces sin crear archivos de texto manualmente.
📱 Escaneo QR y Enlaces Cortos
- Cada elemento compartido genera una URL corta (
/v/slug) y un código QR nativo en pantalla. - Puedes escanearlo directamente desde cualquier smartphone sin instalar ninguna app adicional.
👁️ Visor Universal Integrado (/v/{id})
No requiere descargar el archivo a ciegas para ver qué es:
- 🖼️ Imágenes: Visor con zoom al 100%, pantalla completa y alta calidad (PNG, JPG, GIF, WebP, SVG).
- 🎥 Video: Reproductor HTML5 integrado para previsualizar grabaciones o clips (MP4, WebM).
- 🎵 Audio: Reproductor nativo para notas de voz o música (MP3, WAV, OGG).
- 📄 PDFs: Lector embebido interactivo en el navegador.
- 💻 Texto / Código: Formato legible con resaltado monospace y botón para Copiar texto al portapapeles con un clic.
- 📦 Otros archivos: Ficha técnica con tamaño exacto, tipo de archivo y botón directo de descarga.
🔒 Política de Retención: Invitado vs Cuenta Registrada
| Característica | 👤 Modo Invitado (Guest) | 🛡️ Cuenta Registrada (WebControl / Google) |
|---|---|---|
| ¿Requiere inicio de sesión? | No (usar y compartir de inmediato) | Sí (login fácil con 1 clic) |
| Tiempo de vida del archivo | ⏰ 24 horas exactas | ♾️ Permanente (no expira) |
| Eliminación automática | Sí, el worker purga archivo y registro tras 24h | Nunca (se conserva hasta que lo borres) |
| Panel "Mis Archivos" | No disponible | ✅ Sí (/mis-archivos) con historial y métricas |
| Eliminación manual | No requerida (se auto-destruye) | ✅ Sí, botón para eliminar cuando quieras |
🛠️ Stack Tecnológico
- Lenguaje: Go (Go 1.22+ / 1.27 con routing nativo
net/http) - Base de Datos: SQLite local en modo WAL (vía
modernc.org/sqlite, 100% puro Go sin dependencias CGO) - Generador QR:
github.com/skip2/go-qrcode(generación ultrarrápida de QR PNG) - Frontend: HTML5, Tailwind CSS y FontAwesome
- Autenticación:
- Telcotronics WebControl (
https://api.siax-system.net/api/auth/login) - Google OAuth2
- Telcotronics WebControl (
🚀 Puesta en Marcha Rápida
1. Requisitos
- Go 1.22 o superior instalado en el sistema.
2. Configurar entorno
Copia la plantilla de variables de entorno:
cp .env.example .env
Parámetros disponibles en .env:
PORT=8085
BASE_URL=http://localhost:8085
DATA_DIR=./data
SESSION_SECRET=clave_secreta_para_cookies
WEBCONTROL_API_URL=https://api.siax-system.net
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
3. Compilar y Arrancar
# Descargar dependencias
go mod tidy
# Compilar binario autónomo
go build -o app_compartir main.go
# Ejecutar el servidor
./app_compartir
Abre tu navegador en: http://localhost:8085
🧪 Pruebas Automatizadas
El proyecto cuenta con tests automatizados que comprueban la regla estricta de caducidad a las 24 horas para invitados y la permanencia de usuarios registrados:
go test -v ./...
📂 Estructura del Código
app_compartir/
├── internal/
│ ├── auth/ # Sesiones HTTP-only, WebControl y Google OAuth
│ ├── cleaner/ # Worker periódico de purga automática 24h para invitados
│ ├── config/ # Variables de entorno y rutas
│ ├── db/ # DAL de SQLite, esquema y consultas seguras
│ ├── handlers/ # Controladores HTTP: upload, visor, QR, auth, descarga
│ ├── models/ # Estructuras de datos (Share, User, Session)
│ └── storage/ # Generador de slugs seguros y almacenamiento en disco
├── web/
│ └── templates/ # Plantillas HTML (base, index, visor, login, mis archivos)
├── .agente/ # Documentación interna del agente y ecosistema Telcotronics
├── main.go # Servidor HTTP principal y ciclo de vida de la app
├── main_test.go # Tests de integración de retención y purga
└── README.md # Esta guía
🏢 Ecosistema Telcotronics
Este proyecto forma parte del ecosistema Telcotronics y se encuentra registrado en la infraestructura compartida del MCP (mcp.telcotronics.net / infraestructura.md).
Para más detalles técnicos y reglas del agente, consultar agents.md.