10 KiB
10 KiB
مشخصات درسنامه: آشنایی با 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):
- پلتفرم Supabase چیست و چرا عاشق آن میشوید؟
- ارائه یک سرور بکاند کامل ابری بدون نیاز به سرورنویسی و خرید هاستهای سنتی.
- قابلیتهای یکپارچه: پایگاه داده رابطهای PostgreSQL، سیستم ورود و ثبتنام کاربران، ذخیرهسازی فایلها و تصاویر، و تولید آنی REST API.
- ساخت گامبهگام پروژه در Supabase:
- ثبتنام در وبسایت با حساب GitHub (که در فصل ۳ ساخته شد).
- زدن دکمه New Project، انتخاب نام برای پروژه (
vibe-portfolio). - تعیین یک رمز عبور پایگاه داده قوی (Database Password).
- انتخاب منطقه جغرافیایی (Region): انتخاب سرورهای فرانکفورت (Central Europe) برای حداقل تاخیر اینترنت و پینگ سریع به کاربران ایرانی.
- تور تصویری پیشخوان Supabase Studio:
- Table Editor: محیط شبیه به اکسل برای دیدن، افزودن و ویرایش دستی دادههای جداول.
- SQL Editor: تب اجرای اسکریپتها یا پرامپتهای هوش مصنوعی برای تولید ساختار جداول.
- Authentication: پنل لیست کاربران ثبتنامشده و مدیریت تایید ایمیل.
- Storage: فضایی شبیه به Google Drive برای آپلود عکسهای نمونهکارها.
- استخراج کلیدهای اتصال به پروژه (API Credentials):
- رفتن به مسیر Project Settings
\rightarrowAPI. - کپی کردن دو متغیر حیاتی:
Project URL: آدرس اختصاصی دیتابیس ابری شما.anon / public key: کلید عمومی برای اتصال امن از فرانتاند Next.js.
- رفتن به مسیر Project Settings
- مرزهای امنیتی کلیدها (Security Boundaries):
- چرا استفاده از
anon keyدر کدهای فرانتاند مجاز است؟ (چون توسط قوانین RLS کنترل میشود). - چرا کلید
service_role keyهرگز نباید در کدهای کلاینت یا مخزن گیتهاب قرار گیرد؟ (این کلید دسترسی نامحدود به تمام جداول دارد).
- چرا استفاده از
- کالاوتهای Quera:
<details class="violet">: مزیت آزادی و عدم قفلشدگی؛ پایگاه داده Supabase یک PostgreSQL خالص است که در هر زمان میتوانید کل اطلاعات آن را خروجی گرفته و به سرور شخصی خود منتقل کنید.<details class="red">: هشدار امنیتی افشای 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/قرار گرفته و در قالب جدول تکخانهای وسطچین با کپشن تفصیلی درج شوند:
- تصویر کاور درس:
images/cover.png- موضوع: کاور مدرن با تم تیره و لوگوی سبز درخشان Supabase که جعبهابزار ابری دیتابیس، احراز هویت و فضای ذخیرهسازی را در فضا نمایش میدهد.
- ارکان چهارگانه اکوسیستم Supabase:
images/supabase-core-features.png- موضوع: اینفوگرافیک ۴ ستونه: ۱. دیتابیس Postgres
\rightarrow۲. سیستم Auth\rightarrow۳. فضای Storage\rightarrow۴. ایپیآی خودکار (Auto APIs).
- موضوع: اینفوگرافیک ۴ ستونه: ۱. دیتابیس Postgres
- پنجره ساخت پروژه جدید در Supabase:
images/supabase-new-project-dialog.png- موضوع: اسکرینشات تمیز از فرم ساخت پروژه با نام، رمز عبور دیتابیس و ریجن فرانکفورت.
- تور پیشخوان استودیو سوپابیس:
images/supabase-studio-interface-tour.png- موضوع: اسکرینشات برچسبگذاریشده از داشبورد شامل سایدبار ابزارها: Table Editor، SQL Editor، Authentication و Storage.
- صفحه کلیدهای API و هشدار امنیتی:
images/supabase-api-keys-page.png- موضوع: اسکرینشات از منوی API Settings با نشان دادن کادر سبز Anon Key و کادر هشدار قرمز Service Role Key.
۵. بخشبندی و ساختار محتوایی پیشنهادی درسنامه (README.md)
- تیتر اصلی:
# آشنایی با Supabase و راهاندازی پروژه: پایگاه داده مدرن در دستان شما - مقدمه: چرا Supabase محبوبترین ابزار بکاند در میان استارتاپهای نوین هوش مصنوعی است؟
- جدول کاور درس
- چرا Supabase برنده بلامنازع است؟:
- مقایسه با روشهای سنتی خرید هاست و سرورهای سنگین.
- قدرت واقعی هسته PostgreSQL.
- ساخت اولین پروژه ابری به صورت گامبهگام:
- ثبتنام با GitHub.
- انتخاب نام و رمز عبور قوی.
- انتخاب ریجن فرانکفورت برای پینگ عالی به ایران.
- تور دیداری در استودیو Supabase: معرفی ابزارهای روزمره (ادیتور جدول، ادیتور اسکیوال، احراز هویت).
- باکس نکته Quera (
<details class="violet">): فرار از انحصار؛ دادههای شما همیشه در قالب دیتابیس استاندارد متعلق به خودتان است. - دریافت کلیدهای اتصال پروژه (Project URL & Anon Key): نحوه کپی کردن مقادیر برای کدهای فرانتاند.
- مرزهای امنیتی: فرق کلید عمومی و کلید اختصاصی ادمین:
- چرا کلید anon امن است؟
- خطرات نابودکننده افشای service role key.
- باکس هشدار Quera (
<details class="red">): هرگز کلید service role را در کدهای فرانتاند یا گیتهاب قرار ندهید! - جمعبندی درسنامه: آماده شدن زیرساخت ابری و ورود به درس طراحی و ساخت جداول دیتابیس.
۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- ویژگیهای پلتفرم Supabase و تفاوت آن با سرویسهای بسته به روشنی بیان شده باشد.
- مراحل ساخت پروژه با انتخاب ریجن بهینه در متن آموزش داده شود.
- بخشهای مختلف داشبورد Supabase Studio با اسکرینشاتهای برچسبدار شرح داده شوند.
- تمایز حیاتی Anon Key و Service Role Key از منظر امنیت به صراحت تاکید گردد.