4.6 KiB
4.6 KiB
proyecto_estructura.md — Estructura del proyecto
Árbol de archivos, rutas HTTP/API y dependencias entre módulos. Actualizar al agregar o mover archivos ("actualizar proyecto").
Árbol de archivos
app_compartir/
├── .agente/
│ ├── ideas.md
│ ├── infraestructura.md
│ ├── objetivos.md
│ ├── proyecto_errores.md
│ ├── proyecto_estructura.md
│ ├── proyecto_memoria.md
│ ├── reglas.md
│ └── tareas.md
├── internal/
│ ├── auth/
│ │ └── auth.go # Manejo de sesiones, WebControl y Google OAuth2
│ ├── cleaner/
│ │ └── cleaner.go # Worker periódico de purga (24h para guest)
│ ├── config/
│ │ └── config.go # Carga de configuración y .env
│ ├── db/
│ │ └── db.go # SQLite DAL, esquema y consultas
│ ├── handlers/
│ │ └── handlers.go # Rutas HTTP, endpoints API y renderizado HTML
│ ├── models/
│ │ └── models.go # Estructuras de datos (Share, User, Session)
│ └── storage/
│ └── storage.go # Slugs aleatorios, sniffing MIME y guardado en disco
├── web/
│ ├── static/ # Iconos, favicons y recursos estáticos de la marca
│ │ ├── favicon.ico # Icono multirresolución para navegadores
│ │ ├── favicon.svg # Icono vectorial escalable y moderno
│ │ ├── icon-192.png # Icono PWA / accesos directos móviles
│ │ └── icon-512.png # Icono alta resolución / splash screen
│ └── templates/
│ ├── base.html # Layout común con Tailwind CSS y FontAwesome
│ ├── expired.html # Mensaje informativo de archivo guest caducado (24h)
│ ├── index.html # Drag & Drop, pegar portapapeles y compartir texto
│ ├── login.html # Login con WebControl y Google OAuth
│ ├── my_shares.html # Panel de usuario con sus archivos permanentes
│ └── viewer.html # Visor universal (imágenes, video, audio, PDF, código)
├── .env.example
├── .gitignore
├── desplegar.sh # Script de compilación y despliegue (máquina dev)
├── id_agente.md # Identidad oficial del agente en el ecosistema
├── init.sh # Script ejecutor local en el servidor
├── servers.conf.example # Plantilla de credenciales SSH para despliegue
├── siax-app-DROP_SIGMAC_APP.service # Definición de servicio systemd para SIAX Monitor
├── go.mod
├── go.sum
├── main.go # Punto de entrada y servidor HTTP Go
├── main_test.go # Tests unitarios/integración (purga 24h vs permanencia)
├── README.md
└── agents.md # Punto de entrada del agente
Rutas HTTP / Endpoints
| Método | Ruta | Handler | Descripción |
|---|---|---|---|
GET |
/ |
h.Index |
Página principal de subida (drag & drop, portapapeles, texto) |
POST |
/api/upload |
h.Upload |
Subida de archivos multipart |
POST |
/api/share-text |
h.ShareText |
Subida rápida de notas, textos o código |
GET |
/v/{id} |
h.View |
Visor universal de contenidos compartidos |
GET |
/d/{id} |
h.Download |
Descarga directa forzada (attachment) |
GET |
/raw/{id} |
h.Raw |
Visualización directa (inline) |
GET |
/qr/{id} |
h.QR |
Generador dinámico de código QR en PNG |
DELETE |
/api/shares/{id} |
h.DeleteShare |
Eliminación de archivo (usuario propietario) |
GET |
/login |
h.LoginView |
Pantalla de inicio de sesión |
POST |
/login/webcontrol |
h.WebControlLogin |
Autenticación con credenciales WebControl |
GET |
/auth/google |
h.GoogleLogin |
Redirección OAuth a Google |
GET |
/auth/google/callback |
h.GoogleCallback |
Retorno de autenticación OAuth Google |
GET |
/logout |
h.Logout |
Cierre de sesión y limpieza de cookie |
GET |
/mis-archivos |
h.MyShares |
Panel con archivos permanentes del usuario |
Dependencias entre módulos
main.goorquestaconfig,db,cleaner,authyhandlers.handlersutilizastoragepara guardar archivos yqrcodepara generar códigos de acceso móvil.cleanerconsulta periódicamentedby elimina archivos físicos dedata/uploads/para sharesis_guest = trueconexpires_at <= NOW(). Las cuentas registradas son ignoradas por el cleaner.