Skip to content

Latest commit

 

History

History
516 lines (387 loc) · 15 KB

File metadata and controls

516 lines (387 loc) · 15 KB

Contributing to EduConnect Egypt | المساهمة في إيدو كونكت مصر

Welcome Egyptian developers and educators! أهلاً بالمطورين والمعلمين المصريين!

Arabic Support Laravel License


English | الإنجليزية

🌟 How You Can Help

We're building Egypt's premier educational platform for Thanaweya Amma students. Every contribution helps Egyptian students achieve their academic dreams!

🎯 Priority Areas

  1. Arabic Content & Localization

    • Translate interface elements to Arabic
    • Improve RTL (Right-to-Left) layout components
    • Add Arabic educational terminology
    • Enhance Islamic calendar integration
  2. Egyptian Curriculum Expansion

    • Add more curriculum topics for each subject
    • Verify Ministry of Education alignment
    • Create learning objectives in Arabic
    • Map Ministry reference codes
  3. Teacher Tools & Features

    • Build teacher verification systems
    • Create lesson planning tools
    • Develop assessment and grading features
    • Add Ministry certification validation
  4. Payment Integration

    • Integrate Egyptian payment gateways
    • Add Vodafone Cash, Orange Money support
    • Implement Fawry payment system
    • Create family billing features
  5. Mobile & Performance

    • Optimize for Egyptian network conditions
    • Create Progressive Web App features
    • Improve loading times for Arabic content
    • Add offline support for rural areas

🚀 Getting Started

Prerequisites

  • PHP 8.4+
  • MySQL 8.0+ with Arabic support
  • Composer
  • Node.js & npm
  • Git
  • Laravel Herd (recommended)

Fork & Clone

# Fork the repository on GitHub first
git clone https://github.com/yourusername/EduConnect-Egypt.git
cd EduConnect-Egypt

# Add upstream remote
git remote add upstream https://github.com/original/EduConnect-Egypt.git

Local Setup

# Install PHP dependencies
composer install

# Install Node dependencies
npm install

# Environment setup
cp .env.example .env
php artisan key:generate

# Database setup with Egyptian data
php artisan migrate
php artisan db:seed --class=GovernorateSeeder
php artisan db:seed --class=SubjectSeeder
php artisan db:seed --class=CurriculumTopicSeeder

# Build assets
npm run dev

# Start development server
php artisan serve

Verify Arabic Support

# Test Arabic content in Tinker
php artisan tinker
>>> App\Models\Subject::first()->name_ar
=> "الرياضيات"
>>> App\Models\Governorate::where('code', 'CAI')->first()->name_ar
=> "القاهرة"

📋 Development Workflow

1. Create Feature Branch

# Create branch with descriptive name
git checkout -b feature/arabic-lesson-booking
# or
git checkout -b curriculum/add-chemistry-topics
# or
git checkout -b payment/vodafone-cash-integration

2. Code Standards

PHP Code Style
// Use Laravel conventions with Arabic support
class CurriculumTopic extends Model
{
    protected $fillable = [
        'topic_name_ar',
        'topic_name_en',
        'learning_objectives_ar',
        'ministry_reference',
    ];

    public function getDisplayNameAttribute(): string
    {
        return app()->getLocale() === 'ar'
            ? $this->topic_name_ar
            : ($this->topic_name_en ?? $this->topic_name_ar);
    }
}
Arabic Content Guidelines
// Always provide Arabic primary, English secondary
'name_ar' => 'الرياضيات',
'name_en' => 'Mathematics',

// Use proper Arabic typography
'description_ar' => 'مادة الرياضيات للثانوية العامة المصرية',

// Include Ministry reference codes
'ministry_reference' => 'MATH-G1-S1-C1',
Frontend (Livewire + Alpine.js)
<!-- RTL support with Arabic content -->
<div dir="rtl" class="text-right">
    <h1 class="text-2xl font-bold text-gray-900 dark:text-white">
        {{ $topic->topic_name_ar }}
    </h1>
    <p class="text-gray-600 dark:text-gray-400">
        {{ $topic->learning_objectives_ar }}
    </p>
</div>

3. Testing Requirements

