Rezuma
منشئ سير ذاتية يصدّر ملفات PDF بنص قابل للتحديد.
أنشئ سيرتك الذاتية في المتصفح دون حساب. يصدّر Rezuma ملفات PDF بخطوط مضمّنة ونص قابل للتحديد، ويستخدم سكربت اختبار مكتبة pdf.js لفحص استخراج النص من تسعة ملفات تجريبية.

لماذا Rezuma
المعاينة تُريك شكل السيرة الذاتية. وللتحقق من محتواها بعد التصدير، يتضمّن Rezuma اختبارًا يستخرج النص من ملف PDF بمكتبة pdf.js. يساعد هذا الفحص على مراجعة المحتوى وترتيب الأقسام، وقد تختلف قراءة الملف في أنظمة فرز السير الذاتية (ATS).
ملف PDF بنص حقيقي
لا يحوّل Rezuma المعاينة إلى صورة، بل يرسم المستند بمكتبة jsPDF. كل حرف فيه نص متّجهي بخط مضمّن: Source Serif 4 أو Source Sans 3، و Noto Naskh Arabic أو Noto Sans Arabic للعربية. وتُجلب الخطوط عند التصدير فقط بعد اقتطاع ما يلزم منها، فلا تثقل التحميل الأول.
ويجري تنسيق الصفحات على مرحلتين: تُقاس العناصر أولًا في مجموعات، ثم تُوزَّع على الصفحات. يجمع هذا التنسيق المسمّى الوظيفي مع تاريخه وعنوان القسم مع أول ما تحته، ويحدّ من الأسطر المنفردة في أول صفحة أو آخرها. وتستعمل المعاينة عائلات الخطوط نفسها التي يستعملها المصدِّر.
التحقق من الملف المصدَّر
يولّد الأمر pnpm verify:pdf ملفات PDF من بيانات اختبار، ثم يستخرج نصوصها بمكتبة pdf.js. ويبحث في النص المستخرج عن الأسماء وجهات العمل والتواريخ والبنود والمهارات الواردة في تلك البيانات، بما فيها الحروف ذات العلامات.
AR / classic / sidebar
file ar-classic-sidebar.pdf (65 KB, 1 page)
extracted 2563 chars
checks 51/51 found
order summary → experience → skills → education
arabic 1554 letters (61% of the text)
يغطي الاختبار تسع حالات، تجمع ثلاث لغات ونمطين وأربعة تخطيطات. وترتيب الأقسام المنتظر يُستخلص من إعدادات التخطيط ولا يُكتب يدويًا، فيبقى الاختبار فحصًا للمصدِّر لا تكرارًا له.
العربية والكتابة من اليمين
عند التحويل إلى العربية يُضبط dir="rtl" على المستند. وتستخدم الأنماط الخصائص المنطقية لعرض المحرّر وشريط الأدوات والسيرة الذاتية من اليمين إلى اليسار.
أما ملف PDF فيحتاج إلى عمل أكثر:
- وصل الحروف. تُستبدل الحروف بأشكالها الموصولة قبل الرسم، ويجري القياس على الأشكال نفسها.
- تقسيم الأسطر. يقسّم Rezuma الأسطر العربية بقياسه الخاص، مع احتساب عرض الحروف بعد وصلها.
- الاستخراج. تُعاد الأشكال الموصولة في النص المستخرج إلى حروفها الأصلية بالتوحيد NFKC قبل التحقق من المحتوى.
وتبقى التواريخ بالأرقام (1، 2، 3) في النسخة العربية، وهو اختيار للتوافق مع أدوات قراءة التواريخ آليًا.
الخصوصية
لا يحتاج محرّر السيرة الذاتية إلى حساب. تُحفظ بيانات السيرة في التخزين المحلي للمتصفح، ويُولَّد ملف PDF على جهازك ويُنزَّل مباشرة. ويمكنك أيضًا حفظ البيانات في ملف JSON أو استيرادها منه.
مؤثرات الصفحة الرئيسية
مؤثرات الصفحة الرئيسية مكتوبة دون أي مكتبة خارجية: خلفية ضوئية من مظلِّل واحد بـ WebGL2، وشبكة نقاط على canvas، وعناوين تتفكّك حروفها ثم تنتظم. وعند تفعيل خيار تقليل الحركة تظهر الصفحة في حالتها النهائية، ويبقى النص المتحرك مقروءًا كاملًا لقارئات الشاشة.
نظرة على المشروع
السيرة الذاتية كنص
عرض توضيحي لمقتطف من سيرتي الذاتية: نسخة منسّقة وبجانبها النص نفسه دون تنسيق.
Brahim Boussadjra
Senior Fullstack Developer — TypeScript, Vue.js/Nuxt, NestJS
brahim.boussadjra@gmail.com • Bab Ezzouar, Algiers, Algeria
EXPERIENCE
Senior Fullstack Developer — Atqan Gulf Arab Co. Financial Technology Company
Led the migration of a legacy financial management codebase into a fullstack TypeScript monorepo of 2 apps, built on Turborepo and pnpm workspaces.
Architected an API layer with shared TS-Rest contracts, giving the Nuxt 3 frontend and NestJS controllers the same request and response types.
SKILLS
Frontend: Vue.js 3, Nuxt 3, React.js, Composition API, Pinia, Tailwind CSS, Vite
Brahim Boussadjra
Senior Fullstack Developer — TypeScript, Vue.js/Nuxt, NestJS
brahim.boussadjra@gmail.com • Bab Ezzouar, Algiers, Algeria
EXPERIENCE
Senior Fullstack Developer — Atqan Gulf Arab Co. Financial Technology Company
• Led the migration of a legacy financial management codebase into a fullstack TypeScript monorepo of 2 apps, built on Turborepo and pnpm workspaces.
• Architected an API layer with shared TS-Rest contracts, giving the Nuxt 3 frontend and NestJS controllers the same request and response types.
SKILLS
Frontend: Vue.js 3, Nuxt 3, React.js, Composition API, Pinia, Tailwind CSS, Vite
لقطات




