- بواسطة x32x01 ||
لو بتتعلم Laravel وعايز تنتقل من مرحلة الشرح النظري لتطبيق عملي يشبه المشاريع اللي بتتقابل في سوق العمل، فكورس بناء مشروع Booking SaaS App هيساعدك تطبق اللي اتعلمته في مشروع واحد متكامل.
الفكرة مش مجرد إنشاء نظام لإضافة البيانات وتعديلها وحذفها (CRUD)، لكن بناء منصة لإدارة الأماكن والحجوزات، فيها مستخدمين بصلاحيات مختلفة، ونظام اشتراكات وباقات، ودفع إلكتروني باستخدام Stripe، بالإضافة إلى لوحة تحكم لإدارة المشروع.
والأهم إن الكورس مجاني، وبيشرح المنطق البرمجي (Logic) وراء تنفيذ كل جزء، عشان تفهم ليه بنستخدم طريقة معينة بدل ما تكتفي بنسخ الكود.
وبيجمع المشروع بين مفهومين مهمين:
النظام بيشمل كمان:
في الجزء ده من المشروع، هتتعلم إزاي تدير جداول الحجز وتحدد الأيام والأوقات المتاحة لكل Listing.
الميزة دي بتخليك تتعامل مع بيانات مرتبطة بالوقت، وده جانب مهم في تطبيقات الحجز الحقيقية.
وده بيتم من خلال تطبيق مفاهيم أساسية في Laravel، منها:
عشان كده، المشروع بيستخدم AJAX لتنفيذ عمليات بشكل ديناميكي في الخلفية، وده بيساعد على تحسين تجربة الاستخدام (UX) وجعل التفاعل مع النظام أكثر سلاسة.
هتتعرف هنا على فكرة ربط واجهة المستخدم بالـ Backend وتنفيذ العمليات من غير الحاجة لتحديث الصفحة بالكامل.
الفكرة إن العنصر بيتحدد باعتباره محذوفًا، من غير إزالة سجله بشكل نهائي من قاعدة البيانات.
وده بيسمح بالتعامل مع العناصر المؤرشفة واستعادتها لاحقًا عند الحاجة، بدل فقدان البيانات بمجرد تنفيذ عملية الحذف.
الجزء ده بيشمل مجموعة من المميزات المترابطة.
أولًا: Subscription & Packages
إنشاء باقات اشتراك مختلفة، بحيث يكون لكل باقة مميزاتها الخاصة، ويقدر المستخدم يختار الباقة المناسبة لاحتياجاته.
ثانيًا: Orders & Subscriptions
تنظيم دورة الطلب والاشتراك، بداية من تسجيل الطلب وربطه بالمستخدم والباقة، وصولًا لتفعيل الاشتراك تلقائيًا بعد إتمام الدفع بنجاح.
ثالثًا: Stripe Payment Gateway
دمج بوابة الدفع الإلكتروني Stripe داخل المشروع، مع إمكانية التحكم في إعدادات الدفع العامة (Global Settings) من خلال لوحة الإدارة.
وده جزء عملي مهم لأي مطور عايز يفهم إزاي يربط تطبيق Laravel بخدمات الدفع الإلكتروني بدل الاكتفاء بالمشاريع البسيطة.
ومن خلالها يمكن إدارة:
وده بيساعدك تفهم طريقة أفضل لتنظيم الإعدادات وإتاحتها للأجزاء المختلفة من التطبيق.
مش الهدف إنك تشوف كود وتنسخه وخلاص، لكن تفهم:
تقدر تتابع الشرح من خلال رابط القناة
نصيحة: حاول تطبق كل جزء بنفسك أثناء متابعة الشرح، ومتكتفيش بمشاهدة الفيديوهات. وبعد ما تخلص مرحلة معينة، جرّب تضيف تعديل بسيط من عندك عشان تختبر فهمك للكود.
لأنه بيجمع بين مجموعة من المهارات اللي بيحتاجها مطور Laravel، زي التعامل مع قواعد البيانات، وإدارة المستخدمين والصلاحيات، وتنظيم الحجوزات، وربط خدمات الدفع، وبناء لوحات التحكم.
لكن مهم تعرف إن متابعة الكورس وحدها مش كفاية. القيمة الحقيقية هتظهر لما تقدر تشرح قراراتك البرمجية، وتعدل على المشروع، وتحل المشاكل اللي ممكن تقابلك أثناء التطوير.
لو هدفك تتعلم Laravel من خلال تطبيق عملي متكامل بدل المشاريع الصغيرة المنفصلة، فالمشروع ده فرصة مناسبة تبدأ منها.
الفكرة مش مجرد إنشاء نظام لإضافة البيانات وتعديلها وحذفها (CRUD)، لكن بناء منصة لإدارة الأماكن والحجوزات، فيها مستخدمين بصلاحيات مختلفة، ونظام اشتراكات وباقات، ودفع إلكتروني باستخدام Stripe، بالإضافة إلى لوحة تحكم لإدارة المشروع.
والأهم إن الكورس مجاني، وبيشرح المنطق البرمجي (Logic) وراء تنفيذ كل جزء، عشان تفهم ليه بنستخدم طريقة معينة بدل ما تكتفي بنسخ الكود.
ما هو مشروع Booking SaaS App؟
المشروع عبارة عن تطبيق ويب مبني باستخدام Laravel، هدفه إدارة الأماكن أو الخدمات المتاحة للحجز (Listings)، مع توفير الأدوات اللازمة لإدارة المستخدمين، والمواعيد، والاشتراكات، والمدفوعات.وبيجمع المشروع بين مفهومين مهمين:
- Booking System: نظام لإدارة الأماكن ومواعيد الحجز المتاحة.
- SaaS (Software as a Service): نموذج لتقديم البرنامج كخدمة، يقدر المستخدم يشترك فيها من خلال باقات مختلفة.
إيه اللي هتتعلمه في كورس Laravel Booking SaaS؟
المشروع وصل بالفعل لمراحل متقدمة، ودي أبرز المميزات اللي تم تنفيذها وشرحها لحد دلوقتي.1. إدارة الأماكن والخدمات (Listings) 🏠
هتتعلم إزاي تبني نظام متكامل لإدارة الـ Listings، بداية من إضافتها وتعديل بياناتها، لحد عرضها بشكل منظم في واجهة الموقع (Frontend).النظام بيشمل كمان:
- Image Gallery: إدارة مجموعة صور خاصة بكل Listing وعرضها داخل صفحة التفاصيل.
- Video Gallery: إضافة فيديوهات YouTube وربطها بكل مكان.
- Amenities: إدارة المميزات والخدمات المتاحة، زي Wi-Fi وحمامات السباحة والمطاعم.
2. إدارة مواعيد الحجز (Schedules & Booking Times) 📅
أي نظام حجوزات محتاج طريقة واضحة لتنظيم المواعيد المتاحة.في الجزء ده من المشروع، هتتعلم إزاي تدير جداول الحجز وتحدد الأيام والأوقات المتاحة لكل Listing.
الميزة دي بتخليك تتعامل مع بيانات مرتبطة بالوقت، وده جانب مهم في تطبيقات الحجز الحقيقية.
3. إدارة المستخدمين والصلاحيات (Roles & Permissions) 🔐
من أهم أجزاء المشروع تنفيذ نظام يسمح لكل مستخدم أو وكيل (Agent) بإدارة البيانات الخاصة بيه، من غير ما يقدر يتحكم في بيانات مستخدم تاني.وده بيتم من خلال تطبيق مفاهيم أساسية في Laravel، منها:
- Authentication: التحقق من هوية المستخدم.
- Authorization: تحديد العمليات المسموح للمستخدم بتنفيذها.
- Policies: تنظيم قواعد الوصول للبيانات والعمليات.
- Roles & Permissions: توزيع الصلاحيات حسب دور كل مستخدم داخل النظام.
4. تحسين تجربة المستخدم باستخدام AJAX ⚡
مش كل عملية داخل التطبيق محتاجة إعادة تحميل الصفحة بالكامل.عشان كده، المشروع بيستخدم AJAX لتنفيذ عمليات بشكل ديناميكي في الخلفية، وده بيساعد على تحسين تجربة الاستخدام (UX) وجعل التفاعل مع النظام أكثر سلاسة.
هتتعرف هنا على فكرة ربط واجهة المستخدم بالـ Backend وتنفيذ العمليات من غير الحاجة لتحديث الصفحة بالكامل.
5. استخدام Soft Delete لحماية البيانات
بدل ما يتم حذف الـ Listings نهائيًا من قاعدة البيانات، المشروع بيطبق مفهوم Soft Delete.الفكرة إن العنصر بيتحدد باعتباره محذوفًا، من غير إزالة سجله بشكل نهائي من قاعدة البيانات.
وده بيسمح بالتعامل مع العناصر المؤرشفة واستعادتها لاحقًا عند الحاجة، بدل فقدان البيانات بمجرد تنفيذ عملية الحذف.
بناء نظام اشتراكات ودفع إلكتروني باستخدام Stripe 💳
واحدة من أهم مراحل المشروع هي الانتقال من تطبيق حجوزات تقليدي إلى نظام SaaS يحتوي على اشتراكات وباقات مدفوعة.الجزء ده بيشمل مجموعة من المميزات المترابطة.
أولًا: Subscription & Packages
إنشاء باقات اشتراك مختلفة، بحيث يكون لكل باقة مميزاتها الخاصة، ويقدر المستخدم يختار الباقة المناسبة لاحتياجاته.
ثانيًا: Orders & Subscriptions
تنظيم دورة الطلب والاشتراك، بداية من تسجيل الطلب وربطه بالمستخدم والباقة، وصولًا لتفعيل الاشتراك تلقائيًا بعد إتمام الدفع بنجاح.
ثالثًا: Stripe Payment Gateway
دمج بوابة الدفع الإلكتروني Stripe داخل المشروع، مع إمكانية التحكم في إعدادات الدفع العامة (Global Settings) من خلال لوحة الإدارة.
وده جزء عملي مهم لأي مطور عايز يفهم إزاي يربط تطبيق Laravel بخدمات الدفع الإلكتروني بدل الاكتفاء بالمشاريع البسيطة.
إنشاء لوحة تحكم متكاملة (Admin Dashboard)
المشروع بيحتوي على لوحة تحكم مركزية لإدارة الأجزاء الأساسية من التطبيق.ومن خلالها يمكن إدارة:
- المستخدمين والوكلاء.
- الأقسام والـ Listings.
- باقات الاشتراك.
- الطلبات والاشتراكات.
- الحجوزات.
- إعدادات الموقع العامة.
- إعدادات بوابة الدفع.
وده بيساعدك تفهم طريقة أفضل لتنظيم الإعدادات وإتاحتها للأجزاء المختلفة من التطبيق.
إيه اللي بيميز الكورس عن مجرد مشاهدة أكواد Laravel؟
الميزة الأساسية في الكورس هي التركيز على فهم المنطق البرمجي وراء كل خطوة.مش الهدف إنك تشوف كود وتنسخه وخلاص، لكن تفهم:
- ليه استخدمنا الطريقة دي في تنفيذ الميزة؟
- إزاي الأجزاء المختلفة في المشروع مرتبطة ببعض؟
- إمتى نحتاج نستخدم Policies والصلاحيات؟
- إزاي ننظم البيانات والاشتراكات وعمليات الدفع؟
- إزاي نبني مشروع كبير بشكل تدريجي ومنظم؟
رابط كورس Laravel Booking SaaS المجاني 🎓
الكورس متاح مجانًا على قناة Abdallah Elzayat على YouTube، والمشروع لسه مستمر، مع إضافة مميزات جديدة خلال مراحل التطوير.تقدر تتابع الشرح من خلال رابط القناة
نصيحة: حاول تطبق كل جزء بنفسك أثناء متابعة الشرح، ومتكتفيش بمشاهدة الفيديوهات. وبعد ما تخلص مرحلة معينة، جرّب تضيف تعديل بسيط من عندك عشان تختبر فهمك للكود.
هل المشروع مناسب لإضافته إلى Portfolio؟
أيوه، المشروع ممكن يكون إضافة قوية للـ Portfolio بتاعك، خصوصًا لو نفذت المميزات بنفسك وفهمت طريقة عملها.لأنه بيجمع بين مجموعة من المهارات اللي بيحتاجها مطور Laravel، زي التعامل مع قواعد البيانات، وإدارة المستخدمين والصلاحيات، وتنظيم الحجوزات، وربط خدمات الدفع، وبناء لوحات التحكم.
لكن مهم تعرف إن متابعة الكورس وحدها مش كفاية. القيمة الحقيقية هتظهر لما تقدر تشرح قراراتك البرمجية، وتعدل على المشروع، وتحل المشاكل اللي ممكن تقابلك أثناء التطوير.
لو هدفك تتعلم Laravel من خلال تطبيق عملي متكامل بدل المشاريع الصغيرة المنفصلة، فالمشروع ده فرصة مناسبة تبدأ منها.