درباره پروژه
وطن اپ یک سوپراپ محتوایی و سرگرمی چندسکویی است که فیلم و سریال، موسیقی، رمان، محفلهای گفتگو، فروشگاه دیجیتال و خدمات کاربری را در یک تجربه یکپارچه در اختیار کاربران قرار میدهد.
این پروژه از ابتدا با تمرکز بر رابط کاربری فارسی، سرعت، امنیت، مقیاسپذیری و مدیریت متمرکز محتوا طراحی و توسعه داده شد. اپلیکیشن اصلی با Flutter و Dart پیادهسازی شده و یک API مرکزی مبتنی بر FastAPI و Python وظیفه هماهنگی میان اپلیکیشن، پایگاه داده، سرویسهای پرداخت و منابع محتوایی مختلف را بر عهده دارد.
یکی از مهمترین چالشهای فنی پروژه، دریافت اطلاعات از چند سامانه محتوایی مستقل و تبدیل آنها به یک مدل داده استاندارد بود. برای حل این مسئله، یک لایه مرکزی طراحی شد که اطلاعات منابع مختلف را دریافت، پاکسازی و استانداردسازی میکند و سپس دادهای یکپارچه در اختیار اپلیکیشن قرار میدهد. در نتیجه کاربر تفاوت میان منابع مختلف محتوا را احساس نمیکند و تمام سرویسها به صورت بخشی از یک محصول واحد نمایش داده میشوند.
بخش فیلم و سریال شامل دستهبندیها، ژانرها، کالکشنها، فصلها و قسمتهای بهروز است. پلیر اختصاصی پروژه از کنترلهای حرفهای پخش، زیرنویس SoftSub و امکان تنظیم اندازه و موقعیت زیرنویس پشتیبانی میکند.
برای بخش موسیقی نیز پلیر اختصاصی با انتخاب خودکار کیفیت مناسب، پخش خودکار و کنترلهایی مشابه اپلیکیشنهای حرفهای موسیقی طراحی شد. کاربران میتوانند برای فیلمها و موسیقی امتیاز و نظر ثبت کنند و از قابلیتهایی مانند علاقهمندیها، تاریخچه مشاهده، ادامه تماشا و کتابخانه شخصی استفاده کنند.
سیستم حساب کاربری با ورود مبتنی بر شماره موبایل و OTP توسعه داده شده است. نشست کاربران به صورت امن مدیریت میشود و سطوح دسترسی متفاوتی برای کاربران عادی، نویسندگان و مدیران در نظر گرفته شده است.
یکی دیگر از بخشهای گسترده پروژه، سیستم نویسندگان و انتشار رمان است. نویسندگان از طریق پنل اختصاصی میتوانند آثار جدید ایجاد کنند، فصل و قسمت منتشر کنند، فایل و تصویر بارگذاری کنند و وضعیت آثار و درآمد خود را مدیریت کنند.
محفلها نیز به شکل یک سیستم اجتماعی و گفتگوی پیشرفته طراحی شدهاند. کاربران میتوانند درخواست ایجاد محفل ارسال کنند و پس از تأیید مدیریت، اعضا و نقشهای مختلف را مدیریت کنند. عضویت پولی، نقشهای مدیریتی، سطح دسترسی سفارشی، مدیریت اعضا، فیلتر محتوای نامناسب و اتاق گفتگوی اختصاصی از جمله امکانات این بخش هستند.
وطن اپ دارای زیرساخت کامل پرداخت شامل فروشگاه، کیف پول، پرداخت مبلغ دلخواه و سیستم اشتراک است و به درگاههای زیبال و زرینپال متصل شده است.
برای مدیریت مجموعه، دو پنل مدیریتی همسطح طراحی شد؛ یک پنل مستقیماً داخل اپلیکیشن و یک پنل وب Responsive. مدیران از هر دو محیط به امکانات یکسانی برای مدیریت کاربران، نویسندگان، محتوا، محفلها، سفارشها، تراکنشها، کیف پول، برداشتها، تخفیفها، تبلیغات و اعلانها دسترسی دارند.
سیستم اعلان پروژه بر پایه Firebase Cloud Messaging توسعه داده شده و امکان ارسال Push Notification عمومی و هدفمند را فراهم میکند.
در معماری پروژه مسائل امنیتی نیز از ابتدا در نظر گرفته شدند. درخواستهای حساس قابلیت اعتبارسنجی با HMAC، Timestamp و Nonce دارند، اطلاعات حساس و OTPها به صورت Hash ذخیره میشوند و مکانیزمهای Rate Limit، Cooldown و کنترل درخواست براساس کاربر، شماره موبایل و IP برای کاهش سوءاستفاده از سرویسها در نظر گرفته شدهاند.
برای افزایش سرعت و کاهش درخواستهای تکراری، سیستم Cache، Deduplication درخواستها و بارگذاری مرحلهای توسعه داده شد. صفحات مختلف نیز Loading مستقل دارند تا تجربه کاربری حتی هنگام دریافت اطلاعات از چند سرویس مختلف روان باقی بماند.
زیرساخت پروژه با Docker و Docker Compose مدیریت میشود و Nginx مسئول Reverse Proxy، HTTPS و مدیریت دامنهها است. PostgreSQL نیز به عنوان پایگاه داده اصلی برای اطلاعات کاربران، تراکنشها، پرداختها و اطلاعات مدیریتی استفاده شده است.
رابط کاربری وطن اپ با هویت بصری اختصاصی و تم بنفش–آبی طراحی شده است. استفاده از Glassmorphism، پشتیبانی کامل از RTL، حالت روشن و تاریک و طراحی Responsive باعث شده رابط اپلیکیشن روی موبایل، تبلت و نمایشگرهای مختلف تجربهای یکپارچه ارائه کند.
امکانات و قابلیتها
- اپلیکیشن چندسکویی با Flutter
- API مرکزی اختصاصی با FastAPI
- معماری چندسرویسی
- تجمیع چند منبع محتوایی
- استانداردسازی اطلاعات منابع مختلف
- سیستم ثبتنام و ورود با شماره موبایل
- احراز هویت با OTP
- مدیریت امن نشست کاربران
- ورود خودکار کاربران
- سیستم سطح دسترسی کاربران
- حساب کاربری عادی
- حساب نویسنده
- حساب مدیر
- سیستم فیلم و سریال
- دستهبندی فیلم و سریال
- ژانرها و کالکشنها
- مدیریت فصل و قسمت سریال
- پلیر اختصاصی فیلم
- پشتیبانی از SoftSub
- تنظیم اندازه زیرنویس
- تنظیم موقعیت زیرنویس
- سیستم پخش موسیقی
- انتخاب خودکار کیفیت ۳۲۰ و ۱۲۸
- Auto Play موسیقی
- سیستم امتیازدهی
- سیستم نظرات
- علاقهمندیها
- تاریخچه مشاهده
- ادامه تماشا
- کتابخانه شخصی
- فروشگاه دیجیتال
- کیف پول کاربران
- پرداخت مبلغ دلخواه
- زیرساخت اشتراک
- اتصال به درگاه زیبال
- اتصال به درگاه زرینپال
- سیستم تیکتینگ دوطرفه
- اعلانهای Push
- Firebase Cloud Messaging
- اعلان عمومی
- اعلان هدفمند
- حالت روشن و تاریک
- رابط کاربری RTL
- طراحی Responsive
- طراحی Glassmorphism
- بارگذاری مرحلهای اطلاعات
- Loading مستقل صفحات
- سیستم Cache
- Deduplication درخواستها
- پنل اختصاصی نویسندگان
- ایجاد و مدیریت آثار
- مدیریت فصلهای رمان
- انتشار قسمتهای رمان
- آپلود فایل و تصویر
- مدیریت درآمد نویسندگان
- سیستم درخواست ایجاد محفل
- تأیید محفل توسط مدیریت
- عضویت پولی در محفل
- سیستم نقشهای اختصاصی
- مدیر محفل
- ناظر محفل
- معاون محفل
- سطح دسترسی سفارشی
- مدیریت اعضای محفل
- اخراج کاربران
- سیستم امتیاز اعضا
- فیلتر کلمات نامناسب
- قوانین اختصاصی محفل
- تنظیمات محفل
- اتاق گفتگوی اختصاصی
- پنل مدیریت داخل اپلیکیشن
- پنل مدیریت تحت وب
- مدیریت کاربران
- مدیریت نویسندگان
- مدیریت مدیران
- مدیریت درخواستهای نویسندگی
- مدیریت درخواستهای محفل
- مدیریت فیلم و سریال
- مدیریت موسیقی
- مدیریت رمان
- مدیریت محصولات
- مدیریت نظرات و امتیازها
- مدیریت گزارشها
- مدیریت تیکتها
- مدیریت سفارشها
- مدیریت تراکنشها
- مدیریت کیف پول
- مدیریت درخواست برداشت
- مدیریت درگاههای پرداخت
- سیستم کد تخفیف
- مدیریت تبلیغات ویدئویی
- مدیریت دامنههای دانلود
- مدیریت قوانین دسترسی محتوا
- مانیتورینگ وضعیت سرویسها
- مدیریت عملیات همگامسازی
- امنسازی درخواستها با HMAC
- Timestamp و Nonce Validation
- ذخیره Hash شده اطلاعات حساس
- Rate Limiting
- Cooldown System
- کنترل درخواست براساس IP
- کنترل درخواست براساس کاربر
- Reverse Proxy با Nginx
- استقرار مبتنی بر Docker
- معماری قابل توسعه و مقیاسپذیر