Skip to content
Mozn Jamousمزن جاموسEnd-to-End Product Builderصناعة منتجات من الفكرة إلى الإطلاق
Back to workعودة إلى الأعمال

UI/UX · AI Healthcare · GraduationUI/UX · ذكاء اصطناعي صحّي · تخرّجGraduation project — 2025مشروع تخرّج — 2025

BloomBelly — three AIs behind one app.BloomBelly — ثلاثة نماذج ذكاء اصطناعي خلف تطبيقٍ واحد.

An Arabic-first maternal and child health companion. Designed in Figma before a line of Flutter was written — full RTL, bilingual, four user roles — then backed by three specialized AI models orchestrated by Flask.رفيقٌ لصحة الأم والطفل بالعربية أولاً. صُمّم في Figma قبل كتابة أي سطر Flutter — دعمٌ كامل لليمين-لليسار، ثنائي اللغة، أربعة أدوار للمستخدمين — ثم مدعومٌ بثلاثة نماذج ذكاء اصطناعي متخصّصة ينسّقها Flask.

Yearالسنة
2025
Roleالدور
UI/UX Designer + Developerمصمّمة UI/UX + مطوّرة
Stackالتقنيات
FigmaFlutterDartPythonFlaskSupabaseGoogle GeminiLoRARandom ForestIEEE 830
Builtمبنيّ
Real bilingual app — designed and built end-to-end, not a demoتطبيقٌ ثنائي اللغة حقيقي — مُصمَّم ومبنيّ من البداية للنهاية، لا عرض
3 models3 نماذج
Vision, chat, and nutrition behind one interfaceرؤية، ومحادثة، وتغذية خلف واجهةٍ واحدة
Arabic-firstعربي أولاً
Designed in RTL before any Flutter codeصُمّم بالـRTL قبل أي كود Flutter
Refusesيرفض
Calibrated to defer to a doctor rather than guessمُعاير ليُحيل إلى طبيبة بدل التخمين

§ Overviewنظرة عامة

What it is, and what I owned.ما هو، وما الذي تولّيته.

BloomBelly is an Arabic-first health companion for expectant and new mothers: an AI chatbot, a medical-image helper, and a nutrition guide, behind one bilingual interface. It was my graduation project at ASPU — and the brief was to ship a real product, not a slide deck.BloomBelly رفيقٌ صحّي بالعربية أولاً للحوامل والأمّهات الجُدد: روبوت محادثةٍ ذكي، ومساعدٌ للصور الطبية، ودليلٌ تغذوي، خلف واجهةٍ واحدة ثنائية اللغة. كان مشروع تخرّجي في ASPU — وكان المطلوب إطلاق منتجٍ حقيقي، لا عرضَ شرائح.

Roleالدور
Designer + developer (solo)مصمّمة + مطوّرة (منفردة)
Timelineالإطار الزمني
Graduation project · 2025مشروع تخرّج · 2025
Platformالمنصّة
Flutter · iOS + Android
Usersالمستخدمون
Arabic-speaking mothersأمّهات ناطقات بالعربية
Scopeالنطاق
Research → Figma → Flutter → AIبحث ← Figma ← Flutter ← ذكاء اصطناعي
User rolesأدوار المستخدمين
Four, designed separatelyأربعة، صُمّمت منفصلةً

§ Problemالمشكلة

Arabic-first maternal health — in a market of English-first tools.صحة أمومةٍ بالعربية أولاً — في سوقٍ أدواته بالإنجليزية أولاً.

For an expectant mother in the Arab world, the gap between an Arabic search query and a trustworthy clinical answer is enormous. English-language tools dominate digital health. The few Arabic resources that exist are static articles or generic chatbots that hallucinate medical advice — which, in maternal care, is worse than no answer at all.بالنسبة لحاملٍ في العالم العربي، الفجوة بين استعلام بحثٍ عربي وإجابةٍ سريرية موثوقة هائلة. تهيمن الأدوات الإنجليزية على الصحة الرقمية. والموارد العربية القليلة الموجودة إمّا مقالاتٌ ثابتة أو روبوتاتٌ عامة تهلوس نصائح طبية — وهو في رعاية الأمومة أسوأ من لا إجابةٍ على الإطلاق.

The brief was deliberately ambitious: a real, Arabic-first health app for mothers in Damascus. That meant solving the language problem at the design level first, and the engineering level second.كان المطلوب طموحاً عن قصد: تطبيق صحّةٍ حقيقي بالعربية أولاً لأمّهات دمشق. وهذا يعني حلّ مشكلة اللغة على مستوى التصميم أولاً، ثم على مستوى الهندسة ثانياً.

