برنامه نویسی

کد در مقابل ساعت: خودکارسازی مدیریت حضور و غیاب

Summarize this content to 400 words in Persian Lang
خوش آمدید به “: کد در مقابل ساعت :!” – مجموعه وبلاگی که در آن کارهای روزمره را به شگفتی های ساده و صرفه جویی در زمان تبدیل می کنم. امروز، برای به اشتراک گذاشتن پروژه ای که در آن یک کار تکراری و دستی را به یک نیروگاه خودکار تبدیل کردم، هیجان زده هستم. آماده‌اید ببینید چگونه می‌توانید در زمان صرفه‌جویی کنید و هیجانی را به گردش کار خود اضافه کنید؟ بیایید شیرجه بزنیم!

داستان پس زمینه

همانطور که بسیاری از شما می دانید، من به عنوان یک توسعه دهنده فول استک در یک استارت آپ کار می کنم. ما از Keka برای مدیریت حضور و غیاب کارمندان استفاده می کنیم، که نیاز به ساعت ورود و خروج دستی هر روز هنگام ورود و خروج از دفتر دارد. موضوع؟ گاهی اوقات فراموش می‌کنم که ساعت را به داخل یا خارج کنم، که باعث می‌شود حضورم به‌عنوان عدم حضور علامت‌گذاری شود. این بدان معناست که من باید برای اصلاح آن یک بلیط در Keka تهیه کنم – یک کار خسته کننده که می خواستم آن را خودکار کنم.

شکست مشکل

در ابتدا، من به دنبال API ارائه شده توسط Keka برای این منظور بودم، اما متأسفانه، آنها ارائه نمی دهند. مشکلی نیست! به عنوان یک توسعه دهنده، من خودم چالش حل این مشکل را بر عهده گرفتم. من با تجزیه و تحلیل وب سایت Keka شروع کردم تا بفهمم چگونه کار می کند. با استفاده از برگه شبکه در ابزارهای توسعه دهنده مرورگرم، نقطه پایانی را شناسایی کردم که هنگام ورود و خروج ساعت فعال می شود.

من با استفاده از یک اسکریپت ساده Node.js نوشتم fetch برای درخواست با توکن حامل در هدر، و کار کرد. با این حال، یک مشکل وجود داشت: نماد حامل هر روز منقضی می شد. متوجه شدم که وب‌سایت توکن تازه‌سازی را در فضای ذخیره‌سازی محلی حفظ می‌کند، که برای به دست آوردن یک توکن حامل جدید پس از انقضای نماد قدیمی استفاده می‌شد.

پس از انطباق اسکریپت برای مدیریت این موضوع، با چند چالش دیگر مواجه شدم:

وقتی من وارد دفتر شدم، فیلمنامه از کجا می‌دانست؟
چگونه تعیین می کند که چه زمانی باید ساعت خارج شود؟
چگونه می توانم از هر گونه خطا مطلع شوم و بتوانم به صورت دستی ساعت را وارد کنم؟

راه حل

برای رفع این مشکلات راه حل های زیر را ابداع کردم:

تشخیص ورودی دفتر: من اسکریپت را با ساعات اداری مشخصی پیکربندی کردم. پس از رسیدن به این ساعت‌ها، اسکریپت شروع به تلاش برای نمایش ساعت می‌کند.

زمان بندی کلاک اوت: من یک مدت زمان قابل تنظیم در اسکریپت تعیین کردم که چند ساعت پس از ساعت در آن باید به طور خودکار کلاک شود.

اعلان خطا و ساعت ورود دستی: من اعلان های Slack را در اسکریپت ادغام کردم. به این ترتیب، هشدارهایی را برای ورود و خروج موفقیت آمیز ساعت و همچنین خطاها دریافت می کردم.

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

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

وقتی همه چیز سر جای خودش بود، برنامه‌ریزی کردم که فیلمنامه‌ام را هر 15 دقیقه اجرا کنم. این راه‌اندازی به مدت یک سال بی‌عیب و نقص کار کرد و مدیریت حضور و غیاب من را به طور موثر خودکار کرد.

انتقال به یک برنامه افزودنی Chrome

