Maison > interface Web > js tutoriel > Coder contre la montre : automatisation de la gestion des présences

Coder contre la montre : automatisation de la gestion des présences

Linda Hamilton
Libérer: 2024-12-21 12:04:10
original
321 Les gens l'ont consulté

Bienvenue sur  : Code Against the Clock :!" – la série de blogs dans laquelle je transforme les tâches banales en merveilles rationalisées et permettant de gagner du temps. Aujourd'hui, je suis ravi de partager un projet dans lequel j'ai transformé une tâche manuelle répétitive en une centrale automatisée. Prêt à découvrir comment vous pouvez gagner du temps et ajouter une touche d’enthousiasme à votre flux de travail ? Allons-y !

La trame de fond

Comme beaucoup d'entre vous le savent, je travaille en tant que développeur full-stack dans une startup. Nous utilisons Keka pour gérer la présence des employés, ce qui nécessite de pointer manuellement l'entrée et la sortie chaque jour à l'entrée et à la sortie du bureau. Le problème ? Parfois, j'oublie de pointer à l'arrivée ou au départ, ce qui fait que ma présence est marquée comme non présente. Cela signifie que je dois créer un ticket dans Keka pour le corriger – une tâche fastidieuse que je souhaitais automatiser.

La répartition du problème

Au départ, je cherchais une API fournie par Keka à cet effet, mais malheureusement, ils n'en proposent pas. Aucun problème! En tant que développeur, j'ai relevé le défi de résoudre ce problème moi-même. J’ai commencé par analyser le site de Keka pour comprendre son fonctionnement. À l’aide de l’onglet réseau dans les outils de développement de mon navigateur, j’ai identifié le point de terminaison déclenché lors du pointage d’entrée et de sortie.

J'ai écrit un simple script Node.js utilisant fetch pour faire des requêtes avec un jeton Bearer dans l'en-tête, et cela a fonctionné. Cependant, il y avait un hic : le jeton Bearer expirait quotidiennement. J'ai découvert que le site Web conservait le jeton d'actualisation dans le stockage local, qui était utilisé pour obtenir un nouveau jeton Bearer lorsque l'ancien expirait.

Après avoir adapté mon script pour gérer cela, j'ai été confronté à quelques défis supplémentaires :

  • Comment le script saurait-il quand je suis entré dans le bureau ?
  • Comment déterminerait-il l'heure de départ ?
  • Comment pourrais-je être informé de toute erreur et pouvoir pointer manuellement ?

La solution

Pour résoudre ces problèmes, j'ai imaginé les solutions suivantes :

  1. Détection des entrées au bureau : J'ai configuré le script avec des heures de bureau spécifiques. Le script commencerait alors à tenter de pointer lorsque ces heures seraient atteintes.
  2. Clock-Out Timing : J'ai défini une durée configurable dans le script pendant combien d'heures après le pointage, il devrait automatiquement pointer.
  3. Notification d'erreur et pointage manuel : J'ai intégré les notifications Slack dans le script. De cette façon, je recevrais des alertes pour les entrées et sorties réussies, ainsi que pour les erreurs.
[CRON Job (Every 15 minutes)] ---> [Node.js Script]
                         \-------> [Check Time] ---> [Clock In/Out]
                         \-------> [Notify (Slack)]
Copier après la connexion
Copier après la connexion

Une fois que tout était en place, j'ai programmé une tâche cron pour exécuter mon script toutes les 15 minutes. Cette configuration a fonctionné parfaitement pendant un an, automatisant efficacement ma gestion des présences.

Transition vers une extension Chrome

Après un an, j'ai décidé d'améliorer la solution en convertissant le script en extension Chrome. Cela a facilité le partage avec les collègues. Voici comment fonctionne l'extension :

  1. Configuration : Après avoir installé l'extension, vous êtes invité à saisir les heures d'entrée et de sortie de votre bureau et à spécifier la durée après laquelle vous souhaitez sortir.
  2. Mécanisme d'alarme : L'extension définit une alarme Chrome qui s'exécute toutes les 15 minutes. Lorsque l'heure de pointage est atteinte, il ouvre le site Keka avec un paramètre de requête (?CLK_IN=true).
  3. Script de contenu : L'extension comprend un script de contenu qui analyse les paramètres de requête et déclenche le processus d'arrivée ou de départ. Une fois réussi, il envoie un message de réussite au service d'arrière-plan, qui enregistre l'heure d'arrivée et planifie l'heure de sortie en conséquence.

Code Against the Clock : Automating Attendance Management

[CRON Job (Every 15 minutes)] ---> [Node.js Script]
                         \-------> [Check Time] ---> [Clock In/Out]
                         \-------> [Notify (Slack)]
Copier après la connexion
Copier après la connexion

Cette approche simplifiée a rendu la gestion de ma présence encore plus facile !

Remarque : Si le code source vous intéresse, n'hésitez pas à me contacter !

À votre tour !

Avez-vous déjà automatisé une tâche à l’aide de code ? Partagez vos expériences et conseils dans les commentaires ci-dessous ! Quelles tâches souhaiteriez-vous pouvoir automatiser ? Discutons-en !

Merci de m'avoir rejoint dans ce voyage d'automatisation. N'oubliez pas de vous abonner à mon blog pour plus de conseils et de mises à jour. Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal