# مشخصات درس‌نامه: آشنایی با Supabase و راه‌اندازی پروژه (Introduction to Supabase) - **شناسه در سیلابس:** `L7.4` - **فصل:** فصل ۷: داده و بک‌اند (Ch 7) - **نوع محتوا:** 📘 درس‌نامه متنی - **زمان تقریبی مطالعه:** ۱۲ دقیقه - **پیش‌نیازهای مستقیم:** `L7.3` (مفهوم API و ارتباط سرور با فرانت‌اند) --- ## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy) دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند: - [ ] **درک کند (Understand):** پلتفرم Supabase چیست و چرا به عنوان آلترناتیو متن‌باز فایربیس بر پایه دیتابیس صنعتی PostgreSQL، بهترین انتخاب برای توسعه‌دهندگان وایب کدینگ است. - [ ] **به‌کار ببندد (Apply):** یک حساب کاربری رایگان در Supabase ایجاد کرده و نخستین پروژه ابری خود را با رمز عبور قوی و انتخاب نزدیک‌ترین ریجن جغرافیایی بسازد. - [ ] **درک کند (Understand):** بخش‌های اصلی پیشخوان (Supabase Studio) شامل: **ویرایشگر بصری جداول (Table Editor)، ویرایشگر کوئری‌ها (SQL Editor)، بخش احراز هویت (Auth)، و تنظیمات کلیدهای API** را بازشناسی کند. - [ ] **تحلیل/ارزیابی کند (Evaluate):** تفاوت حیاتی میان کلید عمومی کلاینت (`anon key` تحت حفاظت RLS) و کلید محرمانه ادمین (`service_role key`) را تحلیل کرده و اصول امنیتی نگهداری آن را رعایت کند. --- ## ۲. محدوده و مرزهای محتوا (Scope & Boundaries) ### آنچه باید پوشش داده شود (In-Scope): 1. **پلتفرم Supabase چیست و چرا عاشق آن می‌شوید؟** * ارائه یک سرور بک‌اند کامل ابری بدون نیاز به سرورنویسی و خرید هاست‌های سنتی. * قابلیت‌های یکپارچه: پایگاه داده رابطه‌ای PostgreSQL، سیستم ورود و ثبت‌نام کاربران، ذخیره‌سازی فایل‌ها و تصاویر، و تولید آنی REST API. 2. **ساخت گام‌به‌گام پروژه در Supabase:** * ثبت‌نام در وب‌سایت با حساب GitHub (که در فصل ۳ ساخته شد). * زدن دکمه New Project، انتخاب نام برای پروژه (`vibe-portfolio`). * تعیین یک رمز عبور پایگاه داده قوی (Database Password). * انتخاب منطقه جغرافیایی (Region): انتخاب سرورهای فرانکفورت (Central Europe) برای حداقل تاخیر اینترنت و پینگ سریع به کاربران ایرانی. 3. **تور تصویری پیشخوان Supabase Studio:** * **Table Editor:** محیط شبیه به اکسل برای دیدن، افزودن و ویرایش دستی داده‌های جداول. * **SQL Editor:** تب اجرای اسکریپت‌ها یا پرامپت‌های هوش مصنوعی برای تولید ساختار جداول. * **Authentication:** پنل لیست کاربران ثبت‌نام‌شده و مدیریت تایید ایمیل. * **Storage:** فضایی شبیه به Google Drive برای آپلود عکس‌های نمونه‌کارها. 4. **استخراج کلیدهای اتصال به پروژه (API Credentials):** * رفتن به مسیر Project Settings $\rightarrow$ API. * کپی کردن دو متغیر حیاتی: * `Project URL`: آدرس اختصاصی دیتابیس ابری شما. * `anon / public key`: کلید عمومی برای اتصال امن از فرانت‌اند Next.js. 5. **مرزهای امنیتی کلیدها (Security Boundaries):** * چرا استفاده از `anon key` در کدهای فرانت‌اند مجاز است؟ (چون توسط قوانین RLS کنترل می‌شود). * چرا کلید `service_role key` هرگز نباید در کدهای کلاینت یا مخزن گیت‌هاب قرار گیرد؟ (این کلید دسترسی نامحدود به تمام جداول دارد). 6. **کال‌اوت‌های Quera:** * `
`: مزیت آزادی و عدم قفل‌شدگی؛ پایگاه داده Supabase یک PostgreSQL خالص است که در هر زمان می‌توانید کل اطلاعات آن را خروجی گرفته و به سرور شخصی خود منتقل کنید. * `
`: هشدار امنیتی افشای Service Role Key؛ کلید اصلی ریشه پروژه را هرگز به اشتراک نگذارید! ### آنچه نباید وارد آن شویم (Out-of-Scope): - نوشتن اسکریپت‌های ایجاد جداول (درس بعدی ۷.۵). - نصب پکیج و کدهای اتصالی در ری‌اکت (درس ۷.۶). --- ## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms) | اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده | | :--- | :--- | :--- | | Supabase | سوپابیس | پلتفرم ابری ارائه‌دهنده دیتابیس PostgreSQL، احراز هویت و APIهای خودکار | | Supabase Studio | پیشخوان استودیو | رابط کاربری گرافیکی تحت وب برای مدیریت آسان جداول، کاربران و دیتابیس | | Project URL | نشانی اختصاصی پروژه | آدرس یکتای اینترنتی سرورهای دیتابیس شما در بستر ابری Supabase | | Anon Public Key | کلید عمومی امن کلاینت | رمزارز اعتباری برای اتصال فرانت‌اند که اختیارات آن توسط قوانین امنیتی RLS محدود شده است | | Service Role Key | کلید اصلی سطح سرور | کلید فوق‌محرمانه با دسترسی نامحدود ادمین به تمام جداول بدون رعایت محدودیت‌های امنیتی | --- ## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders) > **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` قرار گرفته و در قالب جدول تک‌خانه‌ای وسط‌چین با کپشن تفصیلی درج شوند: 1. **تصویر کاور درس:** `images/cover.png` * **موضوع:** کاور مدرن با تم تیره و لوگوی سبز درخشان Supabase که جعبه‌ابزار ابری دیتابیس، احراز هویت و فضای ذخیره‌سازی را در فضا نمایش می‌دهد. 2. **ارکان چهارگانه اکوسیستم Supabase:** `images/supabase-core-features.png` * **موضوع:** اینفوگرافیک ۴ ستونه: ۱. دیتابیس Postgres $\rightarrow$ ۲. سیستم Auth $\rightarrow$ ۳. فضای Storage $\rightarrow$ ۴. ای‌پی‌آی خودکار (Auto APIs). 3. **پنجره ساخت پروژه جدید در Supabase:** `images/supabase-new-project-dialog.png` * **موضوع:** اسکرین‌شات تمیز از فرم ساخت پروژه با نام، رمز عبور دیتابیس و ریجن فرانکفورت. 4. **تور پیشخوان استودیو سوپابیس:** `images/supabase-studio-interface-tour.png` * **موضوع:** اسکرین‌شات برچسب‌گذاری‌شده از داشبورد شامل سایدبار ابزارها: Table Editor، SQL Editor، Authentication و Storage. 5. **صفحه کلیدهای API و هشدار امنیتی:** `images/supabase-api-keys-page.png` * **موضوع:** اسکرین‌شات از منوی API Settings با نشان دادن کادر سبز Anon Key و کادر هشدار قرمز Service Role Key. --- ## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`) 1. **تیتر اصلی:** `# آشنایی با Supabase و راه‌اندازی پروژه: پایگاه داده مدرن در دستان شما` 2. **مقدمه:** چرا Supabase محبوب‌ترین ابزار بک‌اند در میان استارتاپ‌های نوین هوش مصنوعی است؟ 3. **جدول کاور درس** 4. **چرا Supabase برنده بلامنازع است؟:** * مقایسه با روش‌های سنتی خرید هاست و سرورهای سنگین. * قدرت واقعی هسته PostgreSQL. 5. **ساخت اولین پروژه ابری به صورت گام‌به‌گام:** * ثبت‌نام با GitHub. * انتخاب نام و رمز عبور قوی. * انتخاب ریجن فرانکفورت برای پینگ عالی به ایران. 6. **تور دیداری در استودیو Supabase:** معرفی ابزارهای روزمره (ادیتور جدول، ادیتور اس‌کیو‌ال، احراز هویت). 7. **باکس نکته Quera (`
`):** فرار از انحصار؛ داده‌های شما همیشه در قالب دیتابیس استاندارد متعلق به خودتان است. 8. **دریافت کلیدهای اتصال پروژه (Project URL & Anon Key):** نحوه کپی کردن مقادیر برای کدهای فرانت‌اند. 9. **مرزهای امنیتی: فرق کلید عمومی و کلید اختصاصی ادمین:** * چرا کلید anon امن است؟ * خطرات نابودکننده افشای service role key. 10. **باکس هشدار Quera (`
`):** هرگز کلید service role را در کدهای فرانت‌اند یا گیت‌هاب قرار ندهید! 11. **جمع‌بندی درس‌نامه:** آماده شدن زیرساخت ابری و ورود به درس طراحی و ساخت جداول دیتابیس. --- ## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer) - [ ] ویژگی‌های پلتفرم Supabase و تفاوت آن با سرویس‌های بسته به روشنی بیان شده باشد. - [ ] مراحل ساخت پروژه با انتخاب ریجن بهینه در متن آموزش داده شود. - [ ] بخش‌های مختلف داشبورد Supabase Studio با اسکرین‌شات‌های برچسب‌دار شرح داده شوند. - [ ] تمایز حیاتی Anon Key و Service Role Key از منظر امنیت به صراحت تاکید گردد.