پس از یک سال، تصمیم گرفتم راه حل را با تبدیل اسکریپت به یک افزونه کروم بهبود بخشم. این کار اشتراک گذاری با همکاران را آسان تر کرد. در اینجا نحوه کار افزونه آمده است:

راه اندازی: پس از نصب برنامه افزودنی، از شما خواسته می‌شود که زمان ورود و خروج دفتر خود را وارد کرده و مدت زمانی را که می‌خواهید پس از آن ساعت کار کنید را مشخص کنید.

مکانیسم هشدار: برنامه افزودنی یک زنگ هشدار Chrome را هر 15 دقیقه تنظیم می کند. وقتی به زمان ساعت ورود رسید، وب سایت Keka را با یک پارامتر پرس و جو باز می کند (?CLK_IN=true).

اسکریپت محتوا: برنامه افزودنی شامل یک اسکریپت محتوا است که پارامترهای پرس و جو را تجزیه می کند و فرآیند clock-in یا clock-out را آغاز می کند. پس از موفقیت، یک پیام موفقیت آمیز به سرویس پس‌زمینه ارسال می‌کند، که زمان ورود به ساعت را ثبت می‌کند و بر اساس آن زمان‌بندی را برنامه‌ریزی می‌کند.

[User Setup (Times & Duration)] —> [Chrome Extension] | \–> [Alarm Mechanism] | \–> [Content Script] \–> [Keka Website]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این رویکرد ساده مدیریت حضور من را آسان تر کرد!

توجه: اگر به کد منبع علاقه دارید، در صورت تمایل با من تماس بگیرید!

نوبت شماست!

آیا تا به حال یک کار را با استفاده از کد خودکار کرده اید؟ تجربیات و نکات خود را در نظرات زیر به اشتراک بگذارید! دوست دارید چه کارهایی را به صورت خودکار انجام دهید؟ بحث کنیم!

از اینکه در این سفر اتوماسیون به من پیوستید متشکریم. فراموش نکنید که برای راهنمایی ها و به روز رسانی های بیشتر در وبلاگ من مشترک شوید. کد نویسی مبارک!

خوش آمدید به “: کد در مقابل ساعت :!” – مجموعه وبلاگی که در آن کارهای روزمره را به شگفتی های ساده و صرفه جویی در زمان تبدیل می کنم. امروز، برای به اشتراک گذاشتن پروژه ای که در آن یک کار تکراری و دستی را به یک نیروگاه خودکار تبدیل کردم، هیجان زده هستم. آماده‌اید ببینید چگونه می‌توانید در زمان صرفه‌جویی کنید و هیجانی را به گردش کار خود اضافه کنید؟ بیایید شیرجه بزنیم!

داستان پس زمینه

همانطور که بسیاری از شما می دانید، من به عنوان یک توسعه دهنده فول استک در یک استارت آپ کار می کنم. ما از Keka برای مدیریت حضور و غیاب کارمندان استفاده می کنیم، که نیاز به ساعت ورود و خروج دستی هر روز هنگام ورود و خروج از دفتر دارد. موضوع؟ گاهی اوقات فراموش می‌کنم که ساعت را به داخل یا خارج کنم، که باعث می‌شود حضورم به‌عنوان عدم حضور علامت‌گذاری شود. این بدان معناست که من باید برای اصلاح آن یک بلیط در Keka تهیه کنم – یک کار خسته کننده که می خواستم آن را خودکار کنم.

شکست مشکل

در ابتدا، من به دنبال API ارائه شده توسط Keka برای این منظور بودم، اما متأسفانه، آنها ارائه نمی دهند. مشکلی نیست! به عنوان یک توسعه دهنده، من خودم چالش حل این مشکل را بر عهده گرفتم. من با تجزیه و تحلیل وب سایت Keka شروع کردم تا بفهمم چگونه کار می کند. با استفاده از برگه شبکه در ابزارهای توسعه دهنده مرورگرم، نقطه پایانی را شناسایی کردم که هنگام ورود و خروج ساعت فعال می شود.

من با استفاده از یک اسکریپت ساده Node.js نوشتم fetch برای درخواست با توکن حامل در هدر، و کار کرد. با این حال، یک مشکل وجود داشت: نماد حامل هر روز منقضی می شد. متوجه شدم که وب‌سایت توکن تازه‌سازی را در فضای ذخیره‌سازی محلی حفظ می‌کند، که برای به دست آوردن یک توکن حامل جدید پس از انقضای نماد قدیمی استفاده می‌شد.