§ Researchالبحث

Mapping the journeys before designing the screens.رسم الرحلات قبل تصميم الشاشات.

Before any UI, I mapped four distinct user journeys in Figma and studied where existing Arabic health tools break down. Two findings shaped everything that followed.قبل أي واجهة، رسمتُ أربع رحلات مستخدمٍ متمايزة في Figma ودرستُ أين تنهار أدوات الصحة العربية الموجودة. شكّل اكتشافان كلّ ما تلا.

Language has registers. Medical information needs the precision of Modern Standard Arabic; a mother asking about her pregnancy needs warmth. The same app has to speak both.للّغة مستويات. المعلومة الطبية تحتاج دقّة العربية الفصحى؛ والأمّ التي تسأل عن حملها تحتاج دفئاً. والتطبيق نفسه عليه أن يتحدّث الاثنين.

A wrong answer is a safety risk, not a UX papercut. A confident chatbot that invents a dosage is a liability. The product had to be designed to know — and show — when it doesn't know.الإجابة الخاطئة خطرٌ على السلامة، لا مجرّد عثرة تجربة. روبوتٌ واثق يخترع جرعةً مسؤوليةٌ خطيرة. كان على المنتج أن يُصمَّم ليعرف — ويُظهر — متى لا يعرف.

The use-case map of the first-time-mother services, written in Arabic.مخطط حالات الاستخدام لخدمات الأم لأول مرة، مكتوباً بالعربية.

§ Users & personasالمستخدمون والـ Personas

Who I designed for.لمن صمّمتُ.

From the four journeys I mapped in Figma, I distilled the people behind them into personas — each with a one-line story, a goal, and the frustration the product had to answer.من الرحلات الأربع التي رسمتها في Figma، استخلصتُ الأشخاص خلفها إلى personas — لكلٍّ قصةٌ من سطرٍ، وهدف، والإحباط الذي كان على المنتج أن يجيبه.

Lina — first-time expectant motherلينا — حاملٌ لأوّل مرّة

Primary user · 28 · Damascusالمستخدمة الأساسية · 28 · دمشق

I want to ask about my pregnancy in Arabic and trust the answer — not get stuck between a stiff article and a chatbot that might be wrong.أريد أن أسأل عن حملي بالعربية وأثق بالجواب — لا أن أعلق بين مقالٍ متيبّس وروبوتٍ قد يخطئ.

Goalsالأهداف

Clear, warm guidance for each pregnancy week; a quick read on whether a symptom needs a doctor.إرشادٌ واضحٌ ودافئ لكل أسبوع حمل؛ وقراءةٌ سريعة لما إذا كان عَرَضٌ ما يحتاج طبيبة.

Frustrationsالإحباطات

English-first apps that don't speak her language; Arabic chatbots that confidently invent medical advice.تطبيقاتٌ إنجليزية أولاً لا تتحدّث لغتها؛ وروبوتاتٌ عربية تخترع نصائح طبية بثقة.

Dr. Rana — OB-GYN the app defers toد. رنا — طبيبةُ نساءٍ يُحيل إليها التطبيق

Secondary user · clinicianمستخدمة ثانوية · طبيبة

I want the app to send my patient to me when it isn't sure — so she arrives informed, not misinformed.أريد أن يُحيل التطبيق مريضتي إليّ حين لا يكون متأكّداً — فتصل مطّلعةً، لا مُضلَّلة.

Goalsالأهداف

Patients who arrive with good questions, not myths; a tool that knows its limits.مريضاتٌ يأتين بأسئلةٍ جيدة، لا بخرافات؛ وأداةٌ تعرف حدودها.

Frustrationsالإحباطات

Undoing scary misinformation patients picked up from unreliable sources.تفنيد معلوماتٍ مخيفة مغلوطة التقطتها المريضات من مصادر غير موثوقة.

§ Design strategyاستراتيجية التصميم

Trust was the design constraint everything bent around.كانت الثقة القيد التصميمي الذي انحنى حوله كل شيء.

Every decision traced back to one question: would a mother trust this with a question about her pregnancy? That ruled the model choices, the tone, and the failure states.كلّ قرارٍ يعود إلى سؤالٍ واحد: هل تأتمن أمٌّ هذا على سؤالٍ عن حملها؟ ذلك حكم اختيار النماذج، والنبرة، وحالات الفشل.

Goalالهدف
A health companion mothers trust in Arabicرفيقٌ صحّي تأتمنه الأمّهات بالعربية
Hypothesisالفرضية
Specialized models + an explicit refusal beat one general modelنماذج متخصّصة + رفضٌ صريح يتفوّقان على نموذجٍ عام واحد
Priorityالأولوية
Safety & tone over answer coverageالسلامة والنبرة قبل تغطية الإجابات
Tradeoffالمفاضلة
Fewer impressive demo answers, in exchange for trustإجابات عرضٍ مبهرة أقل، مقابل الثقة

§ Design processعملية التصميم

RTL isn't a checkbox. It's a design language.اليمين-لليسار ليس خانة تأشير. إنه لغة تصميم.

Every screen lived in Figma — in Arabic — before a single Flutter widget existed. Designing Arabic-first surfaced decisions that English-first tools never force you to make.كلّ شاشةٍ عاشت في Figma — بالعربية — قبل وجود أي عنصر Flutter واحد. التصميم بالعربية أولاً أظهر قراراتٍ لا تُجبرك أدوات الإنجليزية أولاً على اتخاذها أبداً.

01

MSA for medical, Levantine for conversational.الفصحى للطبّي، والشامية للمحادثة.

Challengeالتحدّي

Medical information needs the precision of Modern Standard Arabic. But a chatbot that answers in stiff MSA feels cold — the wrong tone for a mother asking about her pregnancy.المعلومة الطبية تحتاج دقّة العربية الفصحى. لكن روبوتاً يجيب بفصحى متيبّسة يبدو بارداً — نبرةٌ خاطئة لأمٍّ تسأل عن حملها.

Decisionالقرار

MSA for all medical content — diagnoses, nutrition data, image descriptions. A warmer, Levantine-leaning register for the chatbot's conversational surface.الفصحى لكل المحتوى الطبي — التشخيصات، وبيانات التغذية، وأوصاف الصور. ومستوًى أدفأ يميل للشامية لسطح المحادثة في الروبوت.

Outcomeالنتيجة

The distinction is invisible to users but felt immediately. The chatbot reads like a knowledgeable friend, not a medical disclaimer.التمييز غير مرئيٍّ للمستخدمين لكنه مُحَسٌّ فوراً. يُقرأ الروبوت كصديقةٍ عليمة، لا كإخلاء مسؤوليةٍ طبي.

01 / 04

Bilingual, Arabic-firstثنائيّ اللغة، عربيٌّ أولاً

Full Arabic and English with complete RTL — designed Arabic-first, so neither language reads like an afterthought.عربيّة وإنجليزية كاملتان مع دعم RTL تامّ — صُمّم بالعربية أولاً، فلا تبدو أيّ لغةٍ إضافةً لاحقة.

§ Technical architectureالبنية التقنية

One Flutter app. Three specialized models. One Flask brain.تطبيق Flutter واحد. ثلاثة نماذج متخصّصة. عقل Flask واحد.

I treated the AI layer as three independent capabilities, because real maternal questions don't fit one model. Flask routes incoming requests to the right model based on intent classification, then formats Arabic responses with source citations. Supabase handles auth, profile, pregnancy-week tracking, and stores conversation history for continuity between sessions.تعاملتُ مع طبقة الذكاء الاصطناعي كثلاث قدراتٍ مستقلّة، لأن أسئلة الأمومة الحقيقية لا تناسب نموذجاً واحداً. يوجّه Flask الطلبات الواردة إلى النموذج المناسب بناءً على تصنيف النيّة، ثم يُنسّق الردود العربية مع استشهاداتٍ بالمصدر. ويتولّى Supabase المصادقة والملفّ الشخصي وتتبّع أسبوع الحمل، ويُخزّن سجلّ المحادثات للاستمرارية بين الجلسات.

Architectureالبنية · BloomBelly system topologyنظام BloomBelly

SVG

CLIENTFlutter AppiOS · Android · RTLORCHESTRATORPython · Flaskintent → routingVISIONGoogle GeminiQ&A · ARABICLoRA Transformercalibrated refusalsNUTRITIONRandom ForestDATA · AUTHSupabase · Postgres
Flutter client → Flask orchestrator → 3 AI models, auth-gated by Supabase.عميل Flutter ← مُنسّق Flask ← ٣ نماذج ذكاء اصطناعي، محميّة بمصادقة Supabase.
Imaging modelنموذج التصوير
Google Gemini
Chatbot modelنموذج المحادثة
LoRA-tuned LLMنموذج لغوي مضبوط بـLoRA
Nutrition modelنموذج التغذية
Random Forest
Orchestratorالمنسّق
Python · Flask
Auth & dataالمصادقة والبيانات
Supabase
Clientالعميل
Flutter · iOS + Android
ADR-001

