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
§ 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.الإجابة الخاطئة خطرٌ على السلامة، لا مجرّد عثرة تجربة. روبوتٌ واثق يخترع جرعةً مسؤوليةٌ خطيرة. كان على المنتج أن يُصمَّم ليعرف — ويُظهر — متى لا يعرف.
§ 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الأهداف
Frustrationsالإحباطات
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الأهداف
Frustrationsالإحباطات
§ 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 واحد. التصميم بالعربية أولاً أظهر قراراتٍ لا تُجبرك أدوات الإنجليزية أولاً على اتخاذها أبداً.
MSA for medical, Levantine for conversational.الفصحى للطبّي، والشامية للمحادثة.
Challengeالتحدّي
Decisionالقرار
Outcomeالنتيجة
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
- Imaging modelنموذج التصوير
- Google Gemini
- Chatbot modelنموذج المحادثة
- LoRA-tuned LLMنموذج لغوي مضبوط بـLoRA
- Nutrition modelنموذج التغذية
- Random Forest
- Orchestratorالمنسّق
- Python · Flask
- Auth & dataالمصادقة والبيانات
- Supabase
- Clientالعميل
- Flutter · iOS + Android
Three models, each with its own purpose-built screen.ثلاثة نماذج، لكلٍّ شاشةٌ مبنية لغرضها.
Contextالسياق
Decisionالقرار
Consequencesالنتائج
Supabase + Flask for session continuity.Supabase + Flask لاستمرارية الجلسات.
Contextالسياق
Decisionالقرار
Consequencesالنتائج
§ 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 صريحة، تحقّقتُ منها على أجهزةٍ حقيقية على المنصّتين.
Calibrated refusals — designed as a first-class state, not an error.رفضٌ معاير — مُصمَّم كحالةٍ من الدرجة الأولى، لا كخطأ.
Contextالسياق
Decisionالقرار
Consequencesالنتائج
§ 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.لو مضيتُ به أبعد، فالخطوة التالية تحقّقٌ سريري حقيقي واختبارٌ منظَّم مع الأمّهات — البنية جاهزة لذلك؛ والدليل هو ما يحتاجه منتجٌ صحّي إنتاجي تالياً.