پس از انطباق اسکریپت برای مدیریت این موضوع، با چند چالش دیگر مواجه شدم:

  • وقتی من وارد دفتر شدم، فیلمنامه از کجا می‌دانست؟
  • چگونه تعیین می کند که چه زمانی باید ساعت خارج شود؟
  • چگونه می توانم از هر گونه خطا مطلع شوم و بتوانم به صورت دستی ساعت را وارد کنم؟

راه حل

برای رفع این مشکلات راه حل های زیر را ابداع کردم:

  1. تشخیص ورودی دفتر: من اسکریپت را با ساعات اداری مشخصی پیکربندی کردم. پس از رسیدن به این ساعت‌ها، اسکریپت شروع به تلاش برای نمایش ساعت می‌کند.
  2. زمان بندی کلاک اوت: من یک مدت زمان قابل تنظیم در اسکریپت تعیین کردم که چند ساعت پس از ساعت در آن باید به طور خودکار کلاک شود.
  3. اعلان خطا و ساعت ورود دستی: من اعلان های Slack را در اسکریپت ادغام کردم. به این ترتیب، هشدارهایی را برای ورود و خروج موفقیت آمیز ساعت و همچنین خطاها دریافت می کردم.
[CRON Job (Every 15 minutes)] ---> [Node.js Script]
                         \-------> [Check Time] ---> [Clock In/Out]
                         \-------> [Notify (Slack)]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

وقتی همه چیز سر جای خودش بود، برنامه‌ریزی کردم که فیلمنامه‌ام را هر 15 دقیقه اجرا کنم. این راه‌اندازی به مدت یک سال بی‌عیب و نقص کار کرد و مدیریت حضور و غیاب من را به طور موثر خودکار کرد.

انتقال به یک برنامه افزودنی Chrome

پس از یک سال، تصمیم گرفتم راه حل را با تبدیل اسکریپت به یک افزونه کروم بهبود بخشم. این کار اشتراک گذاری با همکاران را آسان تر کرد. در اینجا نحوه کار افزونه آمده است:

  1. راه اندازی: پس از نصب برنامه افزودنی، از شما خواسته می‌شود که زمان ورود و خروج دفتر خود را وارد کرده و مدت زمانی را که می‌خواهید پس از آن ساعت کار کنید را مشخص کنید.
  2. مکانیسم هشدار: برنامه افزودنی یک زنگ هشدار Chrome را هر 15 دقیقه تنظیم می کند. وقتی به زمان ساعت ورود رسید، وب سایت Keka را با یک پارامتر پرس و جو باز می کند (?CLK_IN=true).
  3. اسکریپت محتوا: برنامه افزودنی شامل یک اسکریپت محتوا است که پارامترهای پرس و جو را تجزیه می کند و فرآیند clock-in یا clock-out را آغاز می کند. پس از موفقیت، یک پیام موفقیت آمیز به سرویس پس‌زمینه ارسال می‌کند، که زمان ورود به ساعت را ثبت می‌کند و بر اساس آن زمان‌بندی را برنامه‌ریزی می‌کند.

توضیحات تصویر

[User Setup (Times & Duration)] ---> [Chrome Extension]
                                    |   \--> [Alarm Mechanism]
                                    |   \--> [Content Script]
                                    \--> [Keka Website]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این رویکرد ساده مدیریت حضور من را آسان تر کرد!

توجه: اگر به کد منبع علاقه دارید، در صورت تمایل با من تماس بگیرید!

نوبت شماست!

آیا تا به حال یک کار را با استفاده از کد خودکار کرده اید؟ تجربیات و نکات خود را در نظرات زیر به اشتراک بگذارید! دوست دارید چه کارهایی را به صورت خودکار انجام دهید؟ بحث کنیم!

از اینکه در این سفر اتوماسیون به من پیوستید متشکریم. فراموش نکنید که برای راهنمایی ها و به روز رسانی های بیشتر در وبلاگ من مشترک شوید. کد نویسی مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا