دورة تطوير نظام إدارة الأعراس والمناسبات ودعوات QR عمليًا

تصميم صفحة الدعوة الإلكترونية

تصميم صفحة الدعوة الإلكترونية — نظام إدارة الأعراس والمناسبات ودعوات QR | Next.js وPrisma | أديب الصلوي
وقت الدراسة
13 دقيقة

المسار: تطوير نظام إدارة الأعراس ودعوات QR الوحدة: صفحات الدعوة والواجهة الأمامية

مدخل إلى الدرس: تصميم صفحة الدعوة الإلكترونية

تصميم صفحة الدعوة الإلكترونية — نظام إدارة الأعراس والمناسبات ودعوات QR | Next.js وPrisma | أديب الصلوي

طريقة الدراسة: اقرأ التعريف، تتبّع المثال في الشرح، نفّذه بنفسك، ثم اختبر النتيجة والحالات الاستثنائية قبل الانتقال.

أهداف هذا الدرس

  • تجميع صفحة دعوة جذابة: بطاقة، تفاصيل، خريطة، زر RSVP.
  • إضافة عدّاد أيام متبقية يُحسب على الخادم.
  • تهيئة Tailwind بأرقام وقيم من قاعدة البيانات.

المخطط: مخطط أقسام صفحة الدعوة ومواضعها على الشاشة

flowchart TD
    H["header — شريط 🏷 باستخدام event.name"]
    HR["hero — بطاقة زفاف
بمناسبة زفافهما... + اسم الضيف"] CN["عداد — X يوم متبقٍ (من server)"] DT["تفاصيل — التاريخ · المكان"] RF["RsvpForm — عميل بحد أدنى من props"] H --> HR --> CN --> DT --> RF

مثال

// app/i/[token]/page.tsx (مكمّل التصميم)
const daysLeft = Math.max(
  0,
  Math.ceil(
    (guest.event.date.getTime() - Date.now()) / (1000 * 60 * 60 * 24)
  )
);

Wedding

{guest.event.name}

بمناسبة زفافهما، يُشرفنا حضوركم

{guest.name} و {guest.event.name}

{daysLeft}

يوم

نان сердечко 🍃
التاريخ
{guest.event.date.toLocaleDateString("ar-SA", { weekday: "long", day: "numeric", month: "long" })}
المكان
{guest.event.location}

لماذا history.calendar on server؟

صفحة الدعوة تُظهر للجميع؛ لا خلاف. لكن عند تنسيق التاريخ نستخدم suppressHydrationWarning لتجنّب اختلاف التوقيت المحلي بين الخادم والمتصفح في أول حمولة.

لماذا الديناميكية؟

الخطوط والصور تُصنع عبر Tailwind وكذلك مجالت (bg-[#fff7f0]) — لا نكتب CSS عالمي، بل فئات في الملف. وتُضاف البيانات ديناميكياً حتى لو تغيّرت تفاصيل الحفل في آخر لحظة تعكس القاعدة الحالية.

تمرين تطبيقي: أضف للمكان حقلاً صور suffix وأنشئ رابط خريطة Google يفتح بحدث target=_blank عند الضغط.

أخطاء شائعة يجب تفاديها

  • تهريب تاريخ مركّب بلا suppHydration فيومض اليوم الخطأ.
  • جعل العداد يُحسب على العميل فيفتح للمسّاحات زمنية مختلفة.
  • وضع أزرار المدعوين بلا أثر استجابة فيفتح لغيرها.

معجم مصطلحات الدرس

tailwind فئة
اسم جاهز كـ bg-[#fff7f0] يحدد النمط مباشرة.
suppressHydrationWarning
تجاهل اختلاف أول هيدلة للتاريخ المتغير.
بطاقة الدعوة
كتلة HTML تبرز بيانات الحدث وتجذب للتفاعل.

مراجعة وتمرين تثبيت المهارة

اختبار سريع: اشرح بعبارتك معنى «تصميم صفحة الدعوة الإلكترونية»، ثم بيّن أين ستستخدمه داخل نظام تسجيل حضور دعوات مناسبة عبر رمز QR، وما الخطأ الذي يجب اختباره قبل الاعتماد على الحل.

تحدٍّ إضافي: غيّر شرطًا واحدًا في التطبيق، وتوقع النتيجة، ثم نفّذ الاختبار وفسّر الاختلاف.

الدرس التالي: نموذج الرد RSVP التفاعلي. من الأفضل إنهاء التجربة الحالية قبل متابعة الدرس التالي.

دروس نصية

#1

نظرة عامة على الدورة والمخرجات

#2

مقدمة إلى Next.js وأسباب اختياره

#3

أساسيات schema.prisma والنماذج

#4

مقدمة Route Handlers وبنية الاستجابة

#5

فهم Server Components والجلب الآمن

#6

تصميم الرمز Secured والتوقيع HMAC

#7

بناء الإنتاج وتجنّب أخطاء الحالة المربكة

#8

تحليل المتطلبات وتحديد الكيانات

#9

إنشاء مشروع Next.js وتجربته

#10

نموذج المناسبة Event بالعلاقات

#11

واجهة إنشاء المناسبة POST /api/events

#12

تصميم صفحة الدعوة الإلكترونية

#13

توليد صورة QR من قاعدة الدعوة

#14

نشر المشروع على Vercel

#15

تصميم قاعدة البيانات والعلاقات

#16

تجريب PostgreSQL محلياً وإنشاء قاعدة الداتا

#17

نموذج المدعو Guest مع الرمز الموقّع

#18

واجهات الضيوف الإضافة والقائمة

#19

نموذج الرد RSVP التفاعلي

#20

تجربة المسح في بوابة الحفل

#21

قاعدة بيانات إنتاج مُدارة وأمانها

#22

تدفق الدعوة وقراءة QR من التوليد إلى الحضور

#23

تثبيت Prisma والاتصال بالقاعدة

#24

نموذج الرد Rsvp ومنع التكرار

#25

واجهة تسجيل الحضور POST /api/checkin

#26

صفحة قائمة الضيوف والفرز

#27

واجهة تتفهم حالة الحضور والحصر

#28

إدارة المتغيرات السرية بيئة وواجهة

#29

سيناريو المشروع وقواعد العمل

#30

بنية مجلدات المشروع ومسارات الصفحات

#31

الاستعلام والجلب مع العلاقات

#32

التحقق من المدخلات ومعالجة الأخطاء

#33

لوحة الإحصائيات الحية

#34

تأمين الروابط والهجمات الشائعة

#35

قائمة الفحص النهائي قبل الإطلاق

#36

الترحيلات migrations والبذور seed

عرض الدروس كاملة تحقق من صفحة تعلم الدورة
درس نصي 2/36
أنت تشاهد
تصميم صفحة الدعوة الإلكترونية