# Guía de Contribución

¡Gracias por tu interés en contribuir al Sistema Automatizado de Denuncias LaLiga! Tu ayuda es muy valiosa para mejorar esta herramienta.

## 🚨 Importante: Uso Responsable

Antes de contribuir, es fundamental entender que esta herramienta debe usarse **únicamente para denuncias legítimas de emisiones ilegales**. Las contribuciones deben enfocarse en mejorar la funcionalidad para usuarios reales que necesitan reportar infracciones genuinas.

## 🤝 Formas de Contribuir

### 🐛 Reportar Errores

Si encuentras un error o problema:

1. **Verifica** que el error no haya sido reportado anteriormente
2. **Incluye información detallada**:
   - Descripción clara del problema
   - Pasos para reproducir el error
   - Logs relevantes (sin datos personales)
   - Versión de Docker y sistema operativo
   - Configuración de variables de entorno (sin valores sensibles)

3. **Crea un issue** con la etiqueta "bug"

### 💡 Sugerir Nuevas Funcionalidades

Para proponer mejoras:

1. **Describe el problema** que la funcionalidad resolvería
2. **Explica la solución propuesta** con detalle
3. **Considera el impacto** en la funcionalidad existente
4. **Crea un issue** con la etiqueta "enhancement"

### 🔧 Contribuir con Código

#### Configuración del Entorno de Desarrollo

```bash
# Clonar el repositorio
git clone [URL_DEL_REPO]
cd l4l1g4-d3nunc145

# Instalar dependencias
uv sync

# Configurar variables de entorno para desarrollo
cp .env.example .env
# Editar .env con configuración de desarrollo
```

#### Proceso de Desarrollo

1. **Fork** el repositorio
2. **Crea una rama** para tu funcionalidad:
   ```bash
   git checkout -b feature/nueva-funcionalidad
   ```
3. **Desarrolla** tu contribución
4. **Prueba** tu código exhaustivamente
5. **Commit** con mensajes descriptivos
6. **Push** a tu fork
7. **Crea un Pull Request**

#### Estándares de Código

- **Código limpio**: Sigue las mejores prácticas de Python
- **Comentarios**: Documenta código complejo en español
- **Logging**: Usa el sistema de logging existente
- **Variables de entorno**: Mantén la compatibilidad con la configuración actual
- **Manejo de errores**: Implementa manejo robusto de excepciones

### 📚 Mejorar la Documentación

La documentación es crucial para los usuarios:

- **README.md**: Mejoras en las instrucciones de uso
- **Comentarios de código**: Explicaciones claras en español
- **Ejemplos**: Casos de uso adicionales para `denuncias.yml`
- **Solución de problemas**: Nuevos casos y soluciones

### 🌐 Internacionalización

Aunque el proyecto está en español, las contribuciones pueden incluir:

- **Comentarios de código en inglés**: Para desarrolladores internacionales
- **Documentación técnica**: En inglés para la comunidad global
- **Mensajes de error**: Bilingües cuando sea apropiado

## 🧪 Testing y Validación

### Entorno de Pruebas

**⚠️ NUNCA pruebes contra el sitio real de LaLiga con datos falsos.**

Para desarrollar y probar:

1. **Configura un servidor de pruebas local**:
   ```bash
   # Ejemplo con un servidor local que simule el formulario
   TARGET_URL=http://localhost:3000/test-form
   USE_MOCK_DATA=true
   ```

2. **Usa datos de prueba claramente identificables**:
   ```yaml
   denuncias:
     - nombre_local: "TEST - No es real"
       descripcion: "PRUEBA - No es una denuncia real"
   ```

### Validación Antes del PR

Antes de enviar tu Pull Request:

- [ ] El código funciona sin errores
- [ ] Los logs son claros y útiles
- [ ] La documentación está actualizada
- [ ] No hay datos sensibles en el código
- [ ] Las variables de entorno funcionan correctamente
- [ ] El Docker build funciona correctamente

## 📋 Tipos de Contribuciones Necesarias

### Prioridad Alta
- **Manejo de errores mejorado**: Más robusto ante fallos de red
- **Validación de datos**: Verificar formato de emails, códigos postales
- **Logs más detallados**: Mejor información para debugging
- **Optimización de rendimiento**: Reducir tiempo de espera

### Prioridad Media
- **Configuración flexible**: Más opciones de personalización
- **Soporte para más formatos de imagen**: WEBP, SVG
- **Modo de verificación**: Revisar datos antes de enviar
- **Estadísticas**: Contador de denuncias enviadas

### Prioridad Baja
- **Interfaz gráfica**: GUI para usuarios no técnicos
- **Integración con APIs**: Automatizar obtención de datos
- **Notificaciones**: Alertas cuando se complete el proceso
- **Backup automático**: Respaldo de configuraciones

## 🔍 Revisión de Código

Todos los Pull Requests serán revisados considerando:

1. **Calidad del código**: Legibilidad y mantenibilidad
2. **Seguridad**: No exposición de datos sensibles
3. **Funcionalidad**: Cumple el propósito sin romper existente
4. **Documentación**: Cambios documentados apropiadamente
5. **Testing**: Evidencia de pruebas realizadas

## 💬 Comunicación

### Idiomas
- **Issues y PRs**: Preferiblemente en español
- **Código y comentarios técnicos**: Español o inglés
- **Documentación de usuario**: Español

### Etiqueta
- Sé respetuoso y constructivo
- Proporciona contexto suficiente
- Agradece las contribuciones de otros
- Mantén las discusiones enfocadas en el tema

## 🎯 Objetivos del Proyecto

Recuerda que nuestros objetivos son:

1. **Facilitar denuncias legítimas**: Hacer más accesible el proceso legal
2. **Automatización responsable**: Reducir trabajo manual sin perder control
3. **Código mantenible**: Fácil de entender y modificar
4. **Documentación clara**: Usuarios pueden usar la herramienta seguramente
5. **Uso ético**: Prevenir mal uso del sistema de denuncias

## ❓ Preguntas

Si tienes preguntas sobre cómo contribuir:

1. Revisa la documentación existente
2. Busca en issues cerrados por respuestas similares
3. Crea un issue con la etiqueta "question"
4. Sé específico sobre lo que necesitas ayuda

---

**¡Gracias por ayudar a mejorar esta herramienta para la comunidad!**