منصة إدارة شبكات الإنترنت
المخزون والمبيعات والمالية والموظفون لمنشآت بيع خدمة الإنترنت
منصة إدارة لمنشآت شبكات الإنترنت: الشبكات، المحلات والموزعون، باقات الكروت والمخزون، مالية بالقيد المزدوج وصناديق، العمولات، الإقفال الشهري، و19 تقريرًا، على خلفية ASP.NET Core مع تطبيق Flutter لأندرويد.



- سطر برمجي
- ~160k
- اختبار آلي
- 1,240+
- إجراء API
- ~326
- صلاحية
- 49
الشاشات
قائمة الوحدات للشبكات والمستخدمين والأدوار والبقالات والموزعين والصناديق والمخازن وأنواع الكروت والتقارير
مركز التقارير والتحليلات مع ملخص مباشر ومؤشرات الشبكة واختصارات التقارير
شاشة إنشاء تقرير مع تقارير المستخدمين والمخزون والصناديق والتحصيلات والعمولات وخطوط الإنترنت
شاشة المخازن مع المخزن المركزي للمالك وطلبات توريد الكروت والبحث في المخازن
الشاشات ببيانات تجريبية، وأُزيلت منها أي تفاصيل خاصة بالعملاء.
المشكلة / الحل
المشكلة
منشأة إعادة بيع الإنترنت تحرّك القيمة عبر أيدٍ كثيرة: الكروت تخرج من المخزون إلى الموزعين ثم المحلات، والنقد يعود، والعمولات تُصرف، والخطوط تُشحن يوميًا. وحين يُتابع ذلك في المحادثات والدفاتر، لا أحد يعرف من عليه ماذا حتى ينتهي الشهر.
- مخزون الكروت يتنقل بين الموزعين والمحلات دون سجل موثوق.
- العمولات والديون تُحسب يدويًا آخر الشهر.
- الصناديق والمصروفات غير مرتبطة بدفتر حسابات.
- كل موظف يرى كل الأرقام.
الحل
خلفية تملك المال والمخزون، وتطبيق جوال مبني للأشخاص الذين يحركونهما.
- الشبكات والمحلات والموزعون وأنواع الكروت والباقات في نموذج واحد.
- مالية بالقيد المزدوج مع صناديق وتحويلات وإقفال شهري.
- قواعد العمولات وشحن خطوط الإنترنت متتبعة لكل وكيل.
- 19 نوعًا من التقارير للمالكين والمدراء.
- 49 صلاحية عبر 4 أدوار، واعتماد كل جهاز قبل أن يتمكن من الدخول.
- مراسلة لحظية بين الموظفين.
الهيكلة
الهيكلة
حل .NET بأسلوب Clean Architecture، وفوقه تطبيق Flutter منظم حسب المزايا.
الخلفية
- Domain
- Application (MediatR)
- Infrastructure (EF Core)
- الـ API والعامل الخلفي
البيانات
- PostgreSQL 16
- 43 ترحيلًا
- Outbox
التطبيق
- Flutter + Riverpod
- go_router
- قاعدة محلية مشفرة
التشغيل
- Docker Compose
- nginx
- سكربتات النشر والتراجع والنسخ الاحتياطي
الهندسة
قرارات هندسية
النظام يتعامل مع أموال الآخرين يوميًا، لذلك يفضّل التصميم القواعد الصريحة وإعادة المحاولة الآمنة على الاختصارات الذكية.
- Clean Architecture تفرضها الاختبارات
- ستة مشاريع بقواعد اعتماد ثابتة، وخمسة مشاريع اختبار: وحدة، هيكلة، تكامل، طرف لطرف، وأداء.
- أوامر صريحة لا تحديثات عشوائية
- معالجات MediatR وFluentValidation تجعل كل تغيير صريحًا ومتحققًا منه في مكان واحد.
- آثار جانبية تحدث مرة واحدة
- طابور صادر (outbox) ومفاتيح تفرد تجعل إعادة المحاولة آمنة للعمليات المالية والإشعارات.
- تشفير على الجهاز
- التطبيق يحفظ بياناته في قاعدة مشفرة بـ SQLCipher، مع مكتبة صغيرة كُتبت لتشفير البيانات المخزنة.
- لحظي حيث يلزم
- SignalR يدفع الرسائل والتحديثات للموظفين المتصلين.
- يديره شخص واحد
- سكربتات لتجهيز الخادم والنشر والتراجع، ونسخ احتياطي موقّع ومشفر، والتحقق منه، وتدوير الأسرار.
- مسارات المستخدم مختبرة على الجهاز
- 23 مسار اختبار Maestro من طرف لطرف إلى جانب 568 اختبار Flutter و675 اختبار xUnit.
التقنيات
الخلفية
- ASP.NET Core 10
- EF Core 10
- MediatR
- FluentValidation
- SignalR
- Serilog
البيانات
- PostgreSQL 16
الجوال
- Flutter
- Riverpod 3
- go_router
- dio
- freezed
- drift + SQLCipher
التشغيل
- Docker Compose
- nginx
- GitHub Actions
- FCM
الجودة
- xUnit
- اختبارات Flutter
- Maestro
- Patrol
النتيجة
أين وصل
سُلّم للعميل ويعمل في الإنتاج.
- المخزون والنقد والعمولات في دفتر واحد بدل المحادثات والدفاتر.
- الإقفال الشهري خطوة في النظام، لا عطلة نهاية أسبوع من المطابقة.
- الوصول محدود بالدور وبالجهاز المعتمد.
- الإصدارات تمر عبر بيئات تطوير واختبار وإنتاج منفصلة.
تحتاج شيئًا مثل هذا؟
أخبرني عن العملية التي تريد تنظيمها، وسأحوّلها إلى نظام واضح قبل كتابة أي سطر برمجي.
لنتحدث