Hippotenus
منصة للمؤسسات التعليمية
NestJS وPrisma مع PostgreSQL؛ المراسلة والإشعارات عبر Socket.IO، والتقارير الأسبوعية ومزامنة التقويم في طوابير Redis، والمدفوعات عبر iyzico.
اعرض المنتججميعها منشورة؛ صفحات المتاجر والتفاصيل في صفحة المنتجات.
منصة للمؤسسات التعليمية
NestJS وPrisma مع PostgreSQL؛ المراسلة والإشعارات عبر Socket.IO، والتقارير الأسبوعية ومزامنة التقويم في طوابير Redis، والمدفوعات عبر iyzico.
اعرض المنتجتطبيق فيديو بالذكاء الاصطناعي
دوال TypeScript على AWS Lambda مع MongoDB؛ تُرسل الإشعارات والرسائل البريدية عبر طوابير SQS مع طوابير للرسائل الفاشلة.
اعرض المنتجمدرب ميزانية بالذكاء الاصطناعي
دوال TypeScript على AWS Lambda مع MongoDB؛ ربط الحسابات البنكية ومساعد الميزانية العامل بـ OpenAI موجودان على هذا الخادم.
اعرض المنتجتطبيق أسئلة ومجتمع جامعي
Express على Firebase Cloud Functions؛ تُرفع الملفات إلى Cloudflare R2 عبر روابط موقّعة محدودة المدة.
اعرض المنتجيشغّل Node.js لغتي JavaScript وTypeScript على الخادم. تكمن قوته في إدارة عدد كبير من الاتصالات في وقت واحد دون أن يتوقف: فبينما ينتظر رد قاعدة البيانات أو مزود الدفع أو خدمة البريد، يواصل معالجة الطلبات الأخرى. لذلك هو خيار طبيعي لواجهات API والمراسلة الفورية وخدمات التكامل التي تتحدث مع أنظمة أخرى. ولأننا نكتب جانب الويب والجوال بـ TypeScript أيضاً، يتحدث الخادم اللغة نفسها التي يتحدث بها عملاؤه.
نستخدم Node.js بطريقتين. في منصة مثل Hippotenus، كثيرة الوحدات ودائمة التشغيل وتحتفظ باتصالات حية، نكتب واجهة API واحدة باستخدام NestJS. أما في Rigel وLydiaVault فكل نقطة نهاية دالة مستقلة على AWS Lambda، والبنية التحتية معرّفة ككود في قالب AWS SAM. وفي SoruVerse توجد مهام الخادم القليلة التي يحتاجها تطبيق الجوال في تطبيق Express صغير على Firebase Cloud Functions.
| NestJS API | AWS Lambda (SAM) | Firebase Cloud Functions | |
|---|---|---|---|
| طريقة التشغيل | خادم واحد يعمل باستمرار | دوال تعمل عند وصول الطلب | دوال مرتبطة بأحداث Firebase والطلبات |
| الاتصال اللحظي | مباشرة عبر Socket.IO | عبر الطوابير والجدولة | عبر مشغّلات Firestore |
| يناسب | المنصات متعددة الوحدات وAPI مشتركة للوحة والجوال | الواجهات الخلفية لتطبيقات الجوال والحركة المتذبذبة | مهام خادم تُضاف إلى تطبيقات تستخدم Firebase |
| مثالنا | Hippotenus | Rigel وLydiaVault | SoruVerse |
خادم Hippotenus تطبيق NestJS يتولى كل شيء من متابعة الطلاب إلى المدفوعات. في منصة تعليمية يجري كثير من العمل خارج الطلب، لذلك أولينا عناية خاصة للمهام الخلفية والاتصالات الحية:
بنينا بنية مشابهة في مشروع لأحد العملاء: في نظام لإدارة التعلّم مكتوب بـ NestJS وMongoDB تعمل الاختبارات الحية ولوحات المشاريع على قنوات منفصلة لخادم Socket.IO واحد، وتصل الإشعارات إلى المتصفح عبر web push.
يأتي بالوحدات وحقن التبعيات والتحكم في الصلاحيات والتحقق من المدخلات جاهزة. كتبنا به واجهة Hippotenus البرمجية وخادم مشروع لأحد العملاء.
وصول آمن الأنواع إلى قاعدة البيانات وعمليات migration لتغييرات المخطط. نستخدمه مع PostgreSQL في Hippotenus.
للمراسلة الفورية والإشعارات الحية والشاشات المشتركة. نستخدمه في Hippotenus وفي مشروع لأحد العملاء.
لتشغيل أعمال مثل البريد ومزامنة التقويم والإشعارات في طابور خارج الطلب. نستخدمهما في Hippotenus.
دوال بلا خوادم وطوابير SQS ومهام مجدولة، كلها معرّفة في قالب واحد. نستخدمهما في Rigel وLydiaVault.
تُوثّق كل نقطة نهاية في API ويمكن تجربتها من المتصفح. نستخدمه في واجهة Hippotenus البرمجية.
نتحدث عن التطبيقات التي سيخدمها الخادم والأنظمة التي سيتصل بها والميزانية التي تفكر فيها.
نكتب نموذج البيانات ونقاط النهاية والتكاملات والاختيار بين NestJS والبنية بلا خوادم.
نسلّم كل أسبوع نسخة تعمل، ويمكنك تجربة نقاط النهاية بنفسك من خلال توثيق API.
يختبر مهندس ضمان جودة أول النسخة قبل الإطلاق، ثم ننقل الخادم إلى بيئة التشغيل.
نصلح مجاناً الأخطاء التي تظهر في هذه الفترة، وبعدها يمكنك المتابعة بصيانة شهرية.
ننشر المدد ونطاقات الميزانية في صفحتي تطوير تطبيقات الويب والأسعار، وتعتمد هذه الصفحة على الأرقام نفسها.
يعمل NestJS أصلاً فوق Express، ويضيف إليه بنية الوحدات والتحكم في الصلاحيات والتحقق من المدخلات وتوثيق API. في منصة كثيرة الوحدات يحافظ هذا النظام على وضوح الكود. أما لخدمة صغيرة من بضع نقاط نهاية فيكفي Express وحده، كما في SoruVerse.
هو فعّال جداً في الأعمال التي يغلب عليها الانتظار، مثل استدعاءات قاعدة البيانات والخدمات الخارجية. لا نُجري داخل الطلب المهام الطويلة أو التي تجعل المستخدم ينتظر: في Hippotenus تذهب إلى طابور Redis، وفي Rigel يمر إرسال الإشعارات والرسائل البريدية عبر SQS. وفي المشاريع التي تتمحور حول معالجة المستندات والبيانات نفضّل Python.
نعم. كما في واجهة Hippotenus البرمجية، تُوثّق كل نقطة نهاية باستخدام OpenAPI ويمكن تجربتها من المتصفح، وهذا التوثيق يكفي لربط فريق أو نظام آخر.
ترخيص دائم لاستخدام البرنامج ووثائقه. وإذا أردت تسليمك الكود المصدري، تُذكر الرسوم الإضافية بشكل منفصل في العرض.
في مكالمة تعريفية مجانية مدتها 30 دقيقة نحدد معاً نطاق الخادم والاختيار بين NestJS والبنية بلا خوادم.