# Run all tests
php artisan test

# Test specific feature
php artisan test --filter=ArabicContentTest

# Test Arabic content specifically
php artisan test tests/Feature/CurriculumTest.php
Write Tests for Arabic Content
<?php

class ArabicContentTest extends TestCase
{
    public function test_arabic_subject_names_display_correctly()
    {
        $subject = Subject::factory()->create([
            'name_ar' => 'الرياضيات',
            'name_en' => 'Mathematics'
        ]);

        $this->assertEquals('الرياضيات', $subject->name_ar);
        $this->assertTrue(mb_strlen($subject->name_ar) > 0);
    }

    public function test_curriculum_topics_have_ministry_references()
    {
        $topic = CurriculumTopic::factory()->create();

        $this->assertNotNull($topic->ministry_reference);
        $this->assertStringContains('-G', $topic->ministry_reference);
    }
}

4. Commit Guidelines

# Use conventional commits with Arabic context
git commit -m "feat(curriculum): add Arabic chemistry topics for Grade 2

- Added 5 new chemistry topics with Arabic names
- Included Ministry reference codes (CHEM-G2-S1-C1 to C5)
- Added learning objectives in Arabic and English
- Tested with Arabic content verification

Refs: #123"

5. Pull Request Process

  1. Update your fork

    git fetch upstream
    git checkout main
    git merge upstream/main
  2. Push your feature

    git push origin feature/arabic-lesson-booking
  3. Create Pull Request with this template:

## Summary | الملخص
Brief description in English and Arabic.

## Changes | التغييرات
- [ ] Added Arabic content for...
- [ ] Enhanced RTL support in...
- [ ] Integrated Egyptian payment...
- [ ] Verified Ministry alignment...

## Testing | الاختبار
- [ ] All tests pass
- [ ] Arabic content displays correctly
- [ ] RTL layout works properly
- [ ] Ministry references validated

## Screenshots | لقطات الشاشة
![Arabic Interface](screenshot-ar.png)

## Related Issues | القضايا المرتبطة
Closes #123

🧪 Quality Assurance

Code Review Checklist

  • Arabic content properly encoded (UTF-8)
  • RTL layout doesn't break
  • Ministry codes follow format (SUBJ-GX-SY-CZ)
  • Tests cover Arabic functionality
  • Documentation updated
  • No sensitive data in commits

Performance Considerations

  • Arabic text rendering optimized
  • Database queries efficient with UTF8MB4
  • Caching works with Arabic keys
  • Images optimized for Egyptian networks

📚 Resources for Contributors

Egyptian Education System

Laravel with Arabic

Egyptian Developers Community


العربية | Arabic

🌟 كيف يمكنك المساعدة

نحن نبني المنصة التعليمية الأولى في مصر لطلاب الثانوية العامة. كل مساهمة تساعد الطلاب المصريين في تحقيق أحلامهم الأكاديمية!

🎯 المجالات ذات الأولوية

  1. المحتوى العربي والترجمة

    • ترجمة عناصر الواجهة إلى العربية
    • تحسين مكونات التخطيط من اليمين لليسار
    • إضافة المصطلحات التعليمية العربية
    • تعزيز تكامل التقويم الإسلامي
  2. توسيع المنهج المصري

    • إضافة المزيد من مواضيع المنهج لكل مادة
    • التحقق من التوافق مع وزارة التربية والتعليم
    • إنشاء أهداف التعلم باللغة العربية
    • ربط أكواد المرجعية الوزارية
  3. أدوات وميزات المعلمين

    • بناء أنظمة التحقق من المعلمين
    • إنشاء أدوات تخطيط الدروس
    • تطوير ميزات التقييم والدرجات
    • إضافة التحقق من شهادات الوزارة
  4. تكامل الدفع

    • دمج بوابات الدفع المصرية
    • إضافة دعم فودافون كاش وأورانج موني
    • تنفيذ نظام دفع فوري
    • إنشاء ميزات الفواتير العائلية
  5. الهاتف المحمول والأداء

    • التحسين لظروف الشبكة المصرية
    • إنشاء ميزات تطبيق الويب التقدمي
    • تحسين أوقات التحميل للمحتوى العربي
    • إضافة الدعم غير المتصل للمناطق الريفية

