Digitalgardn
منصّة تجمع المستقلّين بالعملاء: واجهة برمجة REST بـLaravel وواجهة بـReact، أنجزتُهما وحدي. ينشر المستقلّون خدماتهم، ويطلب العملاء ويؤدّون من محفظة، ويتحادث الطرفان فوريًّا، ويُدير المنصّةَ فضاءٌ للإدارة.

أُنجز بـ
- Laravel
- PHP
- MySQL
- Laravel Sanctum
- Laravel Reverb
- Pusher
- React
- Vite
- Redux Toolkit
- TanStack Query
- React Hook Form
- Zod
- Axios
- Tailwind CSS
- shadcn/ui
- WebSocket
الدور
المطوّر الوحيد، للواجهة الخلفية والأمامية، من أوّل سطر إلى آخره.
المشكلة
المنصّة ليست تطبيقًا واحدًا بل تطبيقات يجب أن تتوافق: كتالوغ، وطلب بآلة حالات، ومال في محفظة، ومحادثة، وفضاء إدارة فوق ذلك كلّه. كلٌّ منها يُبنى وحده؛ والصعوبة أنّ طلبًا يغيّر حالته عليه أن يحرّك المال ويفتح محادثة ويصل إلى متصفّحين في الوقت نفسه.
المقاربة
تُتحقَّق انتقالات الحالة انطلاقًا من دور المُنادي لا ثقةً بالعميل، ويُطلق كلُّ انتقال حدثًا تُنصت إليه المحفظةُ والمحادثةُ والمتصفّحان — عبر Laravel Reverb على قنوات خاصّة، مع إبطال ذاكرة الواجهة بالحدث نفسه. أمّا البديل البديهي، أي الاستقصاء المتكرّر وترك العميل يقرّر ما يحقّ للبائع، فقد استُبعد: لأنّه يضع القاعدة في أقلّ موضع قادر على فرضها.
النتيجة
تغطّي المنصّة المسار كاملًا: التسجيل، وكتالوغ عمومي، وطلب، وأداء من المحفظة، ومحادثة، وتقييم، وفضاء إدارة بإحصاءات وتدبير للمحتوى. نُشرت برخصة MIT وشيفرتها عمومية.