CalStats
Ruft Daten aus Ihrem Google- oder Apple-Kalender ab und erstellt einige Statistiken, die für Sie (oder Ihren Chef ;)) nützlich sein könnten. Meine Statistiken laufen live unter https://mickekring.se/stats/time2/ (auf Schwedisch)
Das Bild oben zeigt das vordere Ende
Was ist das? Und was macht es?
Ich plane alles, was mit der Arbeit zu tun hat, in meinem Kalender und benenne die Kalenderereignisse mit Präfixen wie; „ ADM: Zeitplan“ (ADM = Administration), „ WEB: Blogs“ und so weiter. Das Skript gruppiert dann alle „ADM:“, „WEB:“ und andere Kategorien (im Skript fest codiert), berechnet die Zeit und dividiert sie durch die Gesamtzeit, um einige Prozentsätze und andere für mich nützliche Dinge zu erhalten. Einfach ausgedrückt ist es für mich ein Werkzeug, um sicherzustellen, dass ich meine Zeit gut verbringe.
Ich habe auch einen zweiten Kalender, in den ich meine 8 Stunden pro Tag eintrage, damit mein Skript vergleichen kann, wie viel ich hätte arbeiten sollen und wie viel ich wirklich gearbeitet habe.
Das Python-Skript läuft auf einem Raspberry Pi und ruft alle 10 Minuten Statistiken ab, aktualisiert diese und lädt die PHP-Dateien per SFTP auf meinen Webserver hoch.
Haftungsausschluss
Ich bin kein Programmierer . Ich mag es einfach, Dinge zu erschaffen. :) :)
Gebaut mit
- Python 3.x https://www.python.org/
- Bootstrap 5.x https://getbootstrap.com/
- Diagramm JS https://www.chartjs.org/
- Schriftart Awesome https://fontawesome.com/
Möchten Sie es selbst ausführen?
Dieses Skript ist irgendwie auf meine Bedürfnisse zugeschnitten. Wenn Sie es also ausführen möchten, müssen Sie ein paar Dinge ändern. Hauptsächlich Namen der Kategorien, die Sie verfolgen möchten, und in diesem Fall einige Bedingungen. Da ich kein Programmierer bin, konnte ich (noch) nicht alle Dinge, die Sie ändern müssen, als konstante Variablen oder Listen festlegen, aber ich werde mein Bestes tun, um Sie anzuleiten.
WAS SIE BRAUCHEN
- Ein Gerät, auf dem Python 3.x ausgeführt werden kann
- Ein Webserver mit PHP-Unterstützung
- Ein SFTP-Server (auf Ihrem Webserver), den das Skript zum Hochladen von Dateien auf Ihren Webserver verwendet
- Ein öffentlicher Google-Kalender (oder Apple-Kalender)
AUFSTELLEN
- Laden Sie alle Dateien in einen Ordner Ihrer Wahl herunter
- Öffnen Sie credentials.yml und ändern Sie die SFTP-Kontoinformationen und Pfade – sowohl die lokale URL (wo Sie das Skript ausführen) als auch die Remote-URL (auf Ihrem Webserver) sowie die URL zu Ihrer öffentlichen Kalender-ICS-Datei
- Öffnen Sie index.php und bearbeiten Sie den Titel und die Überschriften, die Sie in Ihrem Frontend anzeigen möchten
- Laden Sie index.php und style.css auf Ihren Webserver hoch
- Öffnen Sie main.py und ändern Sie Folgendes:
- Zeile 36 | Gebietsschema
- Zeile 41 | Startdatum, ab dem das Skript mit dem Track beginnen soll
- Zeile 100-123 | Geben Sie Ihre eigenen Kategoriepräfixe und Kategorienamen ein, die Sie verfolgen möchten
- Zeile 129 | Schließen Sie Kalenderereignisse wie Mittagessen und Unbekannt aus
- Zeile 208 | Der Name des Kalenderereignisses im zweiten Kalender (Ihre „offiziellen“ Arbeitszeiten).
- Zeile 307 | Ändern Sie die Kategorien, die Sie verfolgen möchten
- Zeile 623 | Ändern Sie die Kategorien, für die Sie 7-Wochen-Statistiken benötigen, und ändern/erstellen Sie Listennamen
- Linie 789 - 813 | Wechseln Sie zu Ihren Kategorien
- Linie 827 - 840 | Wechseln Sie zu Ihren Kategorien
- Linie 889 - 912 | Wechseln Sie zu Ihren Kategorien
- Linie 632 - 640 | Wechseln Sie zu Ihren Kategorien
- Zeile 1027 | Ändern Sie in Sekunden, wie oft die Hauptschleife ausgeführt werden soll
- Vielleicht habe ich ein oder zwei Dinge übersehen... Entschuldigung im Voraus...
PYTHON-MODULE INSTALLIEREN
- iCalevents – pip3 installiert icalevents
- Pytz – pip3 installiert Pytz
- Paramiko - pip3 installiert Paramiko
- YAML – pip3 installiert pyyaml
- TinyDB – pip3 installiert tinydb
- Datetime – pip3 installiert datetime
- Pandas - pip3 Pandas installieren
LAUFEN
Versionsgeschichte
- 1.0 Einige Dateien wurden umbenannt und viele Aufblähungen beseitigt.
- 0.6.1 Download-Link für JSON-Datenbank im von calstats.py generierten Frontend hinzugefügt
- 0.6 Das Hochladen der JSON-Datenbankdatei auf den Webserver wurde hinzugefügt und ein Fehler behoben, der auftritt, wenn die Gesamtarbeitszeit Null beträgt (z. B. im Urlaub), was zu einer Nullteilung führt.
- 0,5 Daten für die X-Achse der Diagramme für die 7 Wochen hinzugefügt. Kleinere Codebereinigung.
- 0,4 Diagramm für geleistete Arbeitsstunden der letzten 7 Wochen hinzugefügt.
- 0,2 Erster Upload. Prozentsätze pro Kategorie seit einem von Ihnen gewählten Datum. Prozentsätze pro Kategorie, letzte 7 Wochen.
Credits
Die Kalenderimportfunktion im Skript basiert auf der Arbeit von Jeinarsson https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7