<<<<-- ربات فیش حقوق -->>>>
یک ربات برای پلتفرم "بله" و قابل استفاده برای "تلگرام" جهت پردازش اطلاعات کاربران و ارسال فیش حقوقی کارکنان شرکت.
<--> کارکرد کلی ربات <-->
------------------------------
این ربات در زمان شروع (start) شماره تلفن کاربر را در دیتابیس خود چک میکند و در صورتی که شماره تلفن در لیست کارکنان شرکت وجود نداشته باشد، دسترسی کاربر به ربات مسدود میشود.
در صورت تایید شماره تلفن، کاربر به منوی اصلی هدایت میشود.
در صورت درخواست فیش توسط کاربر، ربات از کاربر درخواست میکند تا کد ملی یا شماره پرسنلی خود را ارسال نماید و در صورتی که کد ملی یا شماره پرسنلی اشتباه باشد یا اطلاعات متعلق به فرد دیگری وارد شده باشد با توجه به نوع خطا، کاربر پیام مختص به آن خطا را میگیرد.
در صورت تایید تمام اطلاعات، فایل فیش به کاربر ارسال میشود.
<--> اقدامات امنیتی ربات <-->
------------------------------
کاربران و ربات از طریق کلید های شیشه ای (Inline Keyboard Button) با یکدیگر ارتباط میگیرند و به همین دلیل، برای جلوگیری از استفاده کاربران از callback های منقضی شده یا callback هایی که مربوط به آن مرحله ربات نیستند، این ربات به گونه ای طراحی شده تا فقط یک پیام حاوی دکمه (منو) در صفحه چت باشد و در صورت استارت مجدد ربات توسط کاربر، منوی قبلی ربات بسته میشود و منو جدید برای کاربر ارسال میگردد تا از بروز باگ یا مشکل های امنیتی جلوگیری شود.
همچنین برای امنیت بهتر ربات و جلوگیری از استفاده از callback های قدیمی و منقضی شده، منوی ربات بعد از مدت مشخصی (تعیین زمان توسط کارفرما) به صورت خودکار بسته میشود تا امنیت ربات و اطلاعات کارکنان به بهترین شکل ممکن حفظ شود.
*به دلیل وجود اطلاعات حساس، از تمام توان استفاده شده تا ربات بالاترین امنیت را داشته باشد*
<--> متد های ارسال فایل <-->
------------------------------
در خصوص نحوه ارسال فایل پی دی اف برای کاربران، با توجه به اینکه سرور های بله در زمان پیک مصرف دچار اختلال میشوند و احتمال شکست در آپلود فایل وجود دارد، یک متد دوم وجود دارد که در زمان شکست خوردن متد اول، از این روش استفاده میشود تا فایل ها به کاربران با موفقیت ارسال شود.
<--> زیبایی و تجربه کاربری <-->
------------------------------
در این ربات، سیستمی طراحی شد تا تمامی پیام های نامعتبر کاربران را برای خلوت تر بودن و انتقال حس بهتری به کاربر از صفحه چت حذف شود.
<--> اجرا، لاگ گیری و مدیریت خطا <-->
------------------------------
اگر حین اجرا، ربات دچار مشکلاتی از قبیل تداخل و قطعی اینترنت سرور شد،ربات آن ارور را در فایل های لاگ برای بررسی ادمین ذخیره میکند و ربات به کار خود ادامه میدهد تا نیاز به وارد شدن به سرور و اجرا کردن دستی فایل ها نباشد.
همچنین سیستم حرفه ای لاگ گیری این ربات به ما این کمک را میکند تا در زمان بروز انواع مشکلات (مانند:خرابی اطلاعات دیتابیس، تداخل و قطعی اینترنت و سایر خطاهای احتمالی) ادمین بتواند به آسانی مشکل احتمالی را تشخیص دهد.
<--> سایر موارد <-->
------------------------------
یک ربات هم (ربات ادمین) برای این پروژه در نظر گرفته شد که فقط ادمین مشخص شده بتواند با استفاده از آن فایل های پی دی اف را بصورت آنلاین آپدیت کند و یا لیست فیش های موجود را ریست کند.
و در کنار اینها، به دلیل اینکه فیش های همه اشخاص در یک فایل پی دی اف واحد وجود داشت، یک اسکریپت پایتونی دیگر نیز برای جداسازی هر فیش از فیش های دیگر و تشخیص شناسه آنها برای کارفرما جهت تسهیل عملیات در نظر گرفته شد.
همچنین تمام تنظیمات مهم ربات (مانند : توکن ربات ها،آیدی ادمین،مدت باز بودن منو،آدرس فایل های دیتا و پسونـ...) در یک فایل کانفیگ در کنار فایل های اصلی ربات قرار گرفت تا باعث انعطاف پذیری بیشتر ربات و بی نیاز بودن از برنامه نویس برای تغییر تنظیمات مهم در این پروژه باشد.
<--> Tech Stack <-->
------------------------------
Python+
python-telegram-bot+
sqlite3+
pandas+
pypdf+
logging+