🚀 البدء

متطلبات مسبقة

  • PHP 8.4+
  • MySQL 8.0+ مع دعم العربية
  • Composer
  • Node.js & npm
  • Git
  • Laravel Herd (مُوصى به)

التطوير المحلي

# تثبيت تبعيات PHP
composer install

# تثبيت تبعيات Node
npm install

# إعداد البيئة
cp .env.example .env
php artisan key:generate

# إعداد قاعدة البيانات مع البيانات المصرية
php artisan migrate
php artisan db:seed --class=GovernorateSeeder
php artisan db:seed --class=SubjectSeeder
php artisan db:seed --class=CurriculumTopicSeeder

# بناء الأصول
npm run dev

# بدء خادم التطوير
php artisan serve

📋 إرشادات المساهمة

معايير الكود العربي

// استخدم العربية كأساس والإنجليزية كمساعدة
protected $fillable = [
    'topic_name_ar',      // المطلوب
    'topic_name_en',      // اختياري
    'learning_objectives_ar', // مطلوب
    'ministry_reference', // كود وزاري مطلوب
];

public function getDisplayNameAttribute(): string
{
    return app()->getLocale() === 'ar'
        ? $this->topic_name_ar
        : ($this->topic_name_en ?? $this->topic_name_ar);
}

إرشادات المحتوى العربي

// دائماً قدم العربية أولاً، الإنجليزية ثانياً
'name_ar' => 'الرياضيات',
'name_en' => 'Mathematics',

// استخدم الطباعة العربية المناسبة
'description_ar' => 'مادة الرياضيات للثانوية العامة المصرية',

// ضمّن أكواد المرجعية الوزارية
'ministry_reference' => 'MATH-G1-S1-C1',

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

public function test_arabic_content_displays_correctly()
{
    $subject = Subject::factory()->create([
        'name_ar' => 'الرياضيات',
        'name_en' => 'Mathematics'
    ]);

    $this->assertEquals('الرياضيات', $subject->name_ar);
    $this->assertTrue(mb_strlen($subject->name_ar) > 0);
}

📚 موارد للمساهمين

النظام التعليمي المصري

مجتمع المطورين المصريين


Recognition | التقدير

Contributors | المساهمون

We recognize all contributors in our CONTRIBUTORS.md file with:

  • Arabic and English names
  • Contributions made
  • Egyptian governorate (if applicable)
  • Social media links

Special Recognition | تقدير خاص

  • 🏆 Top Contributor: Most impactful contributions
  • 🇪🇬 Egyptian Expert: Best Egyptian curriculum knowledge
  • 🌍 Arabic Champion: Excellence in Arabic localization
  • 👩‍🏫 Education Specialist: Teaching and pedagogy contributions

Code of Conduct | قواعد السلوك

Our Pledge | تعهدنا

We pledge to make participation in EduConnect Egypt a harassment-free experience for everyone, regardless of gender, sexual orientation, disability, ethnicity, religion, or level of experience.

نتعهد بجعل المشاركة في إيدو كونكت مصر تجربة خالية من المضايقات للجميع، بغض النظر عن الجنس أو التوجه الجنسي أو الإعاقة أو العرق أو الدين أو مستوى الخبرة.

Our Standards | معاييرنا

Positive Behavior | السلوك الإيجابي

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints
  • Gracefully accepting constructive criticism
  • Focusing on what's best for Egyptian students
  • Showing empathy towards community members

Unacceptable Behavior | السلوك غير المقبول

  • Harassment or discriminatory language
  • Political discussions unrelated to education
  • Publishing private information
  • Any conduct inappropriate in an educational setting

Enforcement | التطبيق

Report any behavior violations to conduct@educonnect-egypt.com. All reports will be reviewed confidentially.


Getting Help | الحصول على المساعدة

Communication Channels | قنوات التواصل

Documentation | الوثائق


Thank you for contributing to Egyptian education! 🇪🇬 شكراً لمساهمتك في التعليم المصري! 🇪🇬

Made with ❤️ for Egyptian Students صُنع بـ ❤️ للطلاب المصريين