{"id":25944441,"url":"https://github.com/diegolavallade/boxes","last_synced_at":"2026-05-07T05:39:04.477Z","repository":{"id":280016588,"uuid":"939106543","full_name":"diegolavallade/Boxes","owner":"diegolavallade","description":"Aplicación web para compartir archivos y chatear en tiempo real, con notificaciones push.","archived":false,"fork":false,"pushed_at":"2025-02-28T19:07:07.000Z","size":124,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-30T13:53:34.292Z","etag":null,"topics":["chat","file-sharing","file-sharing-server","file-sharing-site","file-upload","push-notifications","python","real-time","tailwind","web-app"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diegolavallade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-26T02:07:25.000Z","updated_at":"2025-02-28T19:07:10.000Z","dependencies_parsed_at":"2025-02-28T22:36:14.653Z","dependency_job_id":"287aeca2-f507-4342-9f3e-b7c15e147036","html_url":"https://github.com/diegolavallade/Boxes","commit_stats":null,"previous_names":["diegolavallade/boxes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/diegolavallade/Boxes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegolavallade%2FBoxes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegolavallade%2FBoxes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegolavallade%2FBoxes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegolavallade%2FBoxes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diegolavallade","download_url":"https://codeload.github.com/diegolavallade/Boxes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegolavallade%2FBoxes/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268069097,"owners_count":24190661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","file-sharing","file-sharing-server","file-sharing-site","file-upload","push-notifications","python","real-time","tailwind","web-app"],"created_at":"2025-03-04T08:17:54.294Z","updated_at":"2026-05-07T05:39:04.451Z","avatar_url":"https://github.com/diegolavallade.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Documentación Técnica - Box's\n\n## Descripción del Proyecto\n**Box's** es una aplicación web que permite compartir archivos y chatear en tiempo real con un equipo. La aplicación utiliza un servidor Python basado en `http.server` y una interfaz de usuario desarrollada con TailwindCSS y FontAwesome.\n\n## Características Principales\n- **Gestor de archivos**: Subida y descarga de archivos con metadatos.\n- **Chat en tiempo real**: Comunicación entre usuarios con almacenamiento de mensajes.\n- **Notificaciones Push**: Sistema de suscripción basado en Web Push API.\n- **Interfaz moderna**: Uso de TailwindCSS para una apariencia atractiva.\n- **Configuraciones de usuario**: Cambio de nombre y preferencias de vista.\n\n---\n\n## Instalación y Configuración\n\n### Requisitos\n- Python 3.x\n- Dependencias del servidor:\n  ```sh\n  pip install pywebpush\n  ```\n\n### Configuración de VAPID Keys\nPara las notificaciones push, debes generar claves VAPID y configurarlas en `server.py`:\n```python\nVAPID_PUBLIC_KEY = \"TU_CLAVE_PUBLICA\"\nVAPID_PRIVATE_KEY = \"TU_CLAVE_PRIVADA\"\n```\nPuedes generar estas claves con:\n```sh\npython -m pywebpush.generate\n```\n\n---\n\n## Estructura del Proyecto\n```\n📂 Box's\n├── 📄 index.html        # Interfaz web de la aplicación\n├── 📄 server.py         # Servidor HTTP en Python\n├── 📁 public/           # Directorio donde se almacenan los archivos subidos\n├── 📄 chat.json         # Base de datos de mensajes del chat\n├── 📄 files.json        # Metadatos de archivos subidos\n├── 📄 users.json        # Información de usuarios y preferencias\n├── 📄 logs.json         # Registro de eventos del servidor\n```\n\n---\n\n## Uso\n\n### Iniciar el Servidor\nEjecuta el servidor con:\n```sh\npython server.py\n```\nEsto levantará la aplicación en el puerto 80.\n\n### Acceder a la Aplicación\nAbre un navegador y accede a:\n```\nhttp://localhost\n```\n\n---\n\n## Endpoints\n### **GET**\n| Ruta             | Descripción |\n|-----------------|-------------|\n| `/`             | Página principal (index.html) |\n| `/files`        | Lista los archivos subidos |\n| `/download?file=nombre` | Descarga un archivo |\n| `/chat`         | Obtiene los mensajes del chat |\n| `/userinfo`     | Obtiene información del usuario |\n\n### **POST**\n| Ruta             | Descripción |\n|-----------------|-------------|\n| `/upload`       | Sube un archivo |\n| `/deleteFile`   | Elimina un archivo subido |\n| `/chat`         | Envía un mensaje al chat |\n| `/setusername`  | Cambia el nombre del usuario |\n| `/subscribe`    | Registra la suscripción de notificaciones |\n| `/updateNotifications` | Activa o desactiva las notificaciones push |\n| `/updateView`   | Cambia la preferencia de vista (lista/cuadrícula) |\n\n---\n\n## Seguridad\n- El sistema asocia cada usuario con su dirección IP.\n- Sólo el usuario que sube un archivo puede eliminarlo.\n- Se recomienda utilizar HTTPS para proteger la transmisión de datos.\n\n---\n\n## Créditos\nDesarrollado por **Diego Lavallade** para **CaféFusión** - 2025. Todos los derechos reservados.\n\n---\n\n## Licencia\nEste proyecto se distribuye bajo la licencia MIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegolavallade%2Fboxes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiegolavallade%2Fboxes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegolavallade%2Fboxes/lists"}