This portfolio
الموقع الذي تقرؤه: واجهة بـNext.js، وواجهة برمجة بـExpress، وMongoDB، بالإنجليزية والفرنسية والعربية، مع فضاء إدارة يتحكّم في كلّ كلمة فيه. بُني واختُبر ونُشر على خادم خاصّ من الطرف إلى الطرف.

أُنجز بـ
- TypeScript
- Next.js
- React
- Tailwind CSS
- shadcn/ui
- Radix UI
- TanStack Query
- React Hook Form
- Zod
- Node.js
- Express
- MongoDB
- Mongoose
- JSON Web Tokens
- Docker
- Docker Compose
- Caddy
- Vitest
- Playwright
- GitHub Actions
- Linux
الدور
كلّ شيء: التصميم، والواجهة، وواجهة البرمجة، وقاعدة البيانات، والاختبارات، والنشر.
المشكلة
ثلاث لغات، إحداها تُقرأ من اليمين إلى اليسار، وكلّ كلمة في الصفحة مخزّنة لا مكتوبة في الشيفرة — حتى تصير إضافةُ لغةٍ محتوًى وإعدادًا، لا تغييرًا في البنية.
المقاربة
كلّ نصّ مخزَّن هو خريطة مفاتيحُها اللغات، لا يُشترط منها إلّا الافتراضية، والتخطيط يستعمل الخصائص المنطقية في كلّ موضع بدل اليمين واليسار. أمّا البديل — عمود لكلّ لغة — فاستُبعد لأنّه يجعل اللغةَ الرابعة ترحيلًا بدل أن تكون مجلّدًا.
النتيجة
يعمل على خادم خاصّ خلف وسيط عكسي بشهادات تلقائية، وفضاءُ الإدارة على نطاق خاصّ به، ومجموعةُ اختبارات تتجاوز 1500 حالة تعمل مع كلّ دفعة.