Willkommen zurück bei ": Code Against the Clock :!" – der Blogserie, in der ich alltägliche Aufgaben in schlanke, zeitsparende Wunderwerke verwandle. Heute freue ich mich, Ihnen ein Projekt vorzustellen, bei dem ich eine sich wiederholende, manuelle Aufgabe in ein automatisiertes Kraftpaket verwandelt habe. Möchten Sie sehen, wie Sie Zeit sparen und Ihren Arbeitsabläufen einen Hauch von Spannung verleihen können? Lasst uns eintauchen!
Wie viele von euch wissen, arbeite ich als Full-Stack-Entwickler bei einem Startup. Wir verwenden Keka für die Verwaltung der Mitarbeiteranwesenheit, was das manuelle Ein- und Ausstempeln jeden Tag beim Betreten und Verlassen des Büros erfordert. Das Problem? Manchmal vergesse ich, mich ein- oder auszustempeln, was dazu führt, dass meine Anwesenheit als nicht anwesend markiert wird. Das bedeutet, dass ich in Keka ein Ticket erstellen muss, um es zu korrigieren – eine mühsame Aufgabe, die ich automatisieren wollte.
Zuerst habe ich nach einer von Keka für diesen Zweck bereitgestellten API gesucht, aber leider wird keine angeboten. Kein Problem! Als Entwickler habe ich mich der Herausforderung gestellt, dies selbst zu lösen. Ich habe zunächst die Website von Keka analysiert, um zu verstehen, wie sie funktioniert. Mithilfe der Registerkarte „Netzwerk“ in den Entwicklertools meines Browsers habe ich den Endpunkt identifiziert, der beim Ein- und Ausstempeln ausgelöst wurde.
Ich habe ein einfaches Node.js-Skript mit fetch geschrieben, um Anfragen mit einem Bearer-Token im Header zu stellen, und es hat funktioniert. Allerdings gab es einen Haken: Der Bearer-Token verfiel täglich. Ich habe herausgefunden, dass die Website das Aktualisierungstoken im lokalen Speicher aufbewahrt, das verwendet wurde, um ein neues Bearer-Token zu erhalten, wenn das alte abgelaufen ist.
Nachdem ich mein Skript an dieses Problem angepasst hatte, stand ich vor einigen weiteren Herausforderungen:
Um diese Probleme anzugehen, habe ich die folgenden Lösungen entwickelt:
[CRON Job (Every 15 minutes)] ---> [Node.js Script] \-------> [Check Time] ---> [Clock In/Out] \-------> [Notify (Slack)]
Sobald alles eingerichtet war, habe ich einen Cron-Job geplant, um mein Skript alle 15 Minuten auszuführen. Dieses Setup funktionierte ein Jahr lang einwandfrei und automatisierte mein Anwesenheitsmanagement effizient.
Nach einem Jahr beschloss ich, die Lösung zu verbessern, indem ich das Skript in eine Chrome-Erweiterung konvertierte. Dies erleichterte den Austausch mit Kollegen. So funktioniert die Erweiterung:
[CRON Job (Every 15 minutes)] ---> [Node.js Script] \-------> [Check Time] ---> [Clock In/Out] \-------> [Notify (Slack)]
Dieser optimierte Ansatz machte die Verwaltung meiner Anwesenheit noch einfacher!
Hinweis:Wenn Sie am Quellcode interessiert sind, können Sie sich gerne an mich wenden!
Haben Sie jemals eine Aufgabe mithilfe von Code automatisiert? Teilen Sie Ihre Erfahrungen und Tipps in den Kommentaren unten! Welche Aufgaben würden Sie gerne automatisieren? Lasst uns diskutieren!
Vielen Dank, dass Sie mich auf dieser Automatisierungsreise begleitet haben. Vergessen Sie nicht, meinen Blog zu abonnieren, um weitere Tipps und Updates zu erhalten. Viel Spaß beim Codieren!
Das obige ist der detaillierte Inhalt vonCode gegen die Uhr: Automatisierung des Anwesenheitsmanagements. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!