¡Gracias por tu interés en contribuir a Google My Business Scraper!
- 🐛 Reportar bugs
- 💡 Sugerir nuevas funcionalidades
- 📝 Mejorar documentación
- 🔧 Enviar código (bug fixes, features)
- 🌍 Traducir la aplicación
- ⭐ Dar estrella al proyecto
# Fork el repositorio en GitHub, luego:
git clone https://github.com/TU_USUARIO/google-my-business-scraper.git
cd google-my-business-scraper# Crear entorno virtual
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Instalar dependencias
cd src
pip install -r requirements.txt# Opción 1: Variable de entorno (recomendado)
export GOOGLE_PLACES_API_KEY="tu_api_key_de_prueba"
# Opción 2: Archivo local (NO commitear)
echo "tu_api_key_de_prueba" > google_api_key.txtpython scraper_gui.pyAntes de empezar a codear, abre una issue describiendo:
- El problema o feature que quieres resolver
- Por qué es importante
- Cómo planeas implementarlo (opcional)
Esto evita trabajo duplicado y alinea expectativas.
git checkout -b feature/nombre-descriptivo
# o
git checkout -b fix/nombre-del-bugConvenciones de nombres:
feature/- Nueva funcionalidadfix/- Corrección de bugsdocs/- Documentaciónrefactor/- Refactorización de códigotest/- Tests
- ✅ Escribe código limpio y comentado
- ✅ Sigue el estilo del proyecto (PEP 8 para Python)
- ✅ Prueba tus cambios manualmente
- ✅ Actualiza la documentación si es necesario
- ✅ NO incluyas tu API Key en commits
Usa mensajes descriptivos en español:
git add .
git commit -m "feat: Agregar exportación a Excel
- Implementada exportación a formato XLSX
- Añadida librería openpyxl a requirements
- Actualizada interfaz con botón de exportación
- Tests manuales OK"Formato de commits:
feat:- Nueva funcionalidadfix:- Corrección de bugdocs:- Documentaciónrefactor:- Refactorizacióntest:- Testschore:- Tareas de mantenimiento
git push origin feature/nombre-descriptivoLuego en GitHub:
- Crea un Pull Request
- Describe qué cambios hiciste
- Referencia la issue relacionada (#número)
- Agrega capturas de pantalla si aplica
- El código funciona sin errores
- He probado la funcionalidad manualmente
- La documentación está actualizada
- No he incluido API Keys o datos sensibles
- Los commits tienen mensajes descriptivos
- He actualizado CHANGELOG.md si corresponde
- El código sigue el estilo del proyecto
Usa la plantilla de issues en GitHub e incluye:
- Descripción: ¿Qué está pasando?
- Pasos para reproducir: ¿Cómo recrear el bug?
- Comportamiento esperado: ¿Qué debería pasar?
- Screenshots: Si aplica
- Entorno:
- Sistema operativo y versión
- Versión de Python
- Versión de la aplicación
Abre una issue con la etiqueta enhancement e incluye:
- Problema: ¿Qué problema resuelve?
- Solución propuesta: ¿Cómo lo implementarías?
- Alternativas: ¿Consideraste otras opciones?
- Casos de uso: ¿Quién se beneficiaría?
# ✅ Bueno
def get_business_details(place_id: str) -> Optional[BusinessData]:
"""
Obtiene detalles de un negocio desde la API.
Args:
place_id: ID único del lugar en Google
Returns:
Objeto BusinessData o None si hay error
"""
pass
# ❌ Malo
def getBusiness(id):
pass# ✅ Bueno
total_businesses_found = 42
is_scraping_active = True
# ❌ Malo
x = 42
flag = True# ✅ Bueno
# Delay para evitar rate limiting de la API (3-5 seg)
time.sleep(random.uniform(3.0, 5.0))
# ❌ Malo
# Esperar
time.sleep(4)Por ahora el testing es manual. Para el futuro planeamos:
- Tests unitarios con pytest
- Tests de integración
- CI/CD con GitHub Actions
Mientras tanto:
- Prueba todos los casos de uso
- Prueba en diferentes sistemas operativos
- Verifica que no rompiste funcionalidad existente
google-my-business-scraper/
├── src/ # Código fuente principal
│ ├── scraper_gui.py # Aplicación principal
│ └── requirements.txt # Dependencias
├── build-scripts/ # Scripts de compilación
├── docs/ # Documentación
├── .github/ # GitHub Actions (futuro)
└── README.md # Documentación principal
- 📧 Abre una issue con la etiqueta
question - 💬 Comenta en issues existentes
- 🌐 Visita webdesignerk.com
- Sé respetuoso con otros contribuidores
- Acepta críticas constructivas de code reviews
- Ayuda a nuevos contribuidores
- Reporta comportamiento inapropiado
Todos los contribuidores serán reconocidos en:
- README.md
- CHANGELOG.md
- Release notes
¡Gracias por hacer este proyecto mejor! 🚀
Mantenido por: Konstantin Koshkarev Web: webdesignerk.com