Synaplan
開源 AI 平台,供企業使用:自行託管的 AI 代理、符合 GDPR 的聊天機器人小工具、RAG 知識庫、WhatsApp 與 Outlook AI、MCP、多模型路由。Docker、Kubernetes 或託管於 Germ
AI 翻譯
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
تطبيق ويب متكامل (Frontend + Backend + Database) لحسينية العترة الطاهرة: تعريف بالحسينية وموقعها، المحاضرات والمجالس، المناسبات، نظام حجز كامل بالفواتير والعربون، التبرعات، المفقودات، معرض الصور، الإشعارات، ولوحة تحكم كاملة لإدارة كل شيء. عربي بالكامل · RTL · Mobile First · لا يحتاج أي اتصال بالإنترنت للعمل. المتطلب الوحيد: Node.js 22 أو أحدث (لا توجد أي حزم npm للتثبيت). • npm run dev — تشغيل مع إعادة التحميل التلقائي عند تعديل الملفات. • npm run reset — مسح كل البيانات وإعادة زرع البيانات التجريبية. • الاختبارات — 33 اختباراً تغطي سيناريو الحجز الكامل والصلاحيات والأمان.檢視完整 README ↗
تطبيق ويب متكامل (Frontend + Backend + Database) لحسينية العترة الطاهرة: تعريف بالحسينية وموقعها، المحاضرات والمجالس، المناسبات، نظام حجز كامل بالفواتير والعربون، التبرعات، المفقودات، معرض الصور، الإشعارات، ولوحة تحكم كاملة لإدارة كل شيء.
عربي بالكامل · RTL · Mobile First · لا يحتاج أي اتصال بالإنترنت للعمل.
المتطلب الوحيد: Node.js 22 أو أحدث (لا توجد أي حزم npm للتثبيت).
npm run seed
npm start
| العنوان | الرابط |
|---|---|
| الموقع | http://127.0.0.1:3000/ |
| لوحة التحكم | http://127.0.0.1:3000/admin |
| فحص الخادم | http://127.0.0.1:3000/api/health |
أوامر أخرى:
npm run dev
npm run reset
node --test "tests/*.test.js"
npm run dev — تشغيل مع إعادة التحميل التلقائي عند تعديل الملفات.npm run reset — مسح كل البيانات وإعادة زرع البيانات التجريبية.لتغيير المنفذ: PORT=8080 npm start
للنشر على الإنترنت: راجع DEPLOY.md — خطوات الرفع على Vercel مجاناً مع قاعدة بيانات سحابية وتخزين صور ونسخ احتياطي يومي.
| الصلاحية | رقم الهاتف | كلمة المرور |
|---|---|---|
| المدير (كل الصلاحيات) | 07700000001 | admin1234 |
| المشرف | 07700000002 | admin1234 |
| مستخدم — أبو علي الموسوي | 07700000010 | user1234 |
| مستخدم — حيدر الكعبي | 07700000011 | user1234 |
| مستخدم — كاظم الجابري | 07700000012 | user1234 |
مهم: غيّر كلمات المرور هذه قبل أي استخدام حقيقي (لوحة التحكم ← المستخدمون).
07700000010 / user1234).سعر اليوم × عدد الأيام + تكلفة الطعام = المجموع الكلي، وتُصدر الفاتورة تلقائياً.المجموع الكلي − العربون = المبلغ المتبقي،
وزر حفظ الفاتورة / طباعة يخرجها بمقاس إيصال حراري 80mm (قابلة للحفظ PDF على الهاتف).مثال محسوب في البيانات التجريبية: 100,000 × 3 أيام = 300,000 + طعام 150,000 = 450,000،
عربون 150,000 → المتبقي 300,000.
كل محاضرة تُعرض بأربعة أسطر بهذا الترتيب:
اسم المحاضرة: الشباب رؤية المستقبل
تقديم المحاضرة: أم سيد محمد الشيرازي
يليها مجلس عزاء عن أم البنين عليها السلام
الملا: الملا حوراء
الحقول في لوحة التحكم (المحاضرات ← إضافة محاضرة):
| الحقل | الوصف |
|---|---|
| اسم المحاضرة | العنوان الرئيسي — مطلوب |
| تقديم المحاضرة | اسم من يُلقي المحاضرة |
| المجلس الذي يليها | يظهر في الواجهة مسبوقاً بكلمة «يليها» تلقائياً |
| اسم القارئ / الملا | قارئ مجلس العزاء الذي يلي المحاضرة |
الحقلان الأخيران اختياريان — إن تركتهما فارغين لا يظهر سطرهما إطلاقاً. البحث في المحاضرات يشمل اسم القارئ أيضاً.
| الصورة | مكانها | الإعداد |
|---|---|---|
| بوست التبرع | قسم التبرعات في الصفحة الرئيسية (قابل للنقر ← صفحة التبرعات) | donation_post |
| بنر التبرع | أعلى صفحة التبرعات | donation_image |
كلتاهما تُرفعان من لوحة التحكم ← الإعدادات العامة ← التبرعات.
النسبة المعتمدة 16:7 ومثبّتة في التصميم، فأي صورة تُرفع تبقى بنفس الإطار دون أن يختل شكل الصفحة. إن تُرك البوست فارغاً يُستخدم البنر تلقائياً.
الشعار يُستخدم تلقائياً في: الهيدر · الشريط الجانبي للوحة التحكم · أيقونة تبويب المتصفح · أيقونة الشاشة الرئيسية على الهاتف عند إضافة الموقع كتطبيق.
طريقتان لتركيب شعارك:
من لوحة التحكم (الأسهل): الإعدادات العامة ← شعار الحسينية ← اختر الصورة ← حفظ. يُطبَّق فوراً في كل مكان.
كملف افتراضي: ضع الصورة في public/img/ باسم logo.png
(أو .webp / .jpg / .svg) — يكتشفها التطبيق تلقائياً دون أي تعديل في الكود.
الأولوية: الشعار المرفوع من لوحة التحكم ← ملف public/img/logo.* ← النسخة المؤقتة المرفقة.
الصيغة المفضّلة: PNG مربّعة 512×512 بخلفية شفافة أو خضراء داكنة.
server/ الخادم: API، قاعدة البيانات، المصادقة، منطق الحجز
lib/ db · http · auth · validate · hijri · uploads · settings · notify · booking
routes/ auth · public · bookings · payments · notifications · admin/*
db/ schema.sql · seed.js
public/ الواجهة: تطبيق الزائر + لوحة التحكم
css/ base · app · admin · print
js/core/ api · router · store · ui · format · hijri · chrome
js/views/ صفحات الزائر
js/admin/ صفحات لوحة التحكم
img/ شعار الحسينية وأيقونة التطبيق وصور التبرع
data/ ملف قاعدة البيانات (SQLite) — انسخه للنسخ الاحتياطي
uploads/ الصور المرفوعة
tests/ اختبارات السيناريو الكامل
تفاصيل المعمارية ومخطط قاعدة البيانات وتدفق الحجز: راجع ARCHITECTURE.md.
لا يوجد أي رقم أو رابط أو سعر مكتوب داخل الكود. كل ما يلي يُدار من اللوحة:
| القسم | ما يمكن التحكم به |
|---|---|
| الإعدادات العامة | اسم الحسينية، الشعار، الوصف، صورة الواجهة، النبذة، العنوان، رابط Google Maps، أرقام الاتصال، العملة، حدود عدد الحضور، أقصى مدة حجز، نسبة العربون، نصوص التنبيهات |
| روابط التواصل | إنستغرام، فيسبوك، واتساب، الاتصال، البريد — تظهر في الفوتر وصفحة «تواصل معنا» |
| طرق الدفع | كي كارد، زين كاش، تحويل رصيد — الاسم والرقم/الكود وتعليمات الدفع ونطاق الاستخدام (عربون/تبرع) |
| الحجوزات | التسعير، العربون، تغيير الحالة، تعديل التواريخ، مراجعة وصولات الدفع، إرسال إشعارات |
| توفر الحسينية | إغلاق أيام محددة للحجز، ومعاينة التواريخ المحجوزة |
| المحاضرات | اسم المحاضرة، تقديم المحاضرة، المجلس الذي يليها، اسم القارئ/الملا، التاريخ، الوقت، المناسبة، الوصف، الصورة، الظهور في «المحاضرة القادمة» وفي التقويم |
| المناسبات | مجلس/مولود/فاتحة/ذكرى وأي نوع آخر |
| معرض الصور | رفع وحذف وترتيب، تحديد صورة رئيسية، تصنيف (خارج/داخل/مناسبات) |
| المفقودات | الصورة، الاسم، الوصف، مكان العثور (قابل للإخفاء)، التاريخ، الحالة (متوفر/تم تسليمه) |
| الإعلانات | صورة، عنوان، وصف، رابط، تاريخ بداية ونهاية، مكان الظهور، تفعيل/إيقاف |
| التبرعات | حملات التبرع + سجل التبرعات للتقارير |
| القوائم | أنواع المناسبات (مع خيار «أخرى» الذي يفتح حقلاً نصياً) وخيارات الطعام |
| المستخدمون | إضافة/تعديل/إيقاف، وتغيير الصلاحيات (للمدير فقط) |
| الإشعارات | إرسال إشعار لمستخدم محدد أو إشعار عام للجميع |
| التقارير | الحجوزات بالشهر، الإيرادات، العربونات، المتبقي، تكلفة الطعام، التبرعات، أكثر أنواع المناسبات حجزاً — مع تحديد فترة زمنية وطباعة |
الواجهة تعرض الشهر الهجري الحالي فقط، مع إمكانية الانتقال إلى الشهر القادم فقط (نطاق أقصاه شهران). يُحسب الشهر الهجري تلقائياً من تاريخ الجهاز باستخدام تقويم أم القرى، وكل تاريخ يُعرض بالهجري والميلادي واسم اليوم معاً.
قيد المراجعة ← بانتظار تعديل السعر ← بانتظار موافقة المستخدم ← بانتظار العربون
← بانتظار تأكيد العربون ← تم دفع العربون ← تم التأكيد ← مكتمل
(وفي أي مرحلة مناسبة: ملغي أو مرفوض).
الانتقالات غير المنطقية محجوبة على الخادم — لا يمكن القفز بين الحالات حتى من لوحة التحكم.
HttpOnly; SameSite=Strict./api/admin/* محروس.التطبيق يعمل بوضعين تلقائياً حسب متغيرات البيئة — نفس الكود بلا أي تغيير:
| الوضع | متى | قاعدة البيانات | الصور |
|---|---|---|---|
file | محلياً أو على استضافة بقرص دائم | data/husseiniya.db | uploads/ |
cloud | على Vercel | Upstash Redis | Vercel Blob / Cloudinary |
للتحقق من الوضع الحالي: GET /api/health يعيد حقل storage.
النسخ الاحتياطي: مهمة يومية تلقائية (1:00 ليلاً) تحتفظ بآخر 14 نسخة.
يدوياً: POST /api/cron/backups، والاستعادة POST /api/cron/backups/restore (للمدير فقط).
محلياً تكفي نسخة من data/husseiniya.db وuploads/.
server/lib/db.js فقط.