از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
سیزده روز پیش منتشر شده
تعداد بازدید: 91
کد پروژه: 604394
شرح پروژه
عنوان کامل پروژه:
سیستم دریافت و تحلیل لحظهای صندوقهای طلا و نقره (حباب طلا و نقره) با ارسال گزارش به تلگرام + API – همراه با Error Handling و Retry Log پیشرفته
به یک اسکریپت یا وبسرویس تمامبکاند (Python) نیاز دارم که به صورت دورهای (مثلاً هر ۱ ساعت) دادههای زیر را از چندین منبع مختلف دریافت کند، حباب صندوقهای طلا و نقره را محاسبه نماید، در دیتابیس ذخیره کند و در نهایت یک گزارش خلاصه به ربات تلگرام ارسال نماید. همچنین باید یک API ساده (REST) برای دسترسی به دادههای ذخیرهشده ارائه دهد.
📌نکته کلیدی و اجباری:
سیستم باید مجهز به مکانیزم Error Handling و Retry Log قوی باشد، به گونهای که در صورت قطعی موقت هر یک از سایتهای مرجع (APIهای بورس)، فرآیند استخراج داده متوقف نشود و پس از بازگشت سایت، درخواستها مجدداً با موفقیت انجام شوند. تمام خطاها و تعداد تلاشهای مجدد (retry) باید در دیتابیس و فایل لاگ ثبت شوند.
منابع داده (APIها):
1. BRS API (رایگان) – دریافت اطلاعات اولیه صندوقها (قیمت، NAV، تعداد خرید/فروش).
2. SourceArena API (پولی) – دریافت دقیقتر اطلاعات صندوقها شامل NAV، قیمت لحظهای و تعداد خریداران/فروشندگان حقیقی (طبق مستندات PDF ضمیمه شده).
3. tgju.org – دریافت قیمتهای جهانی (انس طلا، انس نقره، طلای ۱۸ عیار، نقره ۲۴ عیار، دلار، سکه امامی).
لیست نمادهای صندوق طلا و نقره:
حدود ۳۵ نماد شامل: «عیار»، «کهربا»، «زرگر»، «زرد»، «ناب»، «نگین فارس»، «گلدا»، «سيلور»، «تقرين»، «نقربي»، «نقران» و … (لیست کامل در فایل ضمیمه موجود است).
محاسبات مورد نیاز:
- حباب هر صندوق = `(قیمت آخرین معامله - NAV) / NAV * 100` (درصد)
- قدرت خریدار/فروشنده = `تعداد خریداران حقیقی / تعداد فروشندگان حقیقی`
- تغییرات NAV نسبت به آخرین رکورد ذخیرهشده (درصد)
خروجیهای اصلی:
1. گزارش تلگرامی خودکار (هر ۱ ساعت) شامل:
- قیمتهای جهانی (از tgju): انس طلا، انس نقره، طلای ۱۸ عیار، نقره، دلار، سکه
- لیست ۵ تا ۱۰ صندوق با بیشترین حباب مثبت و منفی (بیشتر از ۵٪)
- نماد، درصد حباب، و علامت 🔺/🔻
- (اختیاری) خلاصه تعداد retryهای انجام شده در صورت وجود خطا
2. ذخیره تمام دادهها در SQLite (قابل تغییر به PostgreSQL در صورت نیاز)
3. APIهای Flask:
- `GET /funds/latest` ← آخرین وضعیت همه صندوقها
- `GET /funds/<symbol>/history?days=30` ← تاریخچه یک نماد
- `GET /global/latest` ← آخرین قیمتهای جهانی
- `GET /retry-logs` ← مشاهده لاگ خطاها و تلاشهای مجدد
- `GET /health` ← بررسی سلامت سرویس
الزامات فنی (ویژه مدیریت خطا و Retry):
- Exponential Backoff برای تکرار درخواستهای ناموفق (حداقل ۳ بار تکرار با فاصلههای افزایشی)
- Circuit Breaker ساده (در صورت تکرار خطا از یک منبع خاص، به مدت مشخص از آن صرفنظر شود)
- Fallback خودکار: اولویت با SourceArena، در صورت خطا → BRS API
- لاگ کامل (جدول `retry_log` در دیتابیس + فایل `scraper.log` روی دیسک)
- بررسی اتصال اینترنت قبل از شروع هر چرخه
- عدم توقف کل فرآیند در صورت بروز خطا برای یک نماد
- زبان: Python 3.9+
- کتابخانههای پیشنهادی: `requests`, `flask`, `tenacity` (یا مشابه), `loguru` (یا logging استاندارد), `sqlite3`, `threading`
- رعایت فاصله زمانی بین درخواستها (حداقل ۰.۵ ثانیه)
- قابلیت اجرا به صورت دائمی (daemon) روی سرور لینوکسی (با systemd یا screen)
مستندات APIهای ورودی:
- مستندات BRS: (لینک داده میشود)
- مستندات SourceArena: فایل PDF ضمیمه شده (۲۰ اندپوینت)
- مستندات tgju: https://tgju.org/api
دادههای ورودی از کارفرما (پس از عقد قرارداد):
- توکن API سورس آرنا
- توکن و چتآیدی ربات تلگرام
خروجی مورد انتظار از مجری:
1. کد کامل پروژه به صورت فایلهای جداگانه Python (با کامنتهای فارسی)
2. فایل `requirements.txt`
3. فایل `README.md` شامل:
- نحوه نصب و اجرا
- تنظیم متغیرهای محیطی (`.env` یا export)
- نحوه اجرا به عنوان سرویس دائمی
- مثالهای درخواست به API
4. خروجی نمونه (اسکرینشات از پیام تلگرام و پاسخ APIها)
5. (اختیاری) استفاده یا بهبود نمونه سورس کد مقدماتی که توسط AI تهیه شده و در ضمیمه قرار دارد.
مهارتهای مورد نیاز فریلنسر:
- تسلط به Python، کتابخانههای `requests` و `Flask`
- آشنایی با APIهای مالی بورس ایران (BRS، SourceArena، tgju)
- تجربه در پیادهسازی Error Handling، Retry Mechanism، Logging و Circuit Breaker
- توانایی کار با دیتابیس SQLite
- آشنایی با ربات تلگرام و ارسال خودکار پیام
بازه زمانی پیشنهادی: ۳ تا ۵ روز
بودجه پیشنهادی: ۳,۵۰۰,۰۰۰ تا ۵,۰۰۰,۰۰۰ تومان
نکته:
یک فایل نمونه سورس کد مقدماتی (تولید شده با AI) در ضمیمه قرار گرفته است. اگر به کار شما میآید میتوانید از آن به عنوان پایه استفاده کنید، اما پیادهسازی مکانیزمهای مدیریت خطا و Retry Log از صفر یا با کیفیت بالاتر نیز کاملاً پذیرفته است.
توجه: میخوام پشتیبانی ۳۰ روزه هم داشته باشیم تا اگه در این مدت نقصی داشت برطرف بشه. لطفا صرفاً دوستانی که سابقه کار با سایت های بالا و وب سرویس های غیر رسمی بورس دارند و با محدودیت های TSETMC آشنایی دارند و توانایی ساخت بات تلگرام با ویژگی های مذکور دارند پیام بگذارند.
این پروژه شامل 6 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.
مهارت ها و تخصص های مورد نیاز
بودجه
3,500,000 تومان تا 5,000,000 تومان
مهلت برای انجام
5روز
وضعیت مناقصه
باز (آماده دریافت پیشنهاد)
درباره کارفرما
عضویت پنج سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
تا کنون 10 پیشنهاد قیمت از سمت فریلنسرها برای این پروژه ارسال شده
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار