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

پلتفرم رسمی باشگاه پرسپولیس — LivePersepolis

نقش من: طراحی معماری سامانه و پیاده‌سازی کامل فرانت‌اند (Next.js) و بک‌اند (Django)کارفرما: باشگاه فرهنگی ورزشی پرسپولیس
Next.jsReactTypeScriptPythonDjangoDjango REST FrameworkPostgreSQLRedisCeleryDockerNginxJWT / OAuth2
پلتفرم رسمی باشگاه پرسپولیس — LivePersepolis

معرفی پروژه

LivePersepolis وب‌سایت رسمی باشگاه فرهنگی‌ورزشی پرسپولیس است؛ پرطرفدارترین و پرافتخارترین باشگاه فوتبال ایران با میلیون‌ها هوادار در سراسر کشور و منطقه. این پلتفرم صرفاً یک وب‌سایت خبری نیست، بلکه زیرساخت دیجیتالی رسمی باشگاه است که باید همزمان اخبار لحظه‌ای، نتایج بازی‌ها، فروشگاه رسمی، سیستم بلیت‌فروشی و باشگاه هواداران را زیر یک سقف مدیریت کند؛ آن‌هم در شرایطی که روزهای بازی و اخبار مهم نقل‌وانتقالاتی، ترافیک سایت به‌صورت انفجاری چند برابر می‌شود. طراحی چنین سامانه‌ای نیازمند معماری‌ای کاملاً اصولی، مقیاس‌پذیر و امن بود؛ نه یک وب‌سایت معمولی.

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

  • مرکز بازی زنده (Live Match Center) با گزارش لحظه‌ای نتایج، آمار بازی و رویدادها از طریق ارتباط real-time
  • پوشش خبری ۲۴ ساعته با مدیریت محتوای چندزبانه (فارسی/انگلیسی)، گالری تصویر و ویدیو
  • باشگاه هواداران با پروفایل اختصاصی، سطح‌بندی وفاداری و امتیازدهی برای اعضا
  • فروشگاه آنلاین محصولات رسمی باشگاه با مدیریت موجودی، سبد خرید و درگاه پرداخت امن
  • سامانه بلیت‌فروشی آنلاین مسابقات با کنترل ظرفیت لحظه‌ای و قفل‌گذاری تراکنشی برای جلوگیری از رزرو همزمان (race condition) در لحظات پرفشار پیش‌فروش
  • اعلان فوری (Push Notification) و پیامکی برای اخبار و نتایج مهم
  • پنل مدیریت محتوای اختصاصی برای تیم رسانه‌ای باشگاه، سفارشی‌سازی‌شده روی Django Admin با سطوح دسترسی مجزا

معماری فنی و امنیت

معماری پروژه کاملاً decoupled است: فرانت‌اند با Next.js و رندرینگ ترکیبی SSR/ISR پیاده‌سازی شده تا هم سئوی اخبار تضمین شود و هم بارگذاری صفحات برای میلیون‌ها بازدیدکننده فوق‌سریع بماند؛ بک‌اند هم با Python و Django به‌صورت REST API مستقل طراحی شده تا فرانت و بک کاملاً مستقل از هم مقیاس‌پذیر باشند. پایگاه‌داده اصلی PostgreSQL است و Redis هم برای کش، مدیریت سشن و صف پیام‌ها به کار گرفته شده. پردازش‌های سنگین و زمان‌بر—مثل ارسال انبوه اعلان، پردازش تصاویر و تولید گزارش—از طریق Celery به‌صورت ناهمزمان و در پس‌زمینه اجرا می‌شوند تا تجربه کاربری هرگز کند نشود. کل سرویس در قالب کانتینرهای Docker مجزا، پشت Nginx به‌عنوان reverse proxy و load balancer، به‌همراه کشینگ لبه (CDN) برای فایل‌های استاتیک و رسانه، مستقر شده تا در پیک‌های ترافیکی روز بازی هم پایدار بماند.

به‌دلیل حساسیت بالای یک پلتفرم رسمی با این حجم از بازدید، امنیت در تمام لایه‌ها جدی گرفته شده: احراز هویت مبتنی بر JWT/OAuth2، نرخ‌بندی درخواست (rate limiting) روی APIهای حساس—به‌خصوص بخش بلیت‌فروشی—برای مقابله با ربات‌ها و تلاش‌های سوءاستفاده، اعتبارسنجی و پاک‌سازی کامل ورودی‌ها در برابر XSS/SQLi/CSRF طبق استانداردهای Django و DRF به‌علاوه لایه‌های امنیتی تکمیلی، اجرای HTTPS با HSTS در تمام مسیرها، رمزنگاری داده‌های حساس در حالت ذخیره‌سازی، و سیستم نقش و دسترسی (RBAC) دقیق برای تفکیک کامل دسترسی‌های ادمین، تیم رسانه و اپراتورهای فروشگاه/بلیت، همراه با لاگ کامل فعالیت‌ها برای رهگیری و حسابرسی امنیتی.

نقش من

طراحی معماری کلی سامانه (هم فرانت‌اند و هم بک‌اند)، پیاده‌سازی رابط کاربری با Next.js، توسعه APIهای Django، تنظیم زیرساخت کشینگ و پردازش ناهمزمان با Redis و Celery، و سخت‌سازی امنیتی لایه‌های مختلف برنامه—با تمرکز ویژه بر پایداری سیستم در لحظات پرترافیک روزهای بازی و پیش‌فروش بلیت—بر عهده‌ی من بوده است.