Skip to content
Mozn Jamousمزن جاموس
Back to workعودة إلى الأعمال

Healthcare · Multi-tenant · Design and QAرعاية صحية · متعدّد المستأجرين · تصميم واختبار

Eda: three apps, and one isolated tenant per clinic.Eda: ثلاثة تطبيقات، ومستأجِر معزول لكل عيادة.

A multi-tenant clinics platform built with a collaborator (@xvtu2003): three Flutter apps over a NestJS and TypeScript backend. He wrote the backend and the apps. My two jobs were design and testing. Working from the project requirements, I designed the screens across all three apps, and I was the person who verified the system, including whether one clinic could reach another's data.منصّة عيادات متعدّدة المستأجرين بُنيت مع متعاون (@xvtu2003): ثلاثة تطبيقات Flutter فوق خادم NestJS وTypeScript. هو كتب الخادم والتطبيقات. ومهمّتاي كانتا التصميم والاختبار. انطلاقاً من متطلبات المشروع صمّمتُ الشاشات عبر التطبيقات الثلاثة، وكنتُ من تحقّق من النظام، ومنه ما إذا كانت عيادة تستطيع الوصول إلى بيانات أخرى.

Yearالسنة
2026
Roleالدور
Designer + QA engineerمصمّمة + مهندسة اختبار
Stackالتقنيات
FlutterNestJSTypeScriptMulti-tenantFigmaManual QA
3
Flutter apps, from patient to clinic adminتطبيقات Flutter، من المريض إلى إدارة العيادة
Multi-tenantمتعدّد المستأجرين
Every clinic isolated as its own tenantكل عيادة معزولة كمستأجِر خاص بها
NestJS
One TypeScript backend behind the appsخادم TypeScript واحد خلف التطبيقات
Testedمُختبَر
Verified, the separation between clinics includedتحقّقتُ منه، ومنه الفصل بين العيادات

§ Overviewنظرة عامة

What it is, and what I did.ما هو، وما الذي فعلته.

Every clinic shares one system while staying walled off from the rest, and that is where the difficulty sits. Of my two responsibilities, the testing is the one that mattered most here.كل عيادة تتشارك نظاماً واحداً مع بقائها معزولة عن الباقي، وهنا تقع الصعوبة. ومن مسؤوليّتَيّ، الاختبار هو ما كان الأهمّ هنا.

My roleدوري
Designed the screens, ran the testingصمّمتُ الشاشات، وتوليتُ الاختبار
Teamالفريق
Built with @xvtu2003بُني مع @xvtu2003
Domainالمجال
Healthcare, clinic operationsرعاية صحية، وعمليات العيادات
Appsالتطبيقات
3 Flutter apps3 تطبيقات Flutter
Backendالخادم
NestJS · TypeScript
Architectureالبنية
Multi-tenantمتعدّد المستأجرين

§ The problemالمشكلة

Many clinics on one system, with nothing leaking.عيادات كثيرة على نظام واحد، ولا شيء يتسرّب.

The point of a multi-tenant platform is leverage: build it once and serve every clinic. The risk sits on the other side of the same coin. Everyone shares the same software, so the boundary between one clinic's patients and another's has to be absolute. In healthcare, a leak across that line is a breach rather than a bug, and that is why somebody had to test for it deliberately.جوهر المنصّة متعدّدة المستأجرين هو الرافعة: ابنِها مرة واحدة واخدم كل عيادة. والخطر يقف على الوجه الآخر للعملة نفسها. الجميع يتشارك البرمجية ذاتها، فالحدّ بين مرضى عيادة ومرضى أخرى يجب أن يكون مطلقاً. وفي الرعاية الصحية التسرّب عبر هذا الخطّ خرقٌ لا خلل، ولهذا كان على أحدٍ أن يختبره عن قصد.

§ Three appsثلاثة تطبيقات

Different users, one coherent system.مستخدمون مختلفون، نظامٌ واحد متماسك.

The platform splits into separate apps for separate users instead of loading one app with modes. Working from the project requirements, I designed the screens across all of them, keeping shared patterns and shared language so they still feel like one product while each stays focused on its own job.تنقسم المنصّة إلى تطبيقات منفصلة لمستخدمين منفصلين بدل أن يُثقَل تطبيق واحد بأوضاع. انطلاقاً من متطلبات المشروع صمّمتُ الشاشات عبرها كلها، محافظةً على أنماط ولغة مشتركة كي تبقى منتجاً واحداً في الإحساس، مع بقاء كل واحد مركّزاً على وظيفته.

Patient appتطبيق المريض
The clinic's end usersالمستخدمون النهائيون للعيادة
Clinic adminإدارة العيادة
Day-to-day operationsالعمليات اليومية
Second adminمشرف ثانٍ
Platform-level oversightإشراف على مستوى المنصّة
Sharedمشترك
One design language across all threeلغة تصميم واحدة عبر الثلاثة

App screens

Visual placeholder · add exportصورة مؤقتة · أضف التصدير

Patient and clinic-admin screens. Export still to add.شاشات المريض وإدارة العيادة. التصدير لم يُضَف بعد.

§ Testingالاختبار

My job was to make sure it worked, and stayed separate.كانت مهمّتي أن أتأكّد أنه يعمل، ويبقى منفصلاً.

Alongside the design, I did the testing. In a multi-tenant system the everyday flows matter, and so does one thing most apps never have to think about: whether the wall between tenants holds.إلى جانب التصميم توليتُ الاختبار. في نظام متعدّد المستأجرين تهمّ التدفّقات اليومية، ويهمّ أيضاً أمر لا تفكّر فيه معظم التطبيقات: هل يصمد الجدار بين المستأجرين.

I worked through the platform across all three apps, checking the normal flows against the spec and then verifying the part that matters most here: that data, actions and views stayed scoped to the right clinic, and that nothing from one tenant showed up in another. Wherever the behaviour did not match the requirements, I wrote it up to be fixed.عملتُ خلال المنصّة عبر التطبيقات الثلاثة، أراجع التدفّقات الطبيعية مقابل المواصفة ثم أتحقّق من الجزء الأهمّ هنا: أن تبقى البيانات والإجراءات والعروض محصورة في العيادة الصحيحة، وألّا يظهر شيء من مستأجِر في آخر. وحيثما لم يطابق السلوك المتطلبات كتبتُه ليُصلَح.

§ Reflectionتأمّل

What I took from it.ما الذي خرجتُ به.

Eda is where designing across several surfaces, and testing a system whose hardest requirement is invisible, became concrete for me. The habit it left me with is to find the one guarantee a product cannot break, then make sure somebody has actually tested that it doesn't.في Eda صار التصميم عبر عدّة أسطح، واختبار نظام أصعبُ متطلّباته غير مرئي، أمراً ملموساً لي. والعادة التي تركها لي أن أجد الضمان الوحيد الذي لا يمكن للمنتج كسره، ثم أتأكّد أن أحداً اختبر فعلاً أنه لا يُكسَر.