به تیم نویسندگان ما بپیوندید
حسن محمدزادهحسن محمدزاده
بازگشت به نمونه‌کارها

تی‌وی شادفیلم — پلتفرم کاتالوگ و کشف فیلم و سریال

نقش من: طراحی و پیاده‌سازی کامل فرانت‌اند با Next.js (مصرف و یکپارچه‌سازی NegaTV API)
Next.jsReactTypeScriptTailwind CSSNegaTV APISWRISRnext/image

معرفی پروژه

tv.shadfilm.ir زیرپلتفرم و برادر دیجیتال شادفیلم است؛ یک رابط کاربری مدرن برای کشف و مرور فیلم و سریال که کاملاً با Next.js ساخته شده و تمام محتوای خود—از پوستر و خلاصه داستان گرفته تا امتیاز IMDb و دسته‌بندی‌ها—را به‌صورت زنده از NegaTV API دریافت می‌کند. برخلاف شادفیلم اصلی که یک پلتفرم کامل Full-Stack است، این پروژه تمرکز صرف روی معماری فرانت‌اند دارد: چگونه می‌شود با بهترین الگوهای رندرینگ Next.js، یک تجربه‌ی کاربری سریع، روان و حرفه‌ای روی داده‌های یک API ثالث ساخت.

امکانات کلیدی

  • کاتالوگ گسترده‌ی فیلم و سریال با پوستر، امتیاز IMDb، ژانر و خلاصه‌ی داستان، همه از طریق اتصال زنده به NegaTV API
  • صفحه‌ی اصلی پویا با ردیف‌های دسته‌بندی‌شده (برترین امتیازها، تازه‌ترین‌ها، درام، هیجان‌انگیز، اکشن و…)
  • صفحه‌ی کاتالوگ با قابلیت فیلتر بر اساس ژانر و مرتب‌سازی بر اساس امتیاز IMDb یا تاریخ انتشار
  • صفحه‌ی اختصاصی برای هر عنوان با جزئیات کامل و دکمه‌های پخش (Play) و ذخیره (Save)
  • بخش «ذخیره‌شده‌ها» برای نشان‌کردن و دسترسی سریع به محتوای موردعلاقه‌ی هر کاربر
  • طراحی کاملاً ریسپانسیو با اولویت تجربه‌ی موبایل
  • بارگذاری تدریجی و هوشمند تصاویر پوستر همراه با حالت‌های اسکلتون (Skeleton Loading) در حین دریافت داده از API

معماری فنی

کل پروژه با Next.js (App Router) و TypeScript پیاده‌سازی شده و از استراتژی رندرینگ ترکیبی بهره می‌برد: صفحات کاتالوگ با ISR رندر می‌شوند تا هم سرعت بارگذاری فوق‌العاده باشد و هم فشار درخواست روی NegaTV API به حداقل برسد، و صفحات نیازمند داده‌ی لحظه‌ای با SSR سرو می‌شوند. به‌جای فراخوانی مستقیم API ثالث از سمت کلاینت، یک لایه‌ی BFF (Backend-for-Frontend) با Route Handlerهای خود Next.js پیاده‌سازی شده که هم کلید و جزئیات اتصال به NegaTV API را از دید کاربر پنهان می‌کند و هم پاسخ‌ها را نرمال‌سازی و کش می‌کند. مدیریت وضعیت و کشِ سمت کلاینت (مثل لیست ذخیره‌شده‌ها) با SWR انجام می‌شود تا داده‌ها همیشه به‌روز و بدون تأخیر محسوس در دسترس باشند. استایل‌دهی با Tailwind CSS و بهینه‌سازی تصاویر با next/image صورت گرفته و متادیتای سئو (عنوان، توضیحات و Open Graph) برای هر صفحه به‌صورت پویا تولید می‌شود تا صفحات هر فیلم و سریال به‌خوبی در نتایج جست‌وجو دیده شوند.

نقش من

طراحی معماری فرانت‌اند، پیاده‌سازی کامل رابط کاربری با Next.js و TypeScript، ساخت لایه‌ی BFF برای اتصال امن و بهینه به NegaTV API، و بهینه‌سازی عملکرد (رندرینگ، کشینگ تصاویر و سئو) به‌طور کامل بر عهده‌ی من بوده است.

تی‌وی شادفیلم — پلتفرم کاتالوگ و کشف فیلم و سریال | حسن محمدزاده