Update package-lock.json and package.json to reflect openai version change from 4.80.1 to 4.82.0

This commit is contained in:
2025-11-11 03:24:23 -05:00
parent 25e2baef86
commit 01491626ee
4 changed files with 153 additions and 32 deletions

112
README.md
View File

@@ -0,0 +1,112 @@
# Audio Control - Backend
Este es el proyecto de backend para la aplicación **SoundWave**. Es una API RESTful construida con Node.js y Express, diseñada para gestionar la autenticación de usuarios, controlar un reproductor de audio y administrar una lista de reproducción de videos de YouTube.
## Tabla de Contenidos
- [Acerca del Proyecto](#acerca-del-proyecto)
- [Estructura de la API](#estructura-de-la-api)
- [Tecnologías](#tecnologías)
- [Instalación y Uso](#instalación-y-uso)
- [Variables de Entorno](#variables-de-entorno)
- [Estructura de la Base de Datos](#estructura-de-la-base-de-datos)
## Acerca del Proyecto
Este backend proporciona los servicios necesarios para que el frontend `audio-player` funcione correctamente.
- **API RESTful**: Endpoints claros y definidos para la gestión de recursos.
- **Autenticación Segura**: Maneja la autenticación de usuarios a través de Google OAuth 2.0 y genera tokens JWT para sesiones seguras.
- **Gestión de Base de Datos**: Se conecta a una base de datos MySQL para persistir datos de usuarios y listas de reproducción.
- **Panel de Control Integrado**: Sirve una interfaz web simple con EJS y Materialize CSS para el control directo del reproductor.
- **Manejo de Errores Centralizado**: Utiliza un middleware de Express para gestionar todos los errores de forma consistente.
## Estructura de la API
A continuación se describen los endpoints principales:
### Autenticación
- `POST /api/auth/google`: Autentica a un usuario con un token de Google. Crea el usuario si no existe y devuelve un token JWT de la aplicación.
### Playlist de YouTube
- `GET /api/youtube-playlist`: Devuelve la lista de reproducción de videos de YouTube.
- `POST /api/youtube-video`: Añade un nuevo video a la lista de reproducción.
### Control Remoto
- `GET /cmd?consulta=<comando>`: Endpoint para enviar comandos a un reproductor (ej. `play_video`, `pausa_video`).
## Tecnologías
- **Node.js**: Entorno de ejecución de JavaScript.
- **Express.js**: Framework web para Node.js.
- **MySQL**: Sistema de gestión de bases de datos.
- **jsonwebtoken**: Para la creación y verificación de tokens JWT.
- **google-auth-library**: Para verificar los tokens de ID de Google.
- **dotenv**: Para la gestión de variables de entorno.
- **EJS**: Motor de plantillas para servir el panel de control.
## Instalación y Uso
1. **Clona el repositorio:**
```bash
git clone <URL_DEL_REPOSITORIO>
cd audio_control
```
2. **Instala las dependencias:**
```bash
npm install
```
3. **Configura las variables de entorno:**
Crea un archivo `.env` en la raíz del proyecto (`src/.env`). Consulta la sección Variables de Entorno.
4. **Inicia el servidor:**
```bash
npm start
```
El servidor se iniciará en el puerto 2000 (o el que se especifique).
## Variables de Entorno
Crea un archivo `.env` en el directorio `src/` con las siguientes variables. **Es crucial para la seguridad y el funcionamiento de la aplicación.**
```
# Secret para firmar los tokens JWT (usa un valor largo y aleatorio)
JWT_SECRET=tu_super_secreto_para_jwt
# Credenciales de Google Cloud para OAuth 2.0
GOOGLE_CLIENT_ID=tu_client_id_de_google.apps.googleusercontent.com
```
## Estructura de la Base de Datos
El proyecto requiere una base de datos MySQL con al menos las siguientes tablas:
**Tabla `users`**:
```sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
google_id VARCHAR(255) UNIQUE,
email VARCHAR(255) NOT NULL UNIQUE,
name VARCHAR(255),
picture_url VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
**Tabla `rep_youtube`**:
```sql
CREATE TABLE rep_youtube (
id INT AUTO_INCREMENT PRIMARY KEY,
video_id VARCHAR(50) NOT NULL,
title VARCHAR(255) NOT NULL,
channel VARCHAR(255),
thumbnail VARCHAR(255),
duration VARCHAR(20),
added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```