Cache Team
منصة مصادر ودعم لطلاب جامعة الزيتونة، خدمت أكثر من ١٠٠ طالب.
- الدور
- قائد الواجهة الأمامية ومُرشد الفريق
- ·
- 2025
- Next.js
- TypeScript
- Node
- Express
- MySQL
- Tailwind
cache-team.comالمشكلة
المواد والخطط والإعلانات كانت موزّعة على مجموعات واتساب متفرقة. كل فصل جديد كانت المعرفة تضيع وتبدأ الدفعة الجديدة من الصفر.
القرار
بنيتها كمنصة محتوى بسيطة بدل ما أبنيها كشبكة اجتماعية. الفريق كان بده تفاعل وتعليقات وملفات شخصية — رفضت، لأن المشكلة كانت التشتّت مش قلة التواصل. وكوني كنت مسؤول عن فريق من ٥ إلى ١٠ متطوعين، اخترت أبسط بنية ممكن أشرحها لمطوّر جديد بربع ساعة.
شو بغيّر اليوم
ما قِسنا إشي. ما كان في أي مؤشر يقول أي مادة بتنفتح فعلاً وأي وحدة ما حدا فتحها. اليوم أول شي بضيفه قبل أي ميزة هو تتبّع بسيط للاستخدام — بنينا على الحدس لمدة فصل كامل.
المشكلة
الكورسات بالفيديو صعب ترجع لنقطة معيّنة فيها. الطالب اللي عالق بمفهوم لازم يدوّر داخل ساعة تسجيل عشان يلاقي ٤٠ ثانية.
القرار
خليته شرائح قابلة للربط والرجوع بدل فيديو مستمر. الكلفة إنه ما في صوت ولا حضور شخصي — وهاد خسارة حقيقية بالتدريس. بس الربح إنه المحتوى صار قابل للفهرسة والرجوع، وهاي كانت المشكلة الأساسية.
شو بغيّر اليوم
بنيت الكورس بالترتيب اللي أنا فهمت فيه React، مش بالترتيب اللي المبتدئ بيحتاجه. أول ثلاث شرائح بتحكي عن مفاهيم ما بتظهر فائدتها إلا بعد أسبوعين. لو رجعت، بأبدأ من شاشة شغّالة وبرجع للمفاهيم لما يحتاجها.
عياداتي
منصة حجز مواعيد طبية.
- الدور
- واجهة أمامية — فريق من ٣
- ·
- 2025
- Next.js
- TypeScript
- React
- MongoDB
3iadati.comالمشكلة
حجز موعد بعيادة صغيرة بالأردن لسه بيصير بمكالمة، وبيفشل بأبسط الحالات: الموظفة مشغولة، أو العيادة مسكّرة، أو المريض بيتصل خارج الدوام.
القرار
صمّمت التدفّق بحيث المريض يقدر يحجز بدون ما يعمل حساب. كل خطوة تسجيل قبل الحجز بتخسّر ناس، والمريض اللي بده موعد مستعجل ما بده يعبّي نموذج. الحساب صار اختياري وبعد الحجز مش قبله.
شو بغيّر اليوم
بنينا لوحة العيادة قبل ما نجلس مع موظفة استقبال وحدة ونتفرّج عليها وهي تشتغل. صمّمنا اللي تخيّلناه إنه سير العمل، مش اللي هو فعلاً. أي مشروع فيه مستخدم داخلي، بصير أجلس معه قبل ما أفتح المحرر.
نظام إدارة مشاريع
نظام تشغيل لشركة: عروض أسعار، دفعات، فرق، ومخزون. أربعة أشهر.
- الدور
- منفرد — عميل في الإمارات
- ·
- 2024
- React
- Vite
- TypeScript
- Supabase
- PostgreSQL
المشكلة
الشركة كانت تدير كل شي على إكسل وواتساب. المعلومة موجودة بس ما حدا يعرف أي نسخة هي الصح.
القرار
اخترت Supabase بدل ما أبني خلفية كاملة من الصفر. مشروع منفرد بمدة أربعة أشهر ما بيتحمّل إني أكتب نظام صلاحيات ومصادقة بنفسي — الوقت لازم يروح على منطق الشغل اللي العميل بيدفع مقابله، مش على إعادة بناء أشياء محلولة.
شو بغيّر اليوم
قبلت تغييرات على النطاق شفهياً وبدون توثيق. الشغل تمدّد، وما كان عندي أي شي مكتوب أرجع له. اليوم كل تغيير بيتكتب ويتسعّر، حتى لو صغير — هاي مش قسوة على العميل، هاي وضوح للطرفين.
المشكلة
النسخة الأولى كانت تطبيق صفحة واحدة بطيء بالتحميل الأول وغير مقروء لمحركات البحث.
القرار
أعدت البناء على Next.js بدل ما أرقّع الموجود. القرار كان مكلف بمنتصف مشروع تخرّج، بس التطبيق كان محتواه عام ولازم ينفهرس — وهاد شي ما بينحل بالترقيع.
شو بغيّر اليوم
أعدت البناء وأنا ما عندي أي قياس. حسّيت إنه بطيء، بس ما قِست. لو كان عندي رقم قبل وبعد، كان القرار صار دفاع بدل إحساس — وكان تعلّمت أكثر من التغيير نفسه.
Blue Pages
دليل أعمال سعودي — قاعدة بيانات كبيرة وحركة حقيقية.
- الدور
- عقد صيانة وتطوير
- ·
- 2025–
- Next.js
- TypeScript
- PostgreSQL
- Drizzle
bluepages.com.saالمشكلة
منتج قائم عليه مستخدمون فعليون، والتعديل عليه لازم يصير بدون كسر شي شغّال.
القرار
بشتغل عليه بمبدأ إنه ما في تغيير كبير دفعة وحدة. الشغل على نظام حيّ عند غيرك غير الشغل على مشروعك — كل تعديل لازم يكون صغير كفاية إنه يترجع بسهولة.
شو بغيّر اليوم
هذا شغل جارٍ عند جهة أخرى، فالتفاصيل اللي أقدر أنشرها محدودة. اللي أقدر أقوله: أكبر درس أخذته منه إنه البيانات الحقيقية دايماً أوسخ من أي شي بتتوقعه — وإنه أي افتراض بتبنيه عن نظافة البيانات رح ينكسر.