نظام إدارة المخزون
واجهة برمجية ولوحة تحكم لإدارة المخزون بـ 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