المميزات الكاملة لـ A1-DorakFull A1-Dorak Feature Set
كل ما تحتاجه منشأتك لإدارة طوابير العملاء - من الكشك الذاتي حتى تقارير المدير العام. مبني وجاهز ومجرب في منشآت حقيقية.Everything your business needs to manage customer queues - from the self-service kiosk to executive reports. Built, deployed, and battle-tested in real businesses.
🏦
البنوك ومراكز الخدمة متعددة الكاونتراتBanks & Multi-Counter Service Centers
عدة كاشيرين بالتوازي، خدمات متشعبة، كبار العملاء، مهارات الموظفين - كله مضبوط.Multiple cashiers in parallel, mixed services, VIP clients, staff skills - all handled.
👥
عدة كاشيرين على نفس الخدمةMultiple Cashiers, Same Service
ثلاثة كاونترات تخدم 'إيداع' بالتوازي - النظام يوزّع التذاكر تلقائياً على أول كاشير يضغط 'التالي'. لا تعارض، لا تذاكر مفقودة.Three counters serving 'Deposit' in parallel - system routes tickets to whichever cashier hits 'Next' first. No conflicts, no lost tickets.
🔀
كاونتر يخدم عدة خدماتMulti-Service Counters
Counter 5 = إيداع + سحب + خدمة عملاء. الكاشير يسحب من أي طابور تابع له تلقائياً. حل البنوك الصغيرة والساعات الهادئة.Counter 5 = Deposit + Withdrawal + Customer Service. Cashier pulls from any of their queues. Perfect for off-peak hours.
Room.AdditionalServiceIds[]
⭐
كاونتر VIP منفصلVIP / Premium Counters
تذكرة VIP تنادي على كاونتر VIP مباشرة. خيار 'حصري' يمنع الكاونتر العادي من سحب تذاكر VIP، أو 'مرن' يسمح بـ fallback.VIP tickets route straight to a VIP counter. Exclusive flag locks the counter to VIP only, or 'flexible' allows fallback.
Room.Tier · ExclusiveTier
🎯
توجيه حسب المهاراتSkill-Based Routing
الكاشير يتكلم روسي؟ سجّل skill='ru' في ملفه. عميل روسي يأخذ تذكرة → النظام يفضّل توجيهه له. مفيد للقروض، الصرف، التخصصات الطبية.Cashier speaks Russian? Tag skill='ru' on their profile. Russian customer arrives → system prefers them. Same for Loans/FX/specialties.
User.Skills[] · Service.RequiredSkills[]
🔄
تبديل مرن للكاشيرFlexible Cashier Swap
كاشير في استراحة → يحرّر كاونتره من زر واحد. زميل آخر يحجزه. كل التحركات مسجّلة في log المراجعة.Cashier on break? One-tap release. Colleague claims it. Every move logged for audit review.
📊
تقارير الفروعBranch Performance
متوسط مدة العملية لكل كاشير، الذروة اليومية، أكثر الخدمات طلباً، نسبة كبار العملاء - بيانات يستخدمها مدير الفرع.Avg handling time per cashier, daily peaks, top services, VIP ratio - data the branch manager actually uses.
🏥
تعدد المنشآت (Multi-Tenant)Multi-Tenant Architecture
منشآت متعددة على خادم واحد، أرقام مستقلة لكل منشأة، صلاحيات معزولة.Multiple businesses on one server with isolated ticket numbering and access.
🏢
منشآت معزولةIsolated Tenants
كل منشأة لها بياناتها الخاصة (عملاء، تذاكر، إعدادات) - لا يصل أحد إلى بيانات الآخرين أبداً.Each business has its own customers, tickets, and settings - full data isolation between clinics.
TenantId on every entity
🔢
ترقيم مستقلIndependent Numbering
D-001 لقسم الأسنان أو الصيانة، G-001 لقسم آخر - تتجدد يومياً تلقائياً.D-001 for one section, G-001 for another - daily auto-reset per clinic.
🌐
9 لغات9 Languages
عربي · إنجليزي · إيطالي · ألماني · روسي · أوكراني · فرنسي · أوردو · تركي. مع كشف تلقائي للمنطقة.Arabic, English, Italian, German, Russian, Ukrainian, French, Urdu, Turkish - with auto region detection.
🔄
RTL أصليNative RTL
ليس ترجمة - التصميم وُلد عربياً، الأرقام والتواريخ والنداءات الصوتية باللهجة المحلية.Not a translation - designed Arabic-first with local numerals, dates, and voice.
🤖
الكشك الذاتي (Self-Service Kiosk)Self-Service Kiosk
يصدر التذكرة بضغطة، يطبعها، يقرأ الهوية، ويعود لحالة الانتظار خلال 30 ثانية.Issue with a tap, print, read ID, and auto-reset in 30 seconds.
👆
واجهة باللمسTouch UI
شاشة ملء - اختيار المنشأة ثم الخدمة بضغطة. أزرار كبيرة، تباين عالٍ، RTL كامل.Full-screen large buttons, high contrast, full RTL - pick branch then service in one tap.
⏳
إعادة تلقائيةAuto-Reset
30 ثانية بدون لمس → يعود الكشك للشاشة الرئيسية للمريض التالي. شريط تقدّم مرئي.30 seconds idle → back to home screen for the next patient. Visible countdown bar.
🔒
وضع كشك مقفلLocked Kiosk Mode
يعطّل F11/Alt-Tab/زر اليمين/التكبير - لا يمكن الخروج إلا بكلمة سر فني.Disables F11, Alt-Tab, right-click, zoom - can't escape without staff password.
📡
يكتشف المنشآت تلقائياًAuto-Discovers Tenants
يستعلم من الخادم عن قائمة المنشآت النشطة لحظياً - لا يحتاج لإعداد يدوي.Pulls active tenants from the server live - no manual config per kiosk.
🖨
الطباعة الحرارية (3 طرق)Thermal Printing - 3 Transports
Bluetooth، USB، شبكة - كل الطابعات الحرارية الشائعة 58mm/80mm.Bluetooth, USB, Network - every common 58mm/80mm thermal printer.
📶
Bluetooth (Web Bluetooth)Bluetooth (Web Bluetooth)
الكشك يقترن بالطابعة من المتصفح مباشرة. يدعم Goojprt، MUNBYN، Xprinter وغيرها.Browser pairs directly with the printer. Supports Goojprt, MUNBYN, Xprinter, and more.
Web Bluetooth · Nordic UART · ESC/POS
🔌
USB (وكيل محلي)USB (Local Agent)
وكيل خفيف بـ Node.js على جهاز الكشك يستقبل أوامر الطباعة من المتصفح.Lightweight Node.js agent on the kiosk PC receives print commands from the browser.
node-thermal-printer · port 7001
🌐
شبكة (TCP 9100)Network (TCP 9100)
الخادم يفتح TCP لطابعة الشبكة مباشرة. Epson TM، Star TSP، Bixolon - كلها مدعومة.Server opens TCP directly to network printer. Epson TM, Star TSP, Bixolon - all supported.
CP864 Arabic · ESC/POS · GS V 0 cut
🇰🇼
عربي على الإيصالArabic on Receipt
رقم التذكرة بحجم كبير، اسم الخدمة عربي، اسم المريض، التوقيت، قص تلقائي.Large ticket number, Arabic service name, patient name, timestamp, auto-cut.
🎯
توجيه ذكيSmart Routing
كل خدمة لها طابعتها (مثلاً طابعة الأسنان، طابعة الاستقبال) - يختار النظام تلقائياً.Each service routes to its own printer (e.g., dental, reception) - system picks automatically.
📊
تقارير الطباعةPrint Telemetry
النظام يسجّل آخر طباعة ناجحة وآخر فشل لكل طابعة - تشخيص فوري للمشاكل.System logs last success / last failure per printer for instant troubleshooting.
💳
قراءة البطاقة المدنيةCivil ID Smart-Card Reader
البطاقة الكويتية على الكشك → الاسم الرباعي والرقم المدني تلقائياً.Kuwaiti Civil ID at the kiosk → auto-fill full name and ID number.
📥
قراءة فوريةInstant Read
ضع البطاقة في القارئ → خلال ثانيتين يُعبأ اسم المريض ورقمه المدني تلقائياً.Insert card → name and Civil ID number auto-filled in 2 seconds.
🔐
تشفير في قاعدة البياناتEncrypted at Rest
الرقم المدني محفوظ مشفراً (AES) - حتى لو نُسخت قاعدة البيانات لا يقرأها أحد.Civil ID stored encrypted (AES) - useless if the database is exfiltrated.
AES-256 + per-tenant key
🚫
قابل للتجاوزSkippable
المريض غير الكويتي أو الذي لا يحمل بطاقة → يضغط 'تخطّي' ويأخذ تذكرة بدون هوية.Non-Kuwaiti patients or those without ID → tap 'skip' for an anonymous ticket.
🔌
قارئ محليLocal Reader Agent
وكيل محلي على الكشك يتعامل مع PC/SC - لا يحتاج إنترنت ولا اتصال بحكومة.Local PC/SC agent - no internet, no government API needed.
▶
مكتب الطبيب / الموظفDoctor / Service Desk
شاشة لكل غرفة - نداء التذكرة التالية، تأجيل، تخطّي، إنهاء الخدمة.One screen per room - call next, defer, skip, finish.
📣
نداء التاليCall Next
ضغطة واحدة → النظام يختار التذكرة التالية حسب الأولوية + الوقت + الغرفة.One click → system picks the next ticket by priority, time, and room.
⏸️
تأجيل (Defer)Defer
المريض غائب أو يحتاج لفحوصات؟ أجّله 5/10/15 دقيقة بدون فقد دوره.Patient absent or needs labs? Defer 5/10/15 min without losing their slot.
⏭️
تخطّيSkip
المريض ما حضر بعد ثلاث نداءات → تُعلّم 'متخطّاة' وتنتقل لمن بعده.Patient didn't show after 3 calls → marked 'skipped' and the queue moves on.
🚪
فتح/إغلاق الغرفةOpen / Close Room
الطبيب في فترة استراحة → يُغلق غرفته بضغطة، التوزيع التلقائي يتجاهلها.Doctor on break? Close the room with a click - auto-routing skips it.
📋
قائمة الانتظارLive Waiting List
جدول لحظي بكل المنتظرين، أوقات الإصدار، أولوياتهم، اسم المريض، رقم بطاقته.Live table of all waiting patients, issue times, priorities, names, IDs.
📝
ملاحظات سريعةQuick Notes
ملاحظات على التذكرة (مثلاً 'حساسية بنسلين') - تظهر للموظف التالي.Per-ticket notes ('penicillin allergy') - visible to the next staff member.
📺
شاشات النداء + النداء الصوتيCall Displays + Voice Announcements
شاشات كبيرة في صالة الانتظار + LED أمام كل غرفة + نداء صوتي بالعربي.Big waiting-room screens + LED above each room + Arabic voice calls.
📣
نداء صوتي عربيArabic Voice
'تذكرة D-007 توجّه إلى عيادة الأسنان 1' - صوت طبيعي، يعمل بدون إنترنت.'Ticket D-007 to Dental Room 1' - natural voice, works offline.
🖥️
شاشة العرض الكبيرةBig Display
ملء الشاشة، آخر 5 تذاكر تم نداؤها، وميض على آخر تذكرة، تخصيص بالقسم.Full-screen, last 5 called tickets, blink on the latest, filter by section.
💡
لوحات LED للغرفCounter LEDs
شاشة LED صغيرة فوق كل غرفة تعرض رقم التذكرة المنادى عليها - حمراء، واضحة من بعيد.Small LED above each door shows the called ticket number - red, visible from afar.
MQTT · A1Q-Hub firmware
🔄
تصفية حسب القسمPer-Section Filtering
شاشة عند الأسنان تعرض تذاكر الأسنان فقط، شاشة الاستقبال تعرض الكل.Display at Dental shows Dental tickets only; reception displays show all.
⚡
التحديث اللحظيReal-time Sync
SignalR + MQTT - كل الأجهزة متزامنة فوراً بدون reload.SignalR + MQTT - every device updates instantly with zero reload.
⚡
SignalR للويبSignalR for Web
WebSocket مفتوح بين الخادم وكل المتصفحات - التحديث في أقل من 100ms.Persistent WebSocket between server and all browsers - sub-100ms updates.
📡
MQTT للأجهزةMQTT for Devices
شاشات LED، أجهزة طابعة، أكشاك ESP32 - كلها تتحدث MQTT مع الخادم.LED panels, printer devices, ESP32 kiosks - all speak MQTT with the server.
a1q/{tenant}/counter/{room}/show
🔁
استرجاع تلقائيAuto-Reconnect
انقطاع الشبكة لحظياً؟ كل الأجهزة تعيد الاتصال تلقائياً وتستلم آخر الحالة.Network blip? All devices auto-reconnect and resync to current state.
🔄
Composite publisherComposite Publisher
حدث واحد على الخادم → ينشر لـ SignalR والـ MQTT في نفس الوقت - لا تأخير.One server event → published to SignalR and MQTT simultaneously, no lag.
📊
التقارير والتحليلاتReports & Analytics
KPIs لحظية + تقارير يومية/أسبوعية/شهرية + تصدير Excel.Live KPIs + daily / weekly / monthly reports + Excel export.
⏱️
متوسط الانتظارAvg Wait Time
لكل خدمة، لكل غرفة، لكل ساعة - يكتشف الاختناقات تلقائياً.Per service, per room, per hour - detects bottlenecks automatically.
🔢
عدد التذاكرTicket Counts
يومي/أسبوعي/شهري، حسب الخدمة، حسب الموظف، حسب القناة (كشك/استقبال/جوال).Daily/weekly/monthly, by service, by staff, by channel (kiosk/reception/mobile).
🏆
أكثر الخدمات طلباًTop Services
ترتيب الخدمات حسب الإقبال - لتقرّر التوسعة وتوزيع الطاقم.Service ranking by demand - plan expansion and staffing.
📥
تصدير ExcelExcel Export
أي تقرير → Excel بنقرة واحدة، يحافظ على الترميز العربي والـ RTL.Any report → one-click Excel, preserving Arabic and RTL.
🔑
نظام التراخيص (License Server)License Server
4 باقات + مفاتيح HMAC + تجديد سنوي + مسح يومي للحالة + حدود سعة مفروضة.4 plans, HMAC keys, annual renewal, daily expiry sweep, enforced capacity limits.
📦
4 باقات4 Plans
Trial (14 يوم، 3 غرف) · Starter (5 غرف · 199 د.ك) · Professional (15 غرفة · 549 د.ك) · Enterprise (1899 د.ك).Trial (14d, 3 rooms) · Starter (5 rooms, 199 KWD) · Pro (15 rooms, 549 KWD) · Enterprise (1899 KWD).
🔐
مفاتيح HMAC-SHA256HMAC-SHA256 Keys
مفتاح Crockford-Base32 (بدون I/L/O/U) قابل للقراءة من فاتورة مطبوعة. لا يمكن تخمينه.Crockford-Base32 keys (no I/L/O/U), readable from a printed invoice, unguessable.
A1Q-XXXXX-XXXXX-XXXXX-XXXXX
📅
تجديد سنويAnnual Renewal
التجديد يمدّد تاريخ الانتهاء + نافذة الصيانة، حتى لو انتهى الترخيص قبل أيام.Renewal extends expiry + maintenance window, even if expired days ago.
🔄
مسح يومي تلقائيDaily Expiry Sweep
Background worker كل 24 ساعة يقلب التراخيص المنتهية إلى Expired ويرسل تنبيهات.Background worker every 24h flips expired licenses and emits alerts.
🚦
حدود السعة مفروضةEnforced Capacity Caps
تحاول إضافة غرفة 16 وأنت على Professional؟ HTTP 402 + رسالة 'ترقية الباقة'.Try to add room #16 on Professional? HTTP 402 + 'upgrade plan' UI dialog.
LicenseGuard · LicenseLimitException
🛡
Offline بعد التفعيلOffline after Activation
التفعيل أونلاين مرة واحدة، بعدها العيادة تعمل أعواماً بدون إنترنت.One-time online activation; runs offline forever after.
⚙️
لوحة الإدارةAdmin Panel
كل الإعدادات في مكان واحد - المنشآت، المستخدمون، الخدمات، الغرف، الطابعات.Every setting in one place - tenants, users, services, rooms, printers.
🏥
إدارة المنشآتTenants
إنشاء منشأة جديدة، تخصيص الموقع الزمني واللغة، حدود الباقة.Create tenants, set timezone and locale, plan limits.
👥
المستخدمون والصلاحياتUsers & Roles
SuperAdmin · TenantAdmin · Reception · Doctor · Viewer - كل دور بصلاحياته.SuperAdmin · TenantAdmin · Reception · Doctor · Viewer - distinct permissions per role.
☰
الخدماتServices
تعريف الخدمات (أسنان، عام، أطفال…)، الكود، اللون، الترتيب، التجميع بقسم.Define services (Dental, General, Pediatrics…), code, color, sort order, group.
⌂
الغرفRooms
تعريف الغرف، ربطها بخدمة، فتح/إغلاق، طوابق متعددة.Define rooms, link to service, open/close, multi-floor.
🖨
الطابعاتPrinters
إضافة طابعات (BT/USB/شبكة)، اختبار طباعة فوري، تتبع نجاح/فشل.Add printers (BT/USB/Net), instant test print, track success/failure.
●
لوحات LEDCounter LEDs
إضافة لوحات LED، ربطها بغرفة، اختبار النداء، إدارة Firmware.Add LED panels, link to rooms, test calls, firmware management.
⭐
التراخيصLicenses
ترخيصك الحالي، الحالة، تاريخ الانتهاء، تنبيه قبل 30 يوم، تفعيل، تجديد.Current license, status, expiry, 30-day warning, activate, renew.
🧹
إعادة تعيين اليومReset Today
نهاية اليوم → نقرة واحدة لمسح تذاكر اليوم وأرقام البداية تعود لـ 001.End of day → one click clears today's tickets, numbering resets to 001.
🔒
الأمان والخصوصيةSecurity & Privacy
JWT بصلاحيات + بيانات المرضى مشفرة + عزل بين العيادات + تسجيل تدقيق.JWT roles + encrypted patient data + tenant isolation + audit logging.
🎫
JWT TokensJWT Tokens
HS256 موقّع بمفتاح ≥32 حرف، مدة الجلسة قابلة للضبط، tenant claim مطلوب.HS256 signed with ≥32-char key, session duration configurable, tenant claim required.
🔐
تشفير البطاقة المدنيةCivil ID at Rest
AES + مفتاح خاص لكل عيادة - حتى المسؤول التقني لا يرى الأرقام بصيغتها.AES with per-tenant key - even the tech admin can't read raw IDs.
🚧
عزل بين العياداتTenant Isolation
Middleware يفرض التطابق بين JWT وX-Tenant-Id - لا اختراق أبداً.Middleware enforces JWT-vs-header tenant match - no cross-tenant access ever.
📜
CORS صارمStrict CORS
مصادر مسموحة محدّدة فقط، لا wildcards، Credentials مدعوم.Explicit allowed origins only, no wildcards, credentials supported.
🚀
النشر والتشغيلDeployment & Operation
On-Premise كامل، LiteDB مدمجة، مثبّت Windows واحد، لا حاجة لخادم SQL.Full On-Premise, embedded LiteDB, single Windows installer, no SQL Server needed.
🏠
On-Premise بالكاملFully On-Premise
يعمل داخل شبكة المركز الطبي - بياناتك لا تغادر مكتبك أبداً.Runs inside the clinic network - data never leaves your premises.
💾
LiteDB مدمجةEmbedded LiteDB
قاعدة بيانات في ملف واحد .litedb - لا تثبيت SQL Server، لا تكاليف ترخيص.Single .litedb file - no SQL Server install, no licensing fees.
📦
مثبّت Windows واحدSingle Windows Installer
ملف .exe واحد يثبّت Backend + كل التطبيقات (الكشك، الشاشة، الإدارة)، خلال 3 دقائق.One .exe installs backend + every frontend (kiosk, display, admin) in 3 minutes.
📱
PWA للجوالMobile PWA
المرضى يضيفونه على الشاشة الرئيسية ويتابعون دورهم لحظياً، بدون تطبيق متجر.Patients add to home screen and track position live - no app store.
🌐
يعمل على شبكة WiFiWorks on WiFi
الكشك وشاشات النداء وأكشاك الموظفين كلها على نفس WiFi - لا حاجة لكابلات.Kiosk, call displays, and staff workstations all on the same WiFi - no cabling.
🔧
Setup WizardSetup Wizard
عند أول تشغيل: 5 أسئلة، يُنشئ الحساب الإداري، الخدمات، الغرف، ترخيص تجريبي 14 يوم.First run: 5 questions create admin user, services, rooms, and a 14-day trial license.
جرّب كل المميزات مجاناً 14 يومTry Every Feature Free for 14 Days
بدون بطاقة ائتمان · المفتاح يصل خلال ثوانٍ · إلغاء في أي وقتNo credit card · Key arrives in seconds · Cancel anytime
🚀 ابدأ الآنStart Now