https://github.com/diegolavallade/boxes
Aplicación web para compartir archivos y chatear en tiempo real, con notificaciones push.
https://github.com/diegolavallade/boxes
chat file-sharing file-sharing-server file-sharing-site file-upload push-notifications python real-time tailwind web-app
Last synced: about 1 month ago
JSON representation
Aplicación web para compartir archivos y chatear en tiempo real, con notificaciones push.
- Host: GitHub
- URL: https://github.com/diegolavallade/boxes
- Owner: diegolavallade
- Created: 2025-02-26T02:07:25.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-28T19:07:07.000Z (over 1 year ago)
- Last Synced: 2025-06-30T13:53:34.292Z (11 months ago)
- Topics: chat, file-sharing, file-sharing-server, file-sharing-site, file-upload, push-notifications, python, real-time, tailwind, web-app
- Language: HTML
- Homepage:
- Size: 121 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Documentación Técnica - Box's
## Descripción del Proyecto
**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.
## Características Principales
- **Gestor de archivos**: Subida y descarga de archivos con metadatos.
- **Chat en tiempo real**: Comunicación entre usuarios con almacenamiento de mensajes.
- **Notificaciones Push**: Sistema de suscripción basado en Web Push API.
- **Interfaz moderna**: Uso de TailwindCSS para una apariencia atractiva.
- **Configuraciones de usuario**: Cambio de nombre y preferencias de vista.
---
## Instalación y Configuración
### Requisitos
- Python 3.x
- Dependencias del servidor:
```sh
pip install pywebpush
```
### Configuración de VAPID Keys
Para las notificaciones push, debes generar claves VAPID y configurarlas en `server.py`:
```python
VAPID_PUBLIC_KEY = "TU_CLAVE_PUBLICA"
VAPID_PRIVATE_KEY = "TU_CLAVE_PRIVADA"
```
Puedes generar estas claves con:
```sh
python -m pywebpush.generate
```
---
## Estructura del Proyecto
```
📂 Box's
├── 📄 index.html # Interfaz web de la aplicación
├── 📄 server.py # Servidor HTTP en Python
├── 📁 public/ # Directorio donde se almacenan los archivos subidos
├── 📄 chat.json # Base de datos de mensajes del chat
├── 📄 files.json # Metadatos de archivos subidos
├── 📄 users.json # Información de usuarios y preferencias
├── 📄 logs.json # Registro de eventos del servidor
```
---
## Uso
### Iniciar el Servidor
Ejecuta el servidor con:
```sh
python server.py
```
Esto levantará la aplicación en el puerto 80.
### Acceder a la Aplicación
Abre un navegador y accede a:
```
http://localhost
```
---
## Endpoints
### **GET**
| Ruta | Descripción |
|-----------------|-------------|
| `/` | Página principal (index.html) |
| `/files` | Lista los archivos subidos |
| `/download?file=nombre` | Descarga un archivo |
| `/chat` | Obtiene los mensajes del chat |
| `/userinfo` | Obtiene información del usuario |
### **POST**
| Ruta | Descripción |
|-----------------|-------------|
| `/upload` | Sube un archivo |
| `/deleteFile` | Elimina un archivo subido |
| `/chat` | Envía un mensaje al chat |
| `/setusername` | Cambia el nombre del usuario |
| `/subscribe` | Registra la suscripción de notificaciones |
| `/updateNotifications` | Activa o desactiva las notificaciones push |
| `/updateView` | Cambia la preferencia de vista (lista/cuadrícula) |
---
## Seguridad
- El sistema asocia cada usuario con su dirección IP.
- Sólo el usuario que sube un archivo puede eliminarlo.
- Se recomienda utilizar HTTPS para proteger la transmisión de datos.
---
## Créditos
Desarrollado por **Diego Lavallade** para **CaféFusión** - 2025. Todos los derechos reservados.
---
## Licencia
Este proyecto se distribuye bajo la licencia MIT.