عنوان پروژه
پیادهسازی Windows Service اخطار اعتبار پایین در سامانه پیامکی (C# + MS SQL Server)
________________________________________
معرفی کوتاه
ما دارای یک سامانه ارسال پیامک مبتنی بر زبان برنامهنویسی C# و پایگاه داده MS SQL Server هستیم. هدف این پروژه، توسعه یک Windows Service زمانبندیشونده است که هر 30 دقیقه، اعتبار (موجودی) کاربران را بررسی کرده و در صورت پایینتر بودن از حداقل اعتبار تعیینشده، پیامک اخطار به شمارههای مشخصشده ارسال نماید.
هزینه هر پیامک باید بر اساس تعرفه اختصاصی همان کاربر محاسبه و از اعتبار پنل او کسر شود. این ماژول باید از داخل سامانه برای هر کاربر بهصورت جداگانه فعال یا غیرفعال باشد (پیشفرض: غیرفعال).
________________________________________
اهداف و سناریوی کاری
1. پردازش زمانبندیشده (Scheduler)
• توسعه یک Windows Service (بر پایه Worker Service .NET Framework 4) که هر 30 دقیقه اجرا شود.
• دریافت لیست کاربران فعال برای این ماژول از دیتابیس.
• بررسی اعتبار کاربران و مدیریت صف ارسال پیامک اخطار در صورت پایینتر بودن از حداقل اعتبار.
• نمایش وضعیت سرویس (فعال/متوقف) در پنل ادمین جهت مانیتورینگ.
• قابلیت تنظیم شماره ارسالکننده پیامک و بازه زمانی اجرای سرویس از طریق فایلهای پیکربندی (Config).
• نصب، تست و راهاندازی سرویس بر روی دو سرور مجزا.
________________________________________
قوانین ارسال پیامک اخطار
• اگر اعتبار کاربر کمتر از حداقل تعیینشده باشد، روزانه تنها یک پیامک اخطار ارسال شود.
• روند اخطار تا حداکثر 3 روز متوالی ادامه یابد، در صورتی که کاربر هنوز اعتبار خود را افزایش نداده باشد.
• جلوگیری از ارسالهای تکراری: در طول یک روز، تنها یک پیامک اخطار بابت کمبود اعتبار ارسال میشود.
• قاعده خاص: اگر در یک روز وضعیت بهصورت «کمبود اعتبار → شارژ → مجدد کمبود» باشد، ارسال دوباره همان روز مجاز است.
________________________________________
مدیریت شمارههای دریافتکننده اخطار
• شماره یا شمارههای مقصد اخطار، از طریق ماژول تنظیمات داخل سامانه تعریف میشوند.
• تنها شمارههایی که قبلاً احراز هویت (Verify) شدهاند، قابل انتخاب هستند.
• امکان ویرایش، حذف، و مشاهده لیست شمارهها در رابط مدیریتی فراهم است.
• در زمان ارسال، سرویس این شمارهها را از جدول تنظیمات دریافت خواهد کرد.
________________________________________
محاسبه هزینه و کسر اعتبار
• هر کاربر ممکن است واحد هزینهای متفاوت داشته باشد (بر اساس تعداد پیامک یا مبلغ ریالی).
• قبل از ارسال پیامک، سرویس باید از کفایت اعتبار اطمینان حاصل کند.
• پس از ارسال موفق، هزینه باید بر اساس تعرفه اختصاصی کاربر محاسبه و از پنل او کسر شود.
• در صورت ناکافی بودن اعتبار، پیامک ارسال نمیشود و دلیل آن لاگ میگردد.
________________________________________
کنترل وضعیت ماژول برای هر کاربر
• این ماژول بهصورت پیشفرض برای همه کاربران غیرفعال است.
• هر کاربر میتواند از داخل پنل:
o ماژول را فعال یا غیرفعال کند.
o حداقل اعتبار خود را تنظیم یا ویرایش نماید.
o شمارههای دریافتکننده اخطار را مدیریت کند.
________________________________________
محدوده اجرا (Scope)
• توسعه Windows Service سازگار با Windows Server 2008 تا نسخههای جدیدتر.
• طراحی و ایجاد جداول و Stored Procedureها در پایگاه داده SQL Server.
• توسعه ماژول تنظیمات در سامانه شامل:
o مدیریت فعالسازی ماژول برای کاربران
o تنظیم حداقل اعتبار
o مدیریت شمارههای دریافتکننده اخطار
• استفاده از API موجود سامانه پیامک برای ارسال پیامک، مدیریت خطاها، و دریافت وضعیت ارسال.
• پیادهسازی کامل سیستم لاگینگ برای تمامی رویدادها.
• ایجاد منطق پیشگیری از ارسالهای تکراری از طریق جدول تاریخچه ارسال.
• پیادهسازی دقیق قوانین ارسال:
o محدودیت ارسال در هر روز
o قاعده پیگیری تا 3 روز
o حالت «Low → Top-up → Low» در یک روز
________________________________________
نکات امنیتی و اجرایی
• انجام تستهای جامع قبل از فعالسازی نهایی الزامی است.
• تنها دسترسی ریموت به سرور جهت تست و اجرا ارائه خواهد شد؛ دسترسی مستقیم به سورسکد پروژه وجود ندارد.
• اخذ قرارداد محرمانگی اطلاعات (NDA) و عدم استفاده از دادهها الزامی است.
• رعایت الزامات امنیتی شامل:
SQL Injection Test
Concurrency & Race Condition Test
این آگهی از وبسایت پونیشا پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت پونیشا برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.