Aplicación web de seguimiento de relaciones públicas multicanal

Mi software de código abierto tiene voluntarios que anuncian cada nuevo lanzamiento (u otras noticias importantes) en varios canales (página oficial de Facebook, cuenta oficial de Twitter, lista de correo oficial, grupo no oficial de Reddit, etc.).

Nos gustaría hacer un seguimiento de estos anuncios, para que ningún canal se quede atrás y para que podamos tener una idea de qué tipo de noticias son populares.

Requisitos:

  • Aplicación Web
  • Cada canal se puede registrar
  • Para cada noticia, enlace a la noticia en cada canal
  • Popularidad de cada noticia en cada canal (por ejemplo, en Facebook que podría ser número o me gusta+comentarios, en una lista de correo que sería número de respuestas)
  • Estadísticas o exportación de datos sin procesar
  • Gratis
  • Bonificación si varios administradores pueden usar la aplicación web, pero todos los que usan el mismo nombre de usuario/contraseña también están bien.
  • No nos importa que los datos sean visibles para cualquiera, está bien.

Podría verse así (o no): ingrese la descripción de la imagen aquí... con cada enlace apuntando a la publicación correspondiente. La interfaz de administración tendría un botón para agregar una nueva fila de anuncios y una forma de reemplazar "no publicado" con un enlace al anuncio en ese canal.

Respuestas (2)

Dudo que exista alguna herramienta preparada para todo esto lista para usar.

Te enfrentas a los siguientes problemas:

  • cada interfaz debe escribirse por separado
  • debe cambiar el script en cada cambio del front-end (por ejemplo, cambios vinculados con frecuencia sobre la marcha)
  • debe guardar los datos en una sola base de datos/salida

Recomendaría implementar scripts en herramientas de prueba de automatización. Selenium Webdriver y algún lenguaje de programación para "controlar" el controlador web (java, ruby, python) podrían ser suficientes para esta tarea.

Tendrás que contratar a un programador medio con conocimientos del lenguaje elegido, Xpath y (opcionalmente) Selenium (es muy sencillo), pero podrás rastrear prácticamente CUALQUIER contenido.

Le sugiero que incluya una página de reseñas, posiblemente como Markdown , en su repositorio que los voluntarios puedan editar con sus enlaces de reseñas y confirmar como cualquier otro código fuente . Luego puede tener una secuencia de comandos de python que se ejecuta diariamente/semanalmente para leer de ese archivo de descuento y ejecutar los enlaces recopilando las estadísticas de cada enlace. Incluso podría generar un archivo .csv contra la fecha de escaneo para poder graficar tendencias.

Ese script podría actualizar el README.md u otra página en los documentos y publicarlo en el repositorio. Si está utilizando GitHub, las actualizaciones de README.md se procesan automáticamente en la página de inicio del repositorio; también hay soporte para que la documentación de Sphinx se procese automáticamente ; muchos o la mayoría de los repositorios de código fuente admiten esta funcionalidad.

¿Por qué Python?

Python es especialmente adecuado para esto porque:

  • el rico ecosistema incluye herramientas como:
    • request-html que facilita la recopilación de datos. Posiblemente necesitará un filtro separado para recopilar los datos de cada canal.
    • La cadena de herramientas de documentación de Sphinx
    • Muchas herramientas de generación de gráficos.
  • Puede configurar fácilmente los scripts de Python para que se ejecuten como un servicio y/o con ganchos de confirmación
  • No necesita preocuparse en qué plataforma se ejecuta su script
  • Podría usar un servicio en la nube para esta tarea y la mayoría tiene Python como una opción de herramienta principal.
  • Este sería un buen primer proyecto para alguien que está aprendiendo Python.

Puntos adicionales

  • La mayoría de los repositorios y sistemas de control de versiones le permiten seleccionar qué autores pueden editar qué archivos.
  • Muchos/la mayoría presentan una página de "inicio" que se actualiza automáticamente cuando se confirman cambios en README.md o algún otro archivo .
  • La integración de ReadTheDocs está disponible
  • También vale la pena leer esto