فكرة المشروع
الهدف من المشروع هو بناء Backend منظم لنظام متجر إلكتروني يسمح بإدارة المنتجات والمستخدمين والطلبات من خلال REST API.
تم تصميم المشروع بحيث يكون قابلًا للتوسع وإضافة ميزات جديدة مستقبلًا، مع فصل المسؤوليات بين طبقات النظام المختلفة.
هذا النوع من المشاريع يساعد مطور Backend على تطبيق المفاهيم التي تعلمها في Python وDjango وقواعد البيانات وREST API داخل مشروع عملي متكامل.
تطبيق مفاهيم Python وDjango وDjango REST Framework وقواعد البيانات في مشروع يحاكي أنظمة المتاجر الإلكترونية الحقيقية، مع التركيز على تنظيم المشروع وقابلية التوسع.
أهم وظائف النظام
👤 إدارة المستخدمين
إنشاء حسابات المستخدمين وإدارة البيانات الأساسية الخاصة بهم.
📦 إدارة المنتجات
إضافة المنتجات وتعديلها وحذفها وعرض تفاصيلها من خلال API.
🛒 إدارة الطلبات
إنشاء الطلبات وربطها بالمستخدمين والمنتجات وتتبع حالتها.
🔐 Authentication
حماية نقاط API التي تحتاج إلى مستخدم مسجل الدخول.
🗄️ Database
تخزين البيانات بطريقة منظمة باستخدام PostgreSQL والعلاقات بين الجداول.
🔎 البحث والتصفية
توفير إمكانيات البحث والتصفية للمنتجات والبيانات عند الحاجة.
التقنيات المستخدمة
بنية المشروع
يمكن تنظيم المشروع بطريقة تفصل بين البيانات ومنطق العمل وطبقة API، بحيث تكون مسؤولية كل جزء واضحة.
backend/
│
├── config/
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
│
├── users/
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ ├── urls.py
│ └── tests.py
│
├── products/
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ ├── urls.py
│ └── tests.py
│
├── orders/
│ ├── models.py
│ ├── serializers.py
│ ├── views.py
│ ├── urls.py
│ └── tests.py
│
├── manage.py
└── requirements.txt
تقسيم المشروع إلى تطبيقات منفصلة يساعد على جعل الكود أكثر وضوحًا، ويسهّل تطوير وصيانة كل جزء بشكل مستقل.
تصميم قاعدة البيانات
يحتوي النظام على مجموعة من الجداول التي تمثل الكيانات الأساسية داخل المتجر، وترتبط ببعضها عبر علاقات واضحة.
User
│
└── Orders
│
└── OrderItems
│
└── Product
│
└── Category
العلاقات بين هذه الكيانات تسمح للنظام بربط المستخدم بطلباته، وربط الطلب بالمنتجات الموجودة فيه، مع تنظيم المنتجات ضمن تصنيفات.
REST API
يعتمد النظام على REST API للتعامل مع البيانات، وفيما يلي أمثلة على أهم نقاط النهاية (Endpoints):
| Method | Endpoint | الوظيفة |
|---|---|---|
| GET | /api/products/ | جلب المنتجات |
| POST | /api/products/ | إنشاء منتج |
| GET | /api/products/1/ | جلب منتج محدد |
| PUT | /api/products/1/ | تعديل منتج |
| DELETE | /api/products/1/ | حذف منتج |
| GET | /api/orders/ | جلب الطلبات |
الأمان
لأن النظام يتعامل مع بيانات المستخدمين والطلبات، يجب مراعاة مجموعة من ممارسات الأمان الأساسية.
- حماية API: حماية العمليات التي تتطلب صلاحيات مستخدم.
- Validation: التحقق من البيانات القادمة من العميل قبل معالجتها.
- Environment Variables: فصل البيانات الحساسة عن ملفات المشروع المصدرية.
- Permissions: التحقق من صلاحية المستخدم قبل تنفيذ العمليات الحساسة.
- HTTPS: استخدام اتصال آمن في بيئة الإنتاج.
المهارات التي يعكسها المشروع
يجمع المشروع بين مجموعة من المهارات الأساسية لمطور Backend، ويطبقها في سياق عملي متكامل.
Python
كتابة منطق التطبيق باستخدام Python بطريقة منظمة وقابلة للصيانة.
Django
بناء Backend باستخدام Framework Django وتنظيم التطبيقات.
REST API
تصميم API للتعامل مع بيانات النظام من خلال HTTP.
Database
تصميم العلاقات بين البيانات والتعامل مع قاعدة البيانات.
Git
إدارة إصدارات المشروع وتنظيم التغييرات.
Testing
التفكير في اختبار الوظائف والـ API للتأكد من صحة السلوك.
حالة المشروع
هذا المشروع نموذج تجريبي ضمن معرض الأعمال، ويمكن استبداله لاحقًا بمشروع حقيقي وإضافة رابط GitHub أو Demo وصور حقيقية عند توفرها.