Mehrkanal-PR-Tracking-Webanwendung

Meine Open-Source-Software hat Freiwillige, die jede neue Version (oder andere wichtige Neuigkeiten) auf verschiedenen Kanälen (offizielle Facebook-Seite, offizieller Twitter-Account, offizielle Mailingliste, inoffizielle Reddit-Gruppe usw.) ankündigen.

Wir möchten diese Ankündigungen verfolgen, damit kein Kanal zurückgelassen wird und wir uns ein Bild davon machen können, welche Art von Nachrichten beliebt sind.

Anforderungen:

  • Web-App
  • Jeder Kanal kann registriert werden
  • Verlinken Sie für jede Nachricht zu den Nachrichten auf jedem Kanal
  • Popularität jeder Nachricht auf jedem Kanal (z. B. auf Facebook, die Anzahl oder Likes + Kommentare sein könnten, auf einer Mailingliste, die die Anzahl der Antworten sein könnte)
  • Statistik- oder Rohdatenexport
  • Kostenlos
  • Bonus, wenn die Webapp von mehreren Admins verwendet werden kann, aber alle mit dem gleichen Login/Passwort auch OK sind.
  • Es macht uns nichts aus, dass die Daten für jedermann sichtbar sind, es ist in Ordnung.

Es könnte so aussehen (oder auch nicht): Geben Sie hier die Bildbeschreibung ein... wobei jeder Link auf den entsprechenden Beitrag zeigt. Die Admin-Oberfläche hätte eine Schaltfläche zum Hinzufügen einer neuen Ankündigungszeile und eine Möglichkeit, „nicht gepostet“ durch einen Link zu der Ankündigung auf diesem Kanal zu ersetzen.

Antworten (2)

Ich bezweifle, dass ein vorbereitetes Tool für all dies sofort einsatzbereit ist.

Sie stehen vor folgenden Problemen:

  • Jedes Frontend sollte separat geskriptet werden
  • Sie sollten das Skript bei jeder Änderung des Frontends ändern (z. B. Linked-in-Änderungen häufig unterwegs)
  • Sie sollten Daten in einer einzigen Datenbank / Ausgabe speichern

Ich würde empfehlen, Skripte in Automatisierungstesttools zu implementieren. Selenium Webdriver und eine Programmiersprache zum "Fahren" des Webdrivers (Java, Ruby, Python) könnten für diese Aufgabe ausreichen.

Sie müssen einen mittelmäßigen Programmierer mit Kenntnissen der gewählten Sprache, Xpath und (optional) Selenium (es ist sehr einfach) einstellen, aber Sie können praktisch JEDEN Inhalt crawlen.

Ich würde vorschlagen, dass Sie eine Bewertungsseite, möglicherweise als Markdown , in Ihr Repository aufnehmen, die die Freiwilligen mit ihren Bewertungslinks bearbeiten und wie jeden anderen Quellcode übergeben können . Sie können dann ein Python -Skript haben, das täglich/wöchentlich ausgeführt wird, um aus dieser Markdown-Datei zu lesen und die Links zu durchlaufen, um die Statistiken zu jedem Link zu sammeln. Sie können sogar anhand des Scandatums in eine .csv-Datei ausgeben, um Trends grafisch darzustellen.

Dieses Skript könnte die README.md oder eine andere Seite in den Dokumenten aktualisieren und im Repository veröffentlichen. Wenn Sie GitHub verwenden, werden Aktualisierungen der README.md automatisch auf der Repository-Homepage gerendert – es gibt auch Unterstützung für die automatische Rendering der Sphinx-Dokumentation – viele/die meisten Quellcode-Repositorys unterstützen diese Funktionalität.

Warum Python

Python eignet sich dafür besonders gut, weil:

  • Das reichhaltige Ökosystem umfasst Tools wie:
    • Requests-html , die das Sammeln der Daten einfach machen. Möglicherweise benötigen Sie einen separaten Filter, um die Daten von jedem Kanal zu sammeln.
    • Die Werkzeugkette der Sphinx -Dokumentation
    • Viele Tools zur Erstellung von Diagrammen
  • Sie können Python-Skripte einfach so einstellen, dass sie als Dienst und/oder mit Commit-Hooks ausgeführt werden
  • Sie müssen sich keine Gedanken darüber machen, auf welcher Plattform Ihr Skript ausgeführt wird
  • Sie könnten für diese Aufgabe einen Cloud-Dienst verwenden, und die meisten haben Python als wichtige Tooloption.
  • Dies wäre ein gutes erstes Projekt für jemanden, der Python lernt.

Zusätzliche Punkte

  • Bei den meisten Repositories und Versionskontrollsystemen können Sie auswählen, welche Autoren welche Dateien bearbeiten dürfen.
  • Viele/die meisten präsentieren eine "Startseite", die automatisch aktualisiert wird, wenn Änderungen an README.md oder einer anderen Datei festgeschrieben werden.
  • ReadTheDocs- Integration ist verfügbar
  • Auch lesenswert ist diese