رفتن به محتوای اصلی
← بازگشت به پروژه‌ها
نشان برند شایان برای پروژه سامانه رزرو نوبت 08 / POOYA LABS
PROJECT / 08سامانه رزرو نوبت

Salon Booking

در حال توسعه · ۰٫۷٫۰ / Apps Script ۱٫۴٫۰

سامانه رزرو نوبت برای یک آرایشگاه؛ شامل مسیر مشتری و فضای مدیریت مالک، زمان‌بندی شمسی و مهاجرت Backend به Google Apps Script و Sheets. اطلاعات مشتریان واقعی نباید در دموی عمومی وارد شود.

ReactTypeScriptViteGoogle Apps Script
01 /مسئله

رزرو نوبت به تقویم زمان‌محور، جلوگیری از تداخل، مسیر ساده مشتری و ابزار جداگانه مدیر نیاز دارد. تجربه فارسی باید تاریخ شمسی و timezone ایران را دقیق نگه دارد.

02 /راهکار و رویکرد

Frontend با React، TypeScript و Vite روی GitHub Pages ارائه می‌شود. Backend در مسیر مهاجرت به Google Apps Script و Google Sheets است؛ bridge ارتباطی و اعلان‌های مدیر بخشی از معماری هدف هستند.

03 /نقش و انتساب

README، پویا را مهندس/سازنده و مالک سالن را صاحب محصول معرفی می‌کند.

04 /معماری فنی

GitHub Pages، React/TypeScript/Vite را سرو می‌کند. درخواست‌های same-origin از hidden iframe به bridge Apps Script و google.script.run می‌روند؛ Apps Script منطق API و Google Sheets خصوصی داده را نگه می‌دارند. Firebase Cloud Messaging برای push مدیر است؛ email اختیاری خاموش است. Worker/D1 قدیمی در مسیر فعال نیست و فقط recovery material باقی مانده.

مسیر رزرو و اعلان مدیر
مسیر فعال در حال پذیرش نهایی است؛ Google Sheets خصوصی و push وابسته به تنظیم FCM است
05 /جزئیات پیاده‌سازی
  • 01service catalog و availability بر اساس duration، ساعات هفتگی، استثناها، timezone، buffer و رزروهای فعال.
  • 02تقویم Jalali با timezone سالن Asia/Tehran و ذخیره زمان UTC.
  • 03booking با Idempotency-Key، recheck/write زیر LockService، reference code و customer management token یک‌بارمصرف.
  • 04lookup/cancel مشتری با reference و proof-of-possession؛ اطلاعات تماس به API عمومی برگردانده نمی‌شود.
  • 05پنل مالک: sign-in، رزروها، confirm/cancel/complete/no-show، خدمات/قیمت، ساعات چندبازه‌ای، date exceptions و TimeBlocks.
  • 06AuditLog، IP-HMAC rate limit، hash کردن token/session و session چرخشی ۳۰روزه با logout revocation.
  • 07push مدیر از FCM پس از config/device registration؛ ایمیل پیش‌فرض خاموش.
06 /تصمیم‌های مهندسی
  • 01Cloudflare/D1 دیگر مسیر فعال نیست؛ داده قدیمی بدون تصمیم مالک حذف/منتقل نمی‌شود.
  • 02تا پذیرش relay، نسخه Apps Script و تنظیمات واقعی سالن، demo برای رزرو واقعی نیست.
  • 03timezone، ساعت کاری، خدمات و قیمت باید توسط صاحب سالن تأیید شوند.
  • 04داده مشتری در screenshot یا پورتفولیو منتشر نمی‌شود.
07 /تست و شواهد اعتبارسنجی
  • 01نسخه جاری 0.7.0 است؛ backend هدف 1.4.0 با rolling 30-day owner session است.
  • 02CI و Pages برای commit 3d9a7ff هنگام بررسی در صف بودند و موفق فرض نمی‌شوند.
  • 03visual/browser QA قبلی در CI 42013839983 موفق بوده، اما smoke نسخه جدید Apps Script جداست.
  • 04مالک استقرار Web App و SALON_RELAY_URL را گزارش کرده؛ ارتقای 1.4.0، TimeBlocks، bootstrap/login و رزرو end-to-end شواهد جاری می‌خواهند.
  • 05Firebase/FCM، VAPID و push واقعی هنوز باید روی دستگاه مدیر تأیید شوند.
09 /قابلیت‌ها و نکات فنی
  • 01کاتالوگ سرویس‌ها و slotهای وابسته به مدت زمان
  • 02نمایش تقویم شمسی با timezone Asia/Tehran
  • 03رزرو با idempotent retry و کد پیگیری
  • 04استعلام و لغو مشتری با token یک‌بارمصرف
  • 05فضای مدیر برای مدیریت رزرو، سرویس و زمان‌بندی
10 /محدوده و محدودیت‌ها

نسخه ۰٫۷٫۰ در مسیر مهاجرت به Apps Script است و پذیرش نهایی استقرار هنوز لازم است. تا تأیید backend و تنظیمات، از مسیر رزرو با داده مشتری واقعی در دموی عمومی استفاده نکن.