مسارك منصة ويب تساعد طلاب المرحلة الثانوية في اليمن على استكشاف ميولهم وفهم الخيارات الأكاديمية والمهنية المتاحة أمامهم بصورة أكثر تنظيمًا ووعيًا.
تجمع المنصة بين دليل واضح للتخصصات وتجربة استكشافية للميول تعتمد على نموذج RIASEC، ثم تعرض للطالب نتيجة تفسيرية وتوصيات تساعده على معرفة التخصصات التي تستحق منه مزيدًا من البحث والاستكشاف.
المنصة أداة توجيه واستكشاف، وليست اختبارًا نفسيًا تشخيصيًا أو بديلًا عن قرار الطالب وأسرته والمرشدين.
يواجه كثير من طلاب الثانوية صعوبة في اختيار التخصص الجامعي بسبب:
- محدودية المعرفة بالتخصصات ومساراتها.
- عدم وضوح الميول الشخصية والمهنية.
- الاعتماد على الانطباعات أو آراء الآخرين فقط.
- صعوبة مقارنة الخيارات المتاحة بصورة منظمة.
- نقص المحتوى الموجه للسياق الذي يعيش فيه الطالب.
يهدف مسارك إلى تقليل هذا التشتت من خلال تقديم معلومات منظمة وتجربة استكشافية تساعد الطالب على فهم نفسه وخياراته قبل اتخاذ القرار.
طالب المرحلة الثانوية الذي يريد:
- استكشاف التخصصات.
- معرفة ميوله المهنية بصورة أولية.
- الحصول على توصيات وتفسير واضح للنتيجة.
- الرجوع إلى نتائجه واستكمال رحلة الاستكشاف.
مستخدم لم يسجل الدخول بعد ويريد:
- التعرف على المنصة.
- تصفح التخصصات.
- قراءة معلومات التخصصات ومقارنتها قبل إنشاء حساب.
يشمل نطاق النسخة الأولى:
- دليل تخصصات أكاديمية ثابت داخل المشروع.
- تصفح معلومات التخصصات ومقارنتها.
- إنشاء حساب وتسجيل الدخول والخروج.
- حفظ تقدم الطالب.
- تقييم استكشافي مكوّن من 18 موقفًا × 4 خيارات.
- حفظ الإجابات أثناء التقييم.
- حساب مؤشرات RIASEC على الخادم.
- تفسير النتيجة بلغة توجيهية غير تشخيصية.
- تقديم توصيات متعددة مرتبطة بالتخصصات.
- الاحتفاظ بنتائج الطالب السابقة.
- واجهة عربية RTL ومتجاوبة.
- اختبارات آلية وفحوص Build قبل الدمج.
- لوحة إدارة.
- الإحصائيات الإدارية.
- CRUD لإدارة التخصصات من داخل النظام.
- API عامة مستقلة.
- تطبيق Mobile مستقل.
- التشخيص النفسي أو القياس السيكومتري المعتمد.
- اتخاذ قرار أكاديمي أو مهني إلزامي نيابة عن الطالب.
وجود الوظيفة ضمن نطاق الـMVP يعني أنها جزء من النسخة المستهدفة، وليس بالضرورة أنها منفذة حاليًا. حالة التنفيذ الفعلية تتابع من خلال GitHub Issues وPull Requests والفرع
main.
| الاسم | الرقم الجامعي | الدور في المشروع | GitHub Username |
|---|---|---|---|
| الحارث الداهية | — | Technical Lead / Integration / Repository Coordination | — |
| مالك | — | Backend & Business Logic | — |
| أيمن | — | Frontend & UX | — |
| عبدالله حمود | — | Testing, Data & QA | — |
| ملاطف | — | Content, Specializations & UAT | — |
تُستكمل الأرقام الجامعية وأسماء GitHub قبل التسليم النهائي.
| المجال | التقنية |
|---|---|
| Backend | Laravel 12 |
| Runtime | PHP 8.2+ |
| Database | MySQL 8.4.x |
| ORM | Eloquent |
| Frontend | Blade |
| Styling | Tailwind CSS |
| Client Logic | JavaScript / Fetch |
| Authentication | Laravel Session + Cookies + CSRF |
| Build Tool | Vite |
| Node.js | 24.x |
| PHP Packages | Composer 2.x |
| JavaScript Packages | npm |
| Testing | PHPUnit / Laravel Tests |
| Version Control | Git |
| Collaboration | GitHub |
Laravel Monolith
Blade + Tailwind CSS
JavaScript / Fetch
MySQL 8.4.x
Laravel Session Authentication
routes/web.php
Static specialization catalog
Server-side RIASEC processing
لا يعتمد المشروع في الـMVP على:
React
Vue
SPA
Laravel Breeze
Laravel Sanctum
JWT
API Tokens
SQLite
MariaDB
يتم الاحتفاظ ببيانات التخصصات في ملف ثابت داخل المشروع:
resources/data/specializations.json
ولا توجد في الـMVP الحالي:
Specializations Database Table
Admin CRUD
Content Management Dashboard
يتضمن المستودع الوثائق المطلوبة لإدارة المشروع وتتبع العمل، ومنها:
| الوثيقة | الغرض |
|---|---|
| Mini-SRS / Requirements | توثيق متطلبات النظام ونطاقه |
| Project Brief | تعريف المشروع والمشكلة والهدف |
| Team Roles | توزيع المسؤوليات داخل الفريق |
| AI Usage Log | توثيق الاستخدام المؤثر للذكاء الاصطناعي |
| Deliverables Checklist | متابعة متطلبات التسليم |
| Technical Decisions | القرارات التقنية المعتمدة |
| System Architecture | معمارية النظام |
| System Workflows | مسارات العمل |
| Use Cases | حالات استخدام النظام |
أهم الملفات:
AI_Log.md
DELIVERABLES_CHECKLIST.md
docs/
يستخدم الفريق:
GitHub Issues
Branches
Commits
Pull Requests
Code Review
GitHub Projects
وتبدأ كل مهمة من Issue واضحة، ثم تنفذ في Branch مؤقت، ويُرفع Pull Request ويراجعه عضو آخر قبل الدمج.
المسار المعتمد:
Issue
→ Branch
→ Implementation
→ Commit
→ Push
→ Pull Request
→ Review
→ Squash Merge
→ Delete Branch
الفرع الدائم الوحيد:
main
ولا يتم التطوير المباشر عليه.
يجب توفر:
Git 2.x
PHP 8.2+
Composer 2.x
Node.js 24.x
npm
MySQL 8.4.x
winget install --id Git.Git -ewinget install --id PHP.PHP.8.2 -epowershell -NoProfile -Command "$p=Join-Path $env:TEMP 'Composer-Setup.exe'; Invoke-WebRequest 'https://getcomposer.org/Composer-Setup.exe' -OutFile $p; Start-Process $p -Wait"winget install --id OpenJS.NodeJS.LTS -ewinget install --id Oracle.MySQL -eبعد التثبيت افتح Terminal جديدًا.
git clone https://github.com/BitSoft-IT/msarak.git
cd msarakscripts\check-environment.batالنتيجة المطلوبة:
Environment check: PASS
scripts\setup-database.batعند ظهور:
MySQL administrator username [root]:
اضغط Enter إذا كان المستخدم الإداري هو:
root
ثم أدخل كلمة مرور MySQL المحلية.
الإعداد المستهدف:
Database : masarak
User : masarak_user
Server : MySQL 8.4.x
بيانات الاتصال الخاصة بالمشروع تحفظ محليًا في:
.env
ولا يتم رفع .env إلى GitHub.
scripts\setup-project.batيتولى السكربت:
Composer dependencies
npm dependencies
APP_KEY
Laravel configuration
Database migrations
Laravel tests
Frontend build
النتيجة المطلوبة:
Masarak project setup: PASS
scripts\verify-project.batيفحص:
Environment
PHP requirements
Dependencies
MySQL connection
Migrations
Laravel tests
Frontend build
النتيجة المطلوبة:
FULL VERIFICATION: PASS
scripts\start-project.batالتطبيق:
http://127.0.0.1:8000
Health Check:
http://127.0.0.1:8000/up
بعد إعداد .env وقاعدة البيانات:
composer install
npm ci
php artisan config:clear
php artisan migrate
php artisan test
npm run buildثم:
php artisan servenpm run devتم إجراء اختبار Clean Clone فعلي من GitHub على بيئة نظيفة للمشروع.
النتيجة:
Repository Structure PASS
Environment Check PASS
Database Setup PASS
Composer Install PASS
npm Install PASS
Laravel Preparation PASS
Database Migrations PASS
Laravel Tests PASS
Vite Build PASS
MySQL Connection PASS
Full Verification PASS
Git Safety Check PASS
بيئة الاختبار:
Laravel 12.69.1
PHP 8.2.12
Composer 2.9.5
Node.js 24.13.1
npm 11.8.0
MySQL 8.4.11
Git 2.50.1
وتم التحقق فعليًا من اتصال Laravel بـ:
MySQL 8.4.11
masarak/
├── app/
├── bootstrap/
├── config/
├── database/
├── docs/
│ ├── 00-baseline/
│ ├── 01-management/
│ ├── 02-system-design/
│ ├── 03-system-analysis/
│ ├── 04-assessment/
│ └── assets/
├── public/
├── resources/
│ ├── css/
│ ├── data/
│ ├── js/
│ └── views/
├── routes/
├── scripts/
│ ├── check-environment.bat
│ ├── setup-database.bat
│ ├── setup-project.bat
│ ├── start-project.bat
│ └── verify-project.bat
├── tests/
├── AI_Log.md
├── DELIVERABLES_CHECKLIST.md
├── composer.json
├── composer.lock
├── package.json
└── package-lock.json
ابدأ من أحدث نسخة من main:
git switch main
git pull --ff-only origin main
git switch -c feature/<issue>-<name>أمثلة:
feature/12-assessment-flow
fix/18-save-answer
test/21-scoring-tests
docs/7-course-documentation
chore/project-setup-scripts
git status
git diff --check
git add .
git diff --cached --checkثم:
git commit -m "type: short description"الأنواع المستخدمة:
feat
fix
test
docs
refactor
chore
style
git push -u origin اسم-الفرعثم يتم إنشاء Pull Request.
يشترط:
- ربط التغيير بالـIssue.
- مراجعة من عضو غير منفذ المهمة.
- معالجة الملاحظات المانعة.
- التأكد من نجاح الفحوص.
- Squash Merge.
- حذف الفرع المؤقت بعد الدمج.
- لا يتم Push مباشر إلى
main. - لا يتم رفع
.env. - لا يتم رفع Passwords أو Tokens أو Secrets.
- يتم تتبع
composer.lock. - يتم تتبع
package-lock.json. - لا يتم استخدام
composer updateأثناء الإعداد الطبيعي. - لا يتم استخدام
npm updateأثناء الإعداد الطبيعي. - لا تضاف ميزة خارج نطاق المشروع دون Issue وقرار واضح.
- لا يغير عضو قرارًا معتمدًا بصورة فردية.
- يجب فهم أي كود مولد بالذكاء الاصطناعي قبل استخدامه.
- الاستخدام المؤثر للذكاء الاصطناعي يوثق في
AI_Log.md. - يتم التحقق من العمل قبل اعتبار الـIssue مكتملة.
بحسب طبيعة التغيير:
php artisan test
npm run build
scripts\verify-project.batويجب ألا يحتوي Git على:
.env
Passwords
Tokens
Credentials
Secrets
مكتمل
- اعتماد فكرة المشروع ونطاقه الأساسي.
- إعداد وتوحيد وثائق المشروع الأساسية.
- إنشاء المستودع الرسمي وضبط حماية فرع
main. - إعداد قوالب
IssuesوPull Requests. - إنشاء الـLabels المعتمدة لتنظيم العمل.
- إنشاء
GitHub Projectواعتماد حالات سير العمل:Backlog → Ready → In Progress → In Review → Done - إنشاء خمسة
Milestonesرئيسية:Foundation،Core Setup،Assessment Journey،Results & Security،Finalization & Release - إنشاء وتنظيم 15 Issue وتوزيعها على الـMilestones.
- إعداد
GitHub Actionsللتحقق الآلي ضمن مسار الدمج. - تجهيز سكربتات البيئة والإعداد والتحقق.
- اجتياز اختبار
Clean Cloneبنجاح.
- إكمال
Batch 1 — Foundation. - تنفيذ
Batch 2 — Core Setup. - تنفيذ
Batch 3 — Assessment Journey. - تنفيذ
Batch 4 — Results & Security. - تنفيذ
Batch 5 — Finalization & Release. - إغلاق جميع الـIssues المتبقية ودمج الـPull Requests المعتمدة.
- إجراء التحقق النهائي وتجهيز النسخة النهائية للتسليم.
يتم تتبع الحالة التفصيلية لكل مهمة من خلال GitHub Issues وMilestones وPull Requests. نجاح إعداد المشروع لا يعني اكتمال وظائف الـMVP؛ اكتمال كل وظيفة يحدد من خلال الـIssue ومعايير القبول والـPull Request المرتبطة بها.
لا يحتوي المستودع على بيانات الاعتماد المحلية.
الملف:
.env
محلي فقط وممنوع رفعه إلى GitHub.
يستخدم Laravel في المشروع:
Sessions
Cookies
CSRF Protection
Password Hashing
ولا تستخدم بيانات حساب MySQL الإداري root لتشغيل التطبيق اليومي.
لعضو قام بسحب المشروع لأول مرة:
git clone https://github.com/BitSoft-IT/msarak.git
cd msarak
scripts\check-environment.bat
scripts\setup-database.bat
scripts\setup-project.bat
scripts\verify-project.bat
scripts\start-project.batإذا ظهرت:
Environment check: PASS
Masarak project setup: PASS
FULL VERIFICATION: PASS
فالبيئة المحلية جاهزة لبدء العمل.
