هذا المشروع عبارة عن نظام إدارة مهام احترافي مبني باستخدام Java Spring Boot وMySQL (أو PostgreSQL)، يوفر واجهة برمجية (RESTful API) متكاملة وآمنة مع دعم التوثيق باستخدام JWT، ونظام CRUD كامل للمهام، وتقسيم بيانات (Pagination)، ودمج مع خدمة الدفع Stripe، بالإضافة إلى توثيق كامل باستخدام Postman أو Swagger.
1. التوثيق باستخدام JWT
تسجيل مستخدم جديد وتسجيل الدخول.
إصدار JWT عند تسجيل الدخول.
حماية المسارات الحساسة باستخدام Spring Security + JWT.
Middleware (Filter) للتحقق من التوكن.
2. إدارة المهام (CRUD)
Create: إنشاء مهمة جديدة.
Read: عرض المهام حسب المستخدم، مع دعم الفلترة والبحث.
Update: تعديل المهمة.
Delete: حذف المهمة.
كل مهمة مربوطة بمستخدم محدد (Authorization).
3. التقسيم (Pagination + Sorting)
دعم page وsize وsort.
تحسين عرض البيانات من الواجهة الأمامية.
4. تكامل الدفع مع Stripe
إنشاء عملية دفع.
تأكيد الدفع باستخدام Webhook.
ربط الدفع بالمستخدم أو المهمة.
5. توثيق API باستخدام:
Postman Collection (.json)
أو Swagger UI عبر SpringDoc
كود المشروع كامل باستخدام Java Spring Boot.
ملفات إعداد المشروع: pom.xml, application.yml.
توثيق API باستخدام Postman أو Swagger.
قاعدة بيانات SQL جاهزة.
ملف README يشرح طريقة تشغيل المشروع.
تسليم المشروع على هيئة:
ZIP أو GitHub Repository خاص.
Postman collection (.json) أو رابط Swagger.
ملف PDF أو Markdown يشرح API وطرق التشغيل.
1. ملفات التكوين (Configuration Files)
ستتضمن ملفات الإعداد الرئيسية مثل:
pom.xml: يحتوي على جميع التبعيات (dependencies) الخاصة بالمشروع مثل Spring Boot, Spring Security, JPA, Stripe SDK وغيرها.
application.yml أو application.properties: لتخزين إعدادات الاتصال بقاعدة البيانات، إعدادات JWT، مفاتيح Stripe API، وأي إعدادات بيئية أخرى.
2. الطبقات الأساسية للمشروع (Project Layers)
طبقة الكيانات (Entities)
ملفات تمثل الجداول في قاعدة البيانات، مثل:
User.java لتمثيل المستخدم.
Task.java لتمثيل المهام.
وربما Payment.java لتسجيل عمليات الدفع.
كل كيان يحتوي على الخصائص الأساسية + العلاقات (مثل OneToMany، ManyToOne).
طبقة المستودعات (Repositories)
استخدام JpaRepository لتمكين العمليات الجاهزة على قاعدة البيانات بدون كتابة SQL يدوي.
مثل: UserRepository, TaskRepository, PaymentRepository.
طبقة الخدمات (Services)
هذه الطبقة تحتوي على منطق العمل (Business Logic) مثل:
التحقق من صلاحيات المستخدم.
تنفيذ عمليات الدفع.
التعامل مع المهام وتطبيق الفلاتر والتقسيم (pagination).
معالجة الـ JWT (إنشاء/تحقق).
طبقة التحكم (Controllers)
هي المسؤولة عن استقبال طلبات HTTP وتوجيهها للخدمة المناسبة.
طبقة الحماية (Security Layer)
إعداد Spring Security لتأمين المسارات.
SecurityConfig.java: لتحديد القواعد الأمنية.
JwtFilter.java: لاعتراض الطلبات والتحقق من التوكن.
JwtUtil.java: لتوليد وفك التوكن.
طبقة DTOs (Data Transfer Objects)
لفصل الكيانات عن الطلبات والردود (Request/Response).
TaskRequest, TaskResponse
LoginRequest, RegisterRequest
عدد ملفات المشروع 40 ملفًا.
عدد الأسطر 1518سطر كود، اعتمادًا على مستوى التعقيد.