Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
尚未检测到更新。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 فقط.