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.
Translation pending
المنصة الرسمية لحسينية العترة الطاهرة — المحاضرات والمجالس، المناسبات، حجز الحسينية، التبرعات والمفقودات.
Translation pending
BusinessJavaScript · CSSGitHub @etratahira-iqOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
تطبيق ويب متكامل (Frontend + Backend + Database) لحسينية العترة الطاهرة: تعريف بالحسينية وموقعها، المحاضرات والمجالس، المناسبات، نظام حجز كامل بالفواتير والعربون، التبرعات، المفقودات، معرض الصور، الإشعارات، ولوحة تحكم كاملة لإدارة كل شيء. عربي بالكامل · RTL · Mobile First · لا يحتاج أي اتصال بالإنترنت للعمل. المتطلب الوحيد: Node.js 22 أو أحدث (لا توجد أي حزم npm للتثبيت). • npm run dev — تشغيل مع إعادة التحميل التلقائي عند تعديل الملفات. • npm run reset — مسح كل البيانات وإعادة زرع البيانات التجريبية. • الاختبارات — 33 اختباراً تغطي سيناريو الحجز الكامل والصلاحيات والأمان.Read the full 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 فقط.