>웹 프론트엔드 >JS 튜토리얼 >Code Against the Clock : 출석 관리 자동화

Code Against the Clock : 출석 관리 자동화

Linda Hamilton
Linda Hamilton원래의
2024-12-21 12:04:10323검색

": Code Against the Clock :!"에 다시 오신 것을 환영합니다. 블로그 시리즈는 일상적인 작업을 간소화되고 시간을 절약해 주는 경이로운 작업으로 바꿔줍니다. 오늘 저는 반복적인 수동 작업을 자동화된 발전소로 전환한 프로젝트를 공유하게 되어 기쁩니다. 시간을 절약하고 작업 흐름에 흥미를 더할 수 있는 방법을 알아볼 준비가 되셨나요? 뛰어들어 보세요!

뒷이야기

아시다시피 저는 스타트업에서 풀스택 개발자로 일하고 있습니다. 우리는 사무실에 들어오고 나갈 때 매일 수동으로 출근 및 퇴근을 해야 하는 직원 출석 관리에 Keka를 사용합니다. 문제? 가끔 출근이나 퇴근을 잊어버려 출석이 부재중으로 표시되는 경우가 있습니다. 이는 이를 수정하기 위해 Keka에서 티켓을 발행해야 한다는 것을 의미합니다. 이 지루한 작업을 자동화하고 싶었습니다.

문제 분석

처음에는 Keka에서 이 목적으로 제공하는 API를 찾았지만 안타깝게도 Keka에서는 제공하지 않습니다. 괜찮아요! 저는 개발자로서 이 문제를 스스로 해결해야 한다는 도전에 나섰습니다. 저는 Keka의 웹사이트가 어떻게 작동하는지 이해하기 위해 분석부터 시작했습니다. 브라우저 개발자 도구의 네트워크 탭을 사용하여 클럭 인/아웃 시 트리거되는 엔드포인트를 식별했습니다.

헤더에 Bearer 토큰이 있는 요청을 보내기 위해 가져오기를 사용하여 간단한 Node.js 스크립트를 작성했는데 작동했습니다. 그러나 문제가 있었습니다: Bearer 토큰은 매일 만료됩니다. 웹사이트가 로컬 저장소에 새로 고침 토큰을 보관하고 있다는 사실을 발견했습니다. 이 토큰은 이전 무기한 토큰이 만료되었을 때 새 무기명 토큰을 얻는 데 사용되었습니다.

이 문제를 처리하기 위해 스크립트를 조정한 후 몇 가지 문제에 더 직면했습니다.

  • 내가 사무실에 들어오면 대본은 어떻게 알까?
  • 퇴근 시간은 어떻게 결정되나요?
  • 오류가 있을 경우 어떻게 알림을 받고 수동으로 출근할 수 있나요?

해결책

이러한 문제를 해결하기 위해 다음과 같은 솔루션을 고안했습니다.

  1. 사무실 출입 감지: 특정 근무 시간으로 스크립트를 구성했습니다. 그런 다음 해당 시간에 도달하면 스크립트가 출근을 시도하기 시작합니다.
  2. 출근 시간: 근무 시간 이후 자동으로 퇴근할 시간을 스크립트에서 구성 가능한 기간으로 설정했습니다.
  3. 오류 알림 및 수동 클럭인: Slack 알림을 스크립트에 통합했습니다. 이렇게 하면 성공적인 출근 및 퇴근과 오류에 대한 알림을 받을 수 있습니다.
[CRON Job (Every 15 minutes)] ---> [Node.js Script]
                         \-------> [Check Time] ---> [Clock In/Out]
                         \-------> [Notify (Slack)]

모든 것이 준비되면 15분마다 스크립트를 실행하도록 크론 작업을 예약했습니다. 이 설정은 1년 동안 완벽하게 작동하여 출석 관리를 효율적으로 자동화했습니다.

Chrome 확장 프로그램으로 전환

1년 후, 저는 스크립트를 Chrome 확장 프로그램으로 변환하여 솔루션을 강화하기로 결정했습니다. 덕분에 동료들과 공유하기가 더 쉬워졌습니다. 확장 프로그램의 작동 방식은 다음과 같습니다.

  1. 설정: 확장 프로그램을 설치한 후 사무실 출입 시간과 출근 시간을 지정하라는 메시지가 표시됩니다.
  2. 알람 메커니즘: 확장 프로그램은 Chrome 알람이 15분마다 실행되도록 설정합니다. 출근 시간이 되면 쿼리 매개변수(?CLK_IN=true)로 Keka 웹사이트를 엽니다.
  3. 콘텐츠 스크립트: 확장 프로그램에는 쿼리 매개변수를 구문 분석하고 출근 또는 퇴근 프로세스를 트리거하는 콘텐츠 스크립트가 포함되어 있습니다. 성공하면 출근 시간을 기록하고 이에 따라 퇴근 일정을 예약하는 백그라운드 서비스에 성공 메시지를 보냅니다.

Code Against the Clock : Automating Attendance Management

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

이러한 간소화된 접근 방식으로 출석 관리가 더욱 쉬워졌습니다!

참고: 소스 코드에 관심이 있으시면 언제든지 저에게 연락해주세요!

당신 차례입니다!

코드를 사용하여 작업을 자동화해 본 적이 있나요? 아래 댓글로 여러분의 경험과 팁을 공유해 주세요! 어떤 작업을 자동화하고 싶나요? 토론해보자!

이 자동화 여정에 동참해 주셔서 감사합니다. 더 많은 팁과 업데이트를 보려면 내 블로그를 구독하는 것을 잊지 마세요. 즐거운 코딩하세요!

위 내용은 Code Against the Clock : 출석 관리 자동화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.