Skip to content

المرحلة 4 – الإطارات وتطبيقات الويب (3-4 أشهر)

Spring Boot، Spring Core، و Spring Data JPA

  • Spring Core: حقن التبعيات (@Bean, @Autowired)، حاوية IoC.
  • Spring Boot: الإعداد التلقائي، starters (spring-boot-starter-web, spring-boot-starter-data-jpaapplication.yml.
  • Spring Data JPA: المستودعات (CrudRepository, JpaRepository)، الاستعلامات باستخدام @Query، التصفح.
  • مثال: إنشاء endpoints REST لإدارة المهام (CRUD) في تطبيق المهام.

Spring Security (JWT, OAuth2)

  • المفاهيم: المصادقة، التفويض، مرشحات الأمان.
  • JWT: إنشاء والتحقق من tokens، استخدام JwtAuthenticationFilter.
  • OAuth2: تهيئة Resource Server، التكامل مع مزود (مثل Google).
  • مثال: حماية endpoints المهام باستخدام JWT و roles (ADMIN, USER).

الاختبارات الوحدية والتكاملية

  • Unit tests: JUnit 5، Mockito (@Mock, @InjectMocks)، اختبار المنطق التجاري.
  • Integration tests: @SpringBootTest, @WebMvcTest, قاعدة بيانات H2 للاختبار.
  • Testcontainers: الاختبار باستخدام PostgreSQL في حاويات Docker.
  • مثال: اختبار الخدمات و endpoints تطبيق المهام.

RESTful APIs وتوثيق باستخدام Swagger

  • REST: طرق HTTP، أكواد الحالة، مبادئ RESTful.
  • Spring REST: @RestController, @RequestMapping, @PathVariable.
  • Swagger: تهيئة springdoc-openapi، التعليق باستخدام @Operation.
  • مثال: توثيق endpoints تطبيق المهام باستخدام Swagger UI.

مقدمة إلى GraphQL

  • المفاهيم: Queries، mutations، schema.
  • Spring Boot مع GraphQL: الإعداد باستخدام spring-boot-starter-graphql.
  • مثال: إنشاء query GraphQL لسرد المهام حسب الحالة.

التكامل الأمامي الأساسي

  • Thymeleaf: قوالب لعرض صفحات HTML مع Spring Boot.
  • مثال: إنشاء واجهة ويب بسيطة لعرض وإنشاء المهام.

أدوات البناء: Maven و Gradle

  • Maven: هيكلية pom.xml، التبعيات، الإضافات.
  • Gradle: ملف build.gradle، المهام، إدارة التبعيات.
  • مثال: تهيئة تطبيق المهام باستخدام Maven و Gradle.

نشر المشروع

  • المنصات: Railway، Heroku، AWS (Elastic Beanstalk).
  • الخطوات: التعبئة كـ JAR، تهيئة CI/CD باستخدام GitHub Actions.
  • مثال: نشر تطبيق المهام على Railway مع PostgreSQL.

المشروع النهائي

نظام إدارة المهام
- قاعدة البيانات: جداول Task (العنوان، الوصف، الحالة) و User (علاقة 1:N).
- Java: API REST مع Spring Boot، Spring Data JPA لـ CRUD.
- الأمان: المصادقة باستخدام JWT، roles (ADMIN, USER).
- الاختبارات: اختبارات وحدية (الخدمات) واختبارات تكاملية (endpoints باستخدام Testcontainers).
- التوثيق: Swagger UI مع وصف endpoints.
- اختياري: إضافة query GraphQL لسرد المهام وواجهة Thymeleaf للتفاعل.
- Git: commit لكل ميزة (مثال: feature/rest-api, feature/security).
- النشر: على GitHub مع README (الإعداد، endpoints، النشر).

الموارد