+965 9727 1175 info@a1-soft.com

المميزات الكاملة لـ 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