Three models, each with its own purpose-built screen.ثلاثة نماذج، لكلٍّ شاشةٌ مبنية لغرضها.

Contextالسياق

A single fine-tuned LLM could answer questions, classify nutrition, and describe images. One model, one screen, one deployment surface.نموذج لغوي واحد مضبوط يمكنه الإجابة وتصنيف التغذية ووصف الصور. نموذج واحد، شاشة واحدة، سطح نشرٍ واحد.

Decisionالقرار

Three specialized models — Gemini for vision, a LoRA-tuned transformer for Q&A, Random Forest for nutrition. Each gets a purpose-built screen designed around how that capability is actually used: camera for imaging, chat for Q&A, a guided form for nutrition.ثلاثة نماذج متخصّصة — Gemini للرؤية، ومحوّل مضبوط بـLoRA للأسئلة، وRandom Forest للتغذية. لكلٍّ شاشةٌ مبنية لغرضها مصمّمة حول كيفية استخدام تلك القدرة فعلاً: كاميرا للتصوير، ومحادثة للأسئلة، ونموذجٌ موجَّه للتغذية.

Consequencesالنتائج

Each model is auditable in isolation — critical for a healthcare context. The UX is cleaner too: users pick the right tool for the question instead of one modal that tries to do everything.كلّ نموذجٍ قابلٌ للتدقيق منفرداً — أمرٌ حاسم في سياقٍ صحّي. والتجربة أنظف أيضاً: يختار المستخدمون الأداة المناسبة للسؤال بدل نافذةٍ واحدة تحاول فعل كل شيء.
ADR-002

Supabase + Flask for session continuity.Supabase + Flask لاستمرارية الجلسات.

Contextالسياق

Firebase is the default for student healthcare apps. Cheaper start, faster auth, no servers to manage.Firebase هو الخيار الافتراضي لتطبيقات الصحة الطلابية. بدايةٌ أرخص، مصادقةٌ أسرع، لا خوادم لإدارتها.

Decisionالقرار

Postgres-backed Supabase + a Flask orchestrator. The clinical context required real relational data (cycles, conditions, visits) and conversation history that persists across sessions.Supabase مدعومٌ بـPostgres + منسّق Flask. تطلّب السياق السريري بياناتٍ علائقية حقيقية (دورات، حالات، زيارات) وسجلّ محادثاتٍ يستمرّ عبر الجلسات.

Consequencesالنتائج

Users don't repeat themselves to the chatbot — that continuity is the experience. RLS gave per-profile isolation for free; the operational overhead was worth it.لا يُكرّر المستخدمون أنفسهم للروبوت — تلك الاستمرارية هي التجربة. ومنح RLS عزلاً لكل ملفٍّ شخصي مجاناً؛ وكان العبء التشغيلي يستحقّ.

§ Challengesالتحدّيات

What was hard, and the tradeoffs I took.ما كان صعباً، والمفاضلات التي اتخذتها.

Arabic rendering, not the AI, was the long pole. Calling a model is a few lines of code. Numbers, punctuation, and English drug names inside Arabic sentences each needed explicit BiDi handling, verified on real devices across both platforms.كان عرض العربية، لا الذكاء الاصطناعي، هو العقبة الكبرى. استدعاء نموذجٍ بضعة أسطر برمجية. أما الأرقام وعلامات الترقيم وأسماء الأدوية الإنجليزية داخل الجمل العربية فاحتاج كلٌّ منها معالجة BiDi صريحة، تحقّقتُ منها على أجهزةٍ حقيقية على المنصّتين.

ADR-003

Calibrated refusals — designed as a first-class state, not an error.رفضٌ معاير — مُصمَّم كحالةٍ من الدرجة الأولى، لا كخطأ.

Contextالسياق

A confident LLM that hallucinates dosages is dangerous in maternal care. Generic Arabic chatbots fail badly here.نموذجٌ لغوي واثق يهلوس الجرعات خطيرٌ في رعاية الأمومة. والروبوتات العربية العامة تفشل فشلاً ذريعاً هنا.

Decisionالقرار

Below a confidence threshold, the chatbot returns “استشيري طبيبتك / Consult your doctor” instead of guessing — designed in Figma as a warm, non-error state, not a red warning box.تحت عتبة ثقةٍ معيّنة، يردّ الروبوت بـ «استشيري طبيبتك» بدل التخمين — مصمَّمةً في Figma كـحالةٍ دافئة غير خطأ، لا صندوق تحذيرٍ أحمر.

