در این تسک، قابلیت Pagination برای Endpointهای مربوط به لیست دورهها، زیردورهها و شهرها در سایت آموزشگاهیاب پیادهسازی خواهد شد.
هدف از اجرای این تسک، مدیریت بهینه اطلاعات لیستها و جلوگیری از ارسال حجم بالای داده در یک درخواست است تا اطلاعات بهصورت صفحهبندیشده در اختیار بخشهای مختلف سایت قرار گیرد.
الزامات تسک
-
پیادهسازی Pagination برای Endpoint لیست دورهها.
-
پیادهسازی Pagination برای Endpoint لیست زیردورهها.
-
پیادهسازی Pagination برای Endpoint لیست شهرها.
-
Pagination هر Endpoint باید بهصورت مستقل عمل کند.
-
امکان تعیین تعداد آیتمهای قابل دریافت در هر صفحه فراهم شود.
-
امکان تعیین صفحه موردنظر در درخواست API فراهم شود.
-
اطلاعات موردنیاز برای مدیریت Pagination در پاسخ API ارائه شود.
-
ساختار خروجی Endpointها باید بهگونهای باشد که فرانتاند بتواند اطلاعات را بهصورت صفحهبندیشده دریافت و نمایش دهد.
-
پیادهسازی Pagination نباید باعث اختلال در عملکرد فعلی Endpointها یا سایر بخشهای سایت شود.
وظایف اجرایی
-
بررسی ساختار فعلی Endpointهای لیست دوره، زیردوره و شهر.
-
پیادهسازی Pagination برای Endpoint لیست دورهها.
-
پیادهسازی Pagination برای Endpoint لیست زیردورهها.
-
پیادهسازی Pagination برای Endpoint لیست شهرها.
-
تعریف پارامترهای موردنیاز برای تعیین صفحه و تعداد آیتمها.
-
ایجاد ساختار مناسب برای ارسال اطلاعات Pagination در پاسخ API.
-
تست دریافت اطلاعات دورهها بهصورت صفحهبندیشده.
-
تست دریافت اطلاعات زیردورهها بهصورت صفحهبندیشده.
-
تست دریافت اطلاعات شهرها بهصورت صفحهبندیشده.
-
بررسی صحت عملکرد Pagination در صفحات مختلف.
-
بررسی عدم ایجاد اختلال در عملکرد فعلی Endpointها.
خروجی نهایی
-
پیادهسازی Pagination برای Endpoint لیست دورهها.
-
پیادهسازی Pagination برای Endpoint لیست زیردورهها.
-
پیادهسازی Pagination برای Endpoint لیست شهرها.
-
ارائه اطلاعات موردنیاز Pagination در پاسخ API.
-
آمادهسازی Endpointها برای دریافت و نمایش بهینه اطلاعات صفحهبندیشده در سایت آموزشگاهیاب.
دستورالعمل جامع تحویل تسکها و چرخه حیات توسعه (Definition of Done)
در فرآیند ثبت و اجرای تمامی تسکها، رعایت اصول زیر الزامی است (بسته به ماهیت و دامنه هر تسک/سرویس، برخی جزئیات ممکن است کم یا زیاد شوند):
محیط و مخزن تحویل: شروع، توسعه و تحویل کار باید منحصراً روی گیتهاب (GitHub)، در مخزن اختصاصی پروژه و برنچ تعیینشده (Feature Branch یا برنچ موظف طبق ساختار GitFlow) انجام پذیرد.
استقرار نسخه آزمایشی (Staging): پس از اتمام توسعه اولیه، نسخه کاندید جهت انجام تستهای پذیرش (Acceptance / Smoke Tests) بر روی محیط استقرار موقت (Staging / Development Server) دیپلوی شود.
معیارهای پذیرش کیفی، امنیتی و پایش:
تکمیل و بهروزرسانی فایل README.md مخزن شامل راهنمای اجرا، تست و متغیرها.
پاس شدن کامل گیتهای کیفی (Quality Gates) شامل بررسی استانداردهای کد، Linting و تحلیل ایستا (Static Analysis).
رفع کامل آسیبپذیریها و خطاهای امنیتی (Security Gates) در ابزارهای پویش سورس و وابستگیها.
یکپارچهسازی و اتصال بدون خطای سرویس به ابزار رصد خطا (Sentry Integration) برای لاگین و ترکینگ دقیق رویدادهای بحرانی.
تستنویسی کامل بر اساس متدولوژی TDD با پوشش کد بالا (حداکثر پوشش ممکن / ۱۰۰٪ در بخشهای منطق تجاری حیاتی).
ادغام کد (Merge to Main): تنها پس از تأیید ناظر/تیم فنی و موفقیت تمام خطوط لوله یکپارچهسازی مداوم (CI/CD)، درخواست ادغام (Pull Request) به برنچ main اعمال شود.
آنالیز و رفع عیوب پس از ادغام (Post-Merge Analysis): پس از ادغام، رفتارهای سیستم، گزارشهای لاگ و نتایج مانیتورینگ مورد ارزیابی قرار گرفته و هرگونه رگرسیون یا باگ کشفشده سریعاً رفع گردد.