این پوشه را کامل داخل مسیر سایت بریزید تا آدرس زیر سایت را باز کند:

  https://dl.vr360iran.ir/cafenetakbari/

یعنی این فایل‌ها باید دقیقاً اینجا باشند:
  cafenetakbari/index.html
  cafenetakbari/style.css
  cafenetakbari/common.js
  cafenetakbari/admin.html
  cafenetakbari/services.json

کارهایی که روی هاست فقط‌فایل (مثل dl) کار می‌کند:
  ✓ دیدن صفحه
  ✓ سرچ «دنبال چی هستی؟»
  ✓ دیدن لیست خدمات

کارهایی که به سرور Node نیاز دارد (الان روی dl کار نمی‌کند):
  ✗ ارسال فرم و ذخیره درخواست
  ✗ چت
  ✗ پنل مدیریت با رمز
  ✗ واتساپ

برای سایت کامل باید روی VPS یا هاست Node این‌ها را اجرا کنید:
  npm install --omit=dev
  cp .env.example .env   (رمز را عوض کنید)
  npm start


══════════ فاز ۱ — مدیریت خدمت‌ها از پنل ══════════

فایل‌های سمت مرورگر (index.html, admin.html, common.js, style.css, services.json) مثل قبل جایگزین شوند.

برای کار کردن «افزودن/ویرایش/حذف خدمت» باید روی سرور Node یک فایل جدید هم اضافه شود:

  1) فایل server-part/services-admin.js را کنار server.js بگذارید.
  2) در server.js، قبل از مسیر قدیمی /api/services این چند خط را اضافه کنید
     (مسیر قدیمی /api/services را حذف کنید، ماژول جدید جایگزینش است):

       const mountServices = require('./services-admin');
       const svc = mountServices(app, {
         requireAdmin,                                   // همان middleware که /api/admin/* را قفل می‌کند
         dataDir: path.join(__dirname, 'data'),
         seedFile: path.join(__dirname, 'cafenetakbari', 'services.json')   // فقط بار اول خوانده می‌شود
       });

  3) در مسیر ثبت درخواست (POST /api/requests) به‌جای پیدا کردن خدمت از services.json:
       const service = svc.find(req.body.svcId);
     تا خدمت‌هایی که از پنل ساخته‌اید هم قابل ثبت باشند.

  بعد از ری‌استارت، در پنل تب «خدمت‌ها» ظاهر می‌شود. خدمت‌ها در data/services.json
  و آیکون‌های آپلودی در data/service-icons/ ذخیره می‌شوند (این پوشه را موقع آپدیت پاک نکنید).

دکمه شناور «مدیریت» (پایین سمت راست) در صفحه خوش‌آمد و صفحه اصلی سایت اضافه شد و به admin.html می‌رود.


══════════ فاز ۲ — نصب به‌صورت اپ (PWA) ══════════

فایل‌های جدید: manifest.json ، sw.js ، پوشه icons/ (چهار عکس) — کنار index.html بریزید.
index.html و style.css هم جایگزین شوند.

  • نصب فقط روی آدرس https کار می‌کند (آدرس dl شما https است، مشکلی نیست).
  • اندروید و کروم/اج ویندوز: دکمه «نصب» روی صفحه اصلی ظاهر می‌شود.
  • آیفون: همان کارت، راهنمای «Add to Home Screen» را نشان می‌دهد.
  • بعد از نصب، سایت تمام‌صفحه و بدون نوار مرورگر باز می‌شود.
  • sw.js فقط فایل‌های ثابت را کش می‌کند؛ چت، /api و admin.html هرگز کش نمی‌شوند.
  • وقتی فایل‌های سایت را آپدیت کردید، نسخه جدید خودکار می‌آید (اول شبکه، بعد کش).
    اگر خواستید کش کاملاً تازه شود، عدد v1 را در sw.js به v2 تغییر دهید.
