Mouhami
منصة قانونية لمكاتب المحاماة: صياغة الوثائق بالصوت، وإدارة العملاء والقضايا، وإصدار الفواتير، مع تطبيق جوال مرافق.
- دَوري
- مهندس برمجيات Full Stack
- الفترة
- يونيو 2026 — أغسطس 2026
- الحالة
- مُنجز

«محامي» منصّة لإدارة مكاتب المحاماة صُمّمت حول الطريقة التي ينتج بها المحامون مستنداتهم فعلًا: الإملاء. يُملي المحامي نصّه بالعربية، فيتولى خادم Whisper مستضاف ذاتيًا تفريغ الصوت أولًا بأول عبر اتصال WebSocket، ليصل النص مباشرة إلى محرّر مستندات قانونية مُهيكل — فيصبح الإملاء وسيلة الإدخال الأساسية لا ميزة ثانوية.
وإلى جانب مسار الصياغة، تغطي المنصّة العمل اليومي للمكتب: إدارة الموكّلين والقضايا مصنّفةً حسب المنطقة والبلدية، وإصدار الفواتير. ويرافق ذلك تطبيق جوّال مبني بـ React Native يتوسطه زر ميكروفون للإملاء، ضمن نظام تصميم كحلي/ذهبي يدعم الاتجاه من اليمين إلى اليسار.
المشكلة المطلوب حلّها
كانت المشكلة الجوهرية مزدوجة: الإدخال واتجاه الواجهة. فالمحامون الذين يستهدفهم «محامي» يصوغون وثائقهم بالعربية، وجعلُ الإملاء وسيلة الإدخال الأساسية يستلزم تفريغًا صوتيًا عربيًا متدفقًا يصبّ مباشرة في مستند قانوني قابل للتحرير — وقد اعتمد الحل على Whisper مستضاف ذاتيًا بدل واجهات التفريغ الخارجية. وكان على الواجهة كذلك أن تُبنى من اليمين إلى اليسار منذ البداية، لا أن تكون ترجمةً لتصميم من اليسار إلى اليمين.

كيف بُني
يعمل الإملاء كخط معالجة متدفق: يُبثّ الصوت من المتصفح أو التطبيق عبر اتصال WebSocket مؤمّن (wss) إلى خادم Whisper المستضاف ذاتيًا، ويُدرج النص العربي المفرّغ في محرّر مستندات قانونية مُهيكل لا في حقل نصي خام.
وتُصنَّف سجلات الموكّلين والقضايا حسب المنطقة والبلدية، مع تحديد جماعي وصفحة تفصيلية لكل موكّل، وتُنشأ الفواتير من داخل المنصّة. ويجمع كل ذلك نظام تصميم كحلي/ذهبي داعم للاتجاه من اليمين إلى اليسار يمتد إلى تطبيق React Native الذي يتوسط شاشة الإملاء فيه زر الميكروفون.
ماذا يفعل
صياغة بالإملاء الصوتي
يُملي المحامي بالعربية، فيفرّغ خادم Whisper المستضاف ذاتيًا الصوت المتدفق عبر WebSocket ويُدخل النص مباشرة في المستند.
محرّر قانوني مُهيكل
يصل النص المفرّغ إلى محرّر مصمَّم للمستندات القانونية لا إلى حقل نصي عادي، فتحافظ المسودّات على بنيتها.
إدارة الموكّلين والقضايا
إدارة الموكّلين والقضايا مصنّفةً حسب المنطقة والبلدية، مع تحديد جماعي وصفحة تفصيلية لكل موكّل.
اشتراكات بحسب المقاعد
تُسعَّر اشتراكات المكاتب بحسب عدد المقاعد، مع دور محدد لكل عضو في المكتب.
إصدار الفواتير
تُنشأ الفواتير من داخل المنصّة ضمن سير العمل اليومي للمكتب.
تطبيق جوّال مرافق
تطبيق React Native يتوسط شاشته زر ميكروفون للإملاء، بنظام التصميم الكحلي/الذهبي نفسه الداعم للاتجاه من اليمين إلى اليسار.

نظرة أقرب


بُني باستخدام
الواجهة الأمامية
يشغّل Next.js واجهة الويب؛ فنموذج التوجيه والعرض فيه يناسب تطبيقًا يجمع بين محرّر مستندات تفاعلي كثيف وشاشات اعتيادية للموكّلين والقضايا والفوترة.
يمتد TypeScript عبر الويب والخادم والجوّال، فتبقى أنواع النطاق — القضايا والفواتير والاشتراكات — متسقة من طرف إلى طرف.
الهاتف
أتاح React Native بناء التطبيق المرافق — بما فيه شاشة الإملاء ذات الميكروفون المركزي — من قاعدة كود واحدة مع إعادة استخدام هوية المنصّة الكحلية/الذهبية الداعمة للاتجاه من اليمين إلى اليسار.
الخلفية
يبقي Fastify طبقة الـ API سريعة ومنظّمة — مسارات مُتحقَّق منها بالمخططات للموكّلين والقضايا والاشتراكات بأقل حمل ممكن.
البيانات
تحتضن PostgreSQL النواة العلائقية — فالمكاتب والمقاعد والموكّلون والقضايا والفواتير والاشتراكات سجلات مترابطة تتطلب مفاتيح أجنبية وسلامةً في المعاملات.