انتقل إلى المحتوى الرئيسي

الوحدة 15: المشروع النهائي

هدف المشروع​

تطوير تطبيق كامل يوضح إتقانك لـ Spring Boot من خلال دمج المفاهيم التي تعلمتها طوال الدورة.

المدة المقدرة: 20-30 ساعة


خيارات المشروع​

اختر أحد المشاريع الأربعة التالية:

الخيار أ: منصة التجارة الإلكترونية​

منصة تجارة إلكترونية كاملة مع:

  • كتالوج المنتجات
  • إدارة السلة
  • نظام الطلبات
  • الدفع (محاكاة)
  • الإشعارات

الخيار ب: نظام إدارة المهام​

نظام إدارة المهام/المشاريع مع:

  • إدارة المشاريع والمهام
  • إسناد المهام
  • تتبع الوقت
  • التقارير والإحصائيات
  • إشعارات في الوقت الحقيقي

الخيار ج: API للحجز​

نظام حجز (فنادق، مطاعم، فعاليات) مع:

  • كتالوج الموارد
  • التوافر والتقويم
  • عملية الحجز
  • التأكيد والتذكيرات
  • لوحة تحكم إدارية

الخيار د: التوثيق عبر البريد الإلكتروني (موصى به)​

نظام توثيق كامل مع:

  • تسجيل مع التحقق عبر البريد الإلكتروني
  • تسجيل دخول JWT
  • استعادة كلمة المرور عبر البريد الإلكتروني
  • إدارة الأدوار (USER/ADMIN)
  • إدارة المستخدمين

الخيار هـ: نموذج الاتصال وإدارة العملاء المحتملين​

نظام نموذج اتصال مع إدارة العملاء المحتملين (CRM مبسط):

  • نموذج اتصال عام → ينشئ تلقائيًا عميل محتمل
  • خط تحويل (NEW → CONTACTED → QUALIFIED → CONVERTED)
  • تخزين PostgreSQL للعملاء المحتملين، الرسائل والملاحظات
  • إرسال رسائل بريد إلكتروني تلقائية (إشعار إداري + تأكيد)
  • تذكيرات تلقائية للعملاء المحتملين غير المتصلين (@Scheduled)
  • لوحة تحكم إدارية مع إحصائيات الخط

المتطلبات التقنية​

إلزامية (70 نقطة)​

الفئةالمتطلبالنقاط
الهندسة المعماريةهيكل MVC نظيف5
فصل الطبقات (Controller/Service/Repository)5
DTOs لنقل البيانات5
API RESTنقاط نهاية CRUD كاملة5
رموز HTTP مناسبة3
التحقق من المدخلات (@Valid)5
التخزينSpring Data JPA5
العلاقات بين الكيانات (OneToMany, ManyToMany)5
استعلامات مخصصة3
الأمانتكوين Spring Security5
توثيق JWT5
الأدوار والتصاريح4
الاختباراتاختبارات وحدات (حد أدنى 10)5
اختبارات تكامل (حد أدنى 5)5
تغطية > 60%5

اختيارية (30 نقطة إضافية)​

الفئةالمتطلبالنقاط
التخزين المؤقتRedis caching5
المراسلةتكامل RabbitMQ5
WebSocketالوقت الحقيقي5
DockerDockerfile + docker-compose5
CI/CDخط أنابيب GitHub Actions5
التوثيقSwagger/OpenAPI5
المراقبةActuator + Prometheus5
الخدمات المصغرةهندسة موزعة10

هيكل المشروع​

projet-final/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── projet/
│ │ │ ├── ProjetApplication.java
│ │ │ ├── config/
│ │ │ │ ├── SecurityConfig.java
│ │ │ │ └── WebConfig.java
│ │ │ ├── controller/
│ │ │ │ ├── AuthController.java
│ │ │ │ └── ...Controller.java
│ │ │ ├── dto/
│ │ │ │ ├── request/
│ │ │ │ └── response/
│ │ │ ├── exception/
│ │ │ │ ├── GlobalExceptionHandler.java
│ │ │ │ └── ...Exception.java
│ │ │ ├── model/
│ │ │ │ └── ...Entity.java
│ │ │ ├── repository/
│ │ │ │ └── ...Repository.java
│ │ │ ├── security/
│ │ │ │ ├── JwtService.java
│ │ │ │ └── ...
│ │ │ └── service/
│ │ │ └── ...Service.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── application-dev.yml
│ │ └── application-prod.yml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── projet/
│ ├── controller/
│ ├── service/
│ └── repository/
├── docker-compose.yml
├── Dockerfile
├── README.md
└── pom.xml

التسليمات​

1. الكود المصدري​

  • مستودع GitHub عام أو خاص
  • كود نظيف وموثق
  • README.md كامل

2. التوثيق​

يجب أن يحتوي README.md على:

  • وصف المشروع
  • التقنيات المستخدمة
  • تعليمات التثبيت
  • تعليمات التشغيل
  • توثيق API (نقاط النهاية)
  • لقطات شاشة/عروض توضيحية

3. العرض التوضيحي​

  • فيديو توضيحي (5-10 دقائق)
  • أو عرض تقديمي مباشر
  • عرض الميزات الرئيسية
  • شرح الخيارات التقنية

معايير التقييم​

الدرجة التقنية (60%)​

المعيارالوصفالوزن
الوظائفيعمل التطبيق بشكل صحيح20%
الهندسة المعماريةكود منظم وقابل للصيانة15%
الممارسات الجيدةالالتزام باتفاقيات Spring15%
الاختباراتالتغطية وجودة الاختبارات10%

الدرجة النوعية (25%)​

المعيارالوصفالوزن
الكودالوضوح والقراءة10%
التوثيقREADME والتعليقات10%
إدارة الأخطاءالمتانة5%

درجة العرض (15%)​

المعيارالوصفالوزن
العرض التوضيحيعرض واضح10%
الإجاباتإتقان الموضوع5%

الجدول الزمني المقترح​

الأسبوعالمهام
1التخطيط، إعداد المشروع، نموذج البيانات
2API REST الأساسية، كيانات JPA، المستودع
3خدمات الأعمال، التحقق، DTOs
4الأمان، JWT، التوثيق
5اختبارات الوحدات والتكامل
6الميزات المتقدمة (التخزين المؤقت، المراسلة، إلخ.)
7Docker، CI/CD، التوثيق
8الانتهاء، الاختبارات، إعداد العرض التوضيحي

الموارد​

التوثيق الرسمي​

الأدوات​

  • IntelliJ IDEA أو VS Code
  • Postman أو Insomnia
  • Docker Desktop
  • Git

الأسئلة الشائعة​

س: هل يمكنني العمل في فريق؟​

ج: نعم، فرق من 2-3 أشخاص كحد أقصى. تزداد عبء العمل المتوقع بشكل متناسب.

س: هل يمكنني اقتراح مشروع آخر؟​

ج: نعم، مع الموافقة المسبقة. يجب أن يظهر المشروع نفس المهارات.

س: أي قاعدة بيانات يجب استخدامها؟​

ج: يوصى بـ PostgreSQL. H2 مقبولة للتطوير.

س: هل النشر إلزامي؟​

ج: لا، لكنه موصى به بشدة (نقاط إضافية). الخيارات: Heroku، Railway، AWS، إلخ.


مثال على مشروع​

راجع المواصفات التفصيلية لكل خيار:


حظاً موفقاً!​

هذا المشروع هو فرصة لإظهار كل ما تعلمته.

لا تتردد في:

  • طرح الأسئلة
  • طلب التوضيحات
  • مشاركة تقدمك

العودة إلى الصفحة الرئيسية