ویرا فوتیج — مارکتپلیس فروش فوتیج و ویدیوی استوک
غیرفعالاین پروژه در حال حاضر غیرفعال است
این پروژه در حال حاضر دامنهی فعال ندارد و فقط بهصورت لوکال در حال اجرا و تست است. تصاویر و جزئیات بیشتر بهزودی از طریق پنل مدیریت اضافه میشود.
معرفی پروژه
ویرا فوتیج یک مارکتپلیس کامل خرید و فروش فوتیج و ویدیوی استوک است؛ از مرور و جستوجوی کاتالوگ گرفته تا خرید تکی، اشتراک ماهانه و دانلود امن فایل اصلی. این پروژه بهصورت صفر تا صد—هم فرانتاند و هم بکاند—طراحی و پیادهسازی شده و شامل یک پنل مدیریت اختصاصی برای مدیریت کامل محصولات، سفارشها، کاربران و تنظیمات مالی است.
امکانات کلیدی
- کاتالوگ فوتیج با دستهبندی، برچسب، جستوجو و فیلتر بر اساس رزولوشن (1080p تا 8K)، فرمت (MP4/MOV/WebM) و جهت تصویر (افقی/عمودی/مربعی)
- پخش پیشنمایش ویدیو در مرورگر با video.js پیش از خرید
- سبد خرید، تسویهحساب و اعمال کد تخفیف (درصدی یا مبلغ ثابت) با سقف استفاده و حداقل مبلغ سفارش
- سیستم اشتراک ماهانه با سقف دانلود روزانهی مشخص برای هر پلن
- بخش کاربری شامل تاریخچهی خرید، دانلودها، علاقهمندیها (Favorites) و مدیریت اشتراک
- پنل مدیریت کامل و اختصاصی (بدون وابستگی به ابزار آماده) برای مدیریت فوتیجها، دستهبندیها، کوپنها، سفارشها، کاربران و تنظیمات درگاه پرداخت
- صفحات تکمیلی شامل درباره ما، تماس، سوالات متداول، قوانین و حریم خصوصی، و مجوز استفاده از فوتیجها
معماری فنی
بکاند با NestJS و معماری ماژولار نوشته شده (auth، footages، orders، payments، subscriptions، downloads، coupons، favorites، categories، tags) و از Prisma روی PostgreSQL برای دیتابیس استفاده میکند. فایلهای ویدیو هرگز مستقیم روی سرور ذخیره نمیشوند؛ آپلود و دانلود همه از طریق presigned URL سازگار با S3 انجام میشود و دیتابیس فقط کلید فایل را نگه میدارد، نه خود فایل را. سقف دانلود روزانهی کاربران اشتراکی با یک کوئری اتمیک (INSERT ... ON CONFLICT ... WHERE) در سطح دیتابیس کنترل میشود تا درخواستهای همزمان هرگز از سقف مجاز عبور نکنند—نکتهای که حتی یک تست e2e اختصاصی برای همین race condition هم برایش نوشته شده. لایهی احراز هویت با JWT و رفرشتوکنهای قابلابطال جداگانه (هششده در دیتابیس) کار میکند، بهعلاوهی Helmet برای هدرهای امنیتی، Rate Limiting برای جلوگیری از سوءاستفاده، و اعتبارسنجی سختگیرانهی ورودیها (whitelist/forbidNonWhitelisted) روی تمام endpointها. مستندات کامل API هم با Swagger بهصورت خودکار تولید میشود. فرانتاند با Next.js، TypeScript، Zustand برای مدیریت state و کتابخانهی کامپوننتهای shadcn/Radix UI ساخته شده است.
نقش من
طراحی کامل معماری پروژه (دیتابیس، API و فرانتاند)، پیادهسازی تمام ماژولهای بکاند (احراز هویت، کاتالوگ، سفارش و پرداخت، اشتراک، دانلود امن، کوپن)، توسعهی کامل رابط کاربری با Next.js، و ساخت پنل مدیریت اختصاصی، بهطور کامل بر عهدهی من بوده است. این پروژه در حال حاضر بهصورت لوکال در دست توسعه و تست است.