شخصيسهل

نظام إدارة المخزون

واجهة برمجية ولوحة تحكم لإدارة المخزون بـ NestJS وPrisma وReact، منشورة على AWS داخل شبكة VPC مبنية خصيصًا مع ECS وRDS.

— نظرة عامة

نظرة عامة على البنية

graph TB
    subgraph VPC["شبكة AWS VPC في منطقتَي إتاحة"]
        subgraph Public["الشبكات الفرعية العامة"]
            A["موزّع الأحمال"]
        end
        subgraph Private["الشبكات الفرعية الخاصة"]
            B["NestJS على ECS<br/>Docker"]
        end
        subgraph Data["شبكات قاعدة البيانات"]
            C[(RDS PostgreSQL)]
        end
    end
    D["لوحة React<br/>Vite + MUI"] --> A --> B --> C

متتبّع للمخزون مقسوم إلى واجهة برمجية بـ NestJS ولوحة تحكم بـ React. تصوغ الواجهة المنتجات والحركات عبر Prisma فوق PostgreSQL، وتتحقق من كل حمولة عبر كائنات DTO مع class-validator، وتنشر وثيقة Swagger.

أما الجزء الأكثر إفادة في المشروع فكان النشر. فبدل اللجوء إلى منصة مُدارة، وُضعت الواجهة في حاوية ونُشرت على ECS داخل شبكة VPC مبنية يدويًا: منطقتا إتاحة، وشبكات فرعية عامة وخاصة، ومخرج NAT، ومجموعة شبكات فرعية مخصصة لـ RDS. ويحتفظ المستودع بتوثيق خطوة بخطوة لهذا الإعداد.

الميزات الرئيسية:

  • تتبّع المنتجات وحركات المخزون عبر واجهة REST مُنمَّطة
  • تحقق عبر DTO وتوثيق Swagger على كل نقطة نهاية
  • لوحة Material UI مع حالة Redux Toolkit وتوجيه من جهة العميل
  • صورة حاوية للواجهة البرمجية جاهزة للنشر على ECS
  • شبكة VPC عبر منطقتين بشبكات عامة وخاصة وأخرى لقاعدة البيانات
  • RDS PostgreSQL خلف مجموعة شبكات فرعية مخصصة
  • دليل نشر مكتوب يغطي المسار الكامل عبر لوحة تحكم AWS

التقنيات المستخدمة:

  • الواجهة الخلفية: NestJS، TypeScript، Prisma، PostgreSQL
  • الواجهة الأمامية: React، TypeScript، Vite، Material UI، Redux Toolkit
  • البنية التحتية: AWS VPC، ECS، RDS، Docker
— التقنيات
TypeScriptNestJSReactNode.jsPrismaPostgreSQLAWSDockerMaterial UIReduxVite