المرحلة 6 – المشاريع النهائية (مستمرة)
المشروع 1: CRUD كامل مع المصادقة
- الهدف: بناء API RESTful قوية مع مصادقة آمنة واختبارات.
- التقنيات: Spring Boot, Spring Data JPA (PostgreSQL), Spring Security (JWT), JUnit 5, Testcontainers.
- الميزات: CRUD للكيانات (مثل المهام، المستخدمين)، المصادقة مع roles (ADMIN, USER)، التوثيق باستخدام Swagger.
- اختياري: إضافة واجهة Thymeleaf لعرض/إدارة المهام.
- مثال: API لإدارة المشاريع (الكيانات:
Project
, Task
, User
) مع endpoints محمية.
المشروع 2: رفع الملفات
- الهدف: إضافة وظيفة رفع الملفات إلى API المشروع 1.
- التقنيات: Spring Boot (
MultipartFile
), Amazon S3 أو التخزين المحلي، التحقق من الملفات.
- الميزات: رفع الصور/المستندات المرتبطة بالمهام، التحقق من النوع/الحجم.
- مثال: السماح برفع المرفقات (مثل PDF, PNG) للمهام في API.
المشروع 3: النشر السحابي
- الهدف: نشر API على منصة سحابية مع CI/CD.
- التقنيات: Railway, Heroku, أو AWS (Elastic Beanstalk), GitHub Actions, Docker.
- الميزات: التعبئة كـ JAR/Docker، تهيئة متغيرات البيئة، أتمتة النشر.
- اختياري: تنفيذ التخزين المؤقت باستخدام Redis لتحسين الاستعلامات المتكررة.
- مثال: نشر API المشروع على Railway مع PostgreSQL و CI/CD.
المشروع 4: الخدمات الدقيقة
- الهدف: تقسيم API المشروع 1 إلى خدمات دقيقة منسقة.
- التقنيات: Spring Cloud (Eureka, Gateway), Docker Compose, REST للتواصل.
- الميزات: خدمات دقيقة لـ
Tasks
و Users
، مع اكتشاف الخدمات.
- اختياري: استخدام RabbitMQ للتواصل غير المتزامن بين الخدمات الدقيقة.
- مثال: فصل منطق المهام والمستخدمين إلى خدمتين، منسقتين باستخدام Docker.
المشروع 5: التكامل مع API خارجية
- الهدف: استهلاك API خارجية لتعزيز الوظائف.
- التقنيات: Spring RestTemplate أو WebClient، مصادقة API (مثل OAuth2).
- الميزات: التكامل مع API عامة (مثل إرسال إشعارات عبر البريد الإلكتروني باستخدام SendGrid).
- اختياري: إضافة query GraphQL لاسترداد المهام/المستخدمين وتخزين البيانات الوصفية في MongoDB.
- مثال: إضافة إشعارات بريد إلكتروني عند اكتمال المهام.
أفضل ممارسات المحفظة
- Git: commit لكل ميزة (مثال:
feature/crud
, feature/upload
)، فروع واضحة.
- التوثيق: README يحتوي على الوصف، الإعداد، endpoints، النشر، ولقطات الشاشة.
- النشر: استضافة على GitHub مع رخصة مفتوحة المصدر (مثل MIT).
الموارد