Consequencesالنتائج

Trust over benchmark. Fewer impressive demo answers, but the product is safe to put in front of real mothers. The design treatment of the refusal mattered as much as the threshold.الثقة قبل المقياس. إجابات عرضٍ مبهرة أقل، لكن المنتج آمنٌ ليوضع أمام أمّهاتٍ حقيقيات. وعالجَ التصميمُ الرفضَ بأهمّيةٍ موازية للعتبة نفسها.

§ Outcomesالنتائج

A real, defensible product — and a way of working.منتجٌ حقيقي قابل للدفاع — وطريقة عمل.

BloomBelly shipped as a working Arabic-first app and was the basis of my graduation project: three AI capabilities behind one bilingual interface, calibrated to defer to a clinician rather than guess. No hallucinated medical advice by design.أُطلق BloomBelly كتطبيقٍ عربي أولاً يعمل، وكان أساس مشروع تخرّجي: ثلاث قدرات ذكاء اصطناعي خلف واجهةٍ واحدة ثنائية اللغة، مُعايرة لتُحيل إلى الطبيبة بدل التخمين. لا نصائح طبية مهلوسة، بحكم التصميم.

The lasting result is a method. The Figma prototype — Arabic screens first, English second — became the spec; when something looked wrong in Flutter, the Figma file was the reference. Designing before building saved weeks, and it's how I've worked on every product since.النتيجة الباقية منهجية. صار نموذج Figma — شاشات عربية أولاً، إنجليزية ثانياً — هو المواصفة؛ وحين بدا شيءٌ خطأً في Flutter، كان ملف Figma هو المرجع. التصميم قبل البناء وفّر أسابيع، وهكذا عملتُ على كل منتجٍ منذ ذلك الحين.

§ Validationالتحقّق

How I'd test it with mothers.كيف سأختبره مع الأمّهات.

The architecture is ready for evaluation; the evidence is the next step. The plan is a moderated usability study with Arabic-speaking mothers around three core tasks — ask a medical question, interpret a calibrated refusal, and run a growth check — then synthesize the sessions into an affinity diagram and translate the clusters into prioritized insights.البنية جاهزة للتقييم؛ والدليل هو الخطوة التالية. الخطة دراسة قابلية استخدامٍ موجَّهة مع أمّهاتٍ ناطقاتٍ بالعربية حول ثلاث مهامّ أساسية — طرح سؤالٍ طبي، وتفسير رفضٍ معاير، وإجراء فحص نموّ — ثم تركيب الجلسات في مخطّط تقارب (affinity diagram) وترجمة العناقيد إلى أفكارٍ مرتّبة الأولوية.

  • P0The calibrated-refusal state must read as caring guidance, not an error — it's the moment trust is won or lost.حالة الرفض المعاير يجب أن تُقرأ كإرشادٍ عطوف، لا كخطأ — فهي اللحظة التي تُكسَب فيها الثقة أو تُفقَد.
  • P1Mixed Arabic/English medical terms must render correctly on real devices before any answer can be judged.المصطلحات الطبية المختلطة عربي/إنجليزي يجب أن تُعرَض صحيحةً على أجهزةٍ حقيقية قبل الحكم على أي إجابة.
  • P2Onboarding should explain the four user roles without a wall of text.التهيئة ينبغي أن تشرح أدوار المستخدمين الأربعة دون جدارٍ من النصّ.

§ Reflectionتأمّل

What I'd carry forward.ما سأحمله معي.

BloomBelly taught me that in a regulated domain the interesting work is the restraint: deciding what the product should refuse to do. The calibrated-refusal pattern and the Figma-first method are the two things I've reused on every project since.علّمني BloomBelly أن العمل المثير للاهتمام في مجالٍ منظَّم هو الانضباط: تقرير ما الذي ينبغي للمنتج أن يرفض فعله. ونمطُ الرفض المعاير ومنهجُ Figma-أولاً هما الشيئان اللذان أعدتُ استخدامهما في كل مشروعٍ منذ ذلك الحين.

If I took it further, the next step is real clinical validation and structured testing with mothers — the architecture is ready for it; the evidence is what a production health product would need next.لو مضيتُ به أبعد، فالخطوة التالية تحقّقٌ سريري حقيقي واختبارٌ منظَّم مع الأمّهات — البنية جاهزة لذلك؛ والدليل هو ما يحتاجه منتجٌ صحّي إنتاجي تالياً.