تخطي إلى المحتوى
العودة إلى الأعمال

مشروع منصة حجز فعاليات

تطبيق حجز فعاليات full-stack باستخدام Vite React وApollo GraphQL وExpress وMongoDB مع إنشاء فعاليات وحجوزات.

عارض صور المشروع

منصة حجز فعاليات

صورة 1 من 6

فكرة المشروع

منصة حجز فعاليات بواجهة GraphQL — تصفح وبحث فعاليات، حجز وإلغاء، وإدارة فعاليات خاصة بالمستخدم المُنشئ، مع أحداث لحظية عبر GraphQL Subscriptions.

ما الذي تعرضه الواجهة

شبكة فعاليات عربية، نافذتي تفاصيل فعالية (محجوزة بكثافة وغير محجوزة)، صفحتي “حجوزاتي” لمستخدمين مختلفين بتواريخ مقروءة، وشاشة تسجيل دخول.

دوري وقراراتي

لما اكتشفت إن تاريخ الفعالية بيظهر مقروء في صفحة التصفح العامة لكن كرقم epoch خام في “حجوزاتي”، فهمت إن السبب مش خطأ منفصل، لكن استعلام الحجوزات مكانش بيمرّر بيانات الفعالية المُضمَّنة عبر نفس دالة التنسيق (transformEvent) اللي بيستخدمها استعلام الفعاليات العام. الحل كان إعادة استخدام نفس الدالة الموجودة بدل كتابة تنسيق تاريخ منفصل ومكرر، وضفت اختبار end-to-end يتأكد إن الاتنين بيرجّعوا نفس الصيغة. وبدل ما أضيف أيقونة favicon مؤقتة، شلت المرجع القديم الميت لأنه مفيش أصل معتمد فعليًا.

الجوانب التقنية

خادم Apollo/GraphQL بـTypeScript، عميل Vite منفصل، مصادقة بـbcryptjs وJSON Web Tokens، ومنطق حجز/إلغاء مُطبَّق بالكامل في منطق الـresolvers (مش في العميل بس) — بما فيها منع حجز مكرر لنفس المستخدم على نفس الفعالية.

قيمة المشروع داخل المعرض

بيوضح تشخيص علة مبنية على مقارنة سلوك مسارين متشابهين (استعلام عام مقابل استعلام موثّق)، وإصلاح بإعادة استخدام كود موجود بدل تكراره.

عرض أعمال أكثر
عرض خدمات أكثر