1 — نظرة عامة وهدف المشروع
بناء واجهة أمامية تفاعلية وحديثة لموقع ويب (SPA — Single Page Application) باستخدام React.js تتيح للمستخدمين التصفح، تسجيل الدخول، عرض عناصر/محتوى، وإدارة حساباتهم. الواجهة ستكون قابلة للتوسع، متجاوبة (responsive)، وسهلة الربط مع Backend (REST API أو GraphQL).
نوع المشروع النموذجي: منصة محتوى / متجر بسيط / لوحة إدارة مستخدم — الوصف قابل للتكييف.
2 — المتطلبات الوظيفية الأساسية
صفحة رئيسية تعرض محتوى مميز وكروت عناصر.
صفحات قوائم (listing) مع بحث، فلترة، وترقيم صفحات (pagination).
صفحة تفاصيل عنصر (detail).
تسجيل / تسجيل دخول / استعادة كلمة المرور.
لوحة مستخدم (Dashboard) تعرض بيانات المستخدم وإمكانية تعديل الملف الشخصي.
إدارة CRUD للعناصر (باستخدام واجهات API).
رفع صور/ملفات (واجهة لإرسال ملف إلى الخادم).
إشعارات (toasts) ومعالجة الأخطاء بشكل موحد.
حماية صفحات خاصة بالمستخدم (Protected Routes) حسب صلاحياته.
3 — تقنيات وأدوات مقترحة
React.js (Vite أو Create React App) — أنصح Vite لسرعته.
React Router (v6) للتنقل.
إدارة حالة: React Query (لـ data fetching + caching) + Context API أو Zustand/Redux فقط للحالة العالمية غير المتعلقة بالـ server (مثل theme، auth token).
استدعاءات HTTP: fetch API أو axios (مع طبقة services).
Styling: Tailwind CSS (سريع) أو CSS Modules / Styled Components حسب تفضيلك.
TypeScript (مقترح بشدة) لتحسين الجودة، لكن يمكن استخدام JavaScript إذا أردت.
اختبار: React Testing Library + Jest، وE2E: Cypress.
Linting/Formatting: ESLint + Prettier.
Build/CI: GitHub Actions.
نشر: Vercel / Netlify / Firebase Hosting.
4 — مبادئ تصميم واجهة المستخدم
تصميم Mobile-first ومتجاوب.
استخدام مكونات قابلة لإعادة الاستخدام (Buttons, Inputs, Cards, Modal, Toast).
تجربة مستخدم سلسة: skeleton loaders، lazy loading للصور، رسائل خطأ واضحة.
إمكانية التخصيص عبر Theme (فاتح/داكن).
التقنيات المطلوبة
HTML,CSS,Java Script