E-commerce Website Project: Technologies and Architecture
This project is an e-commerce website where users can browse products, add or remove them from the cart, and proceed to checkout. An admin panel allows administrators to manage products and users through CRUD operations. The website includes user authentication (login/signup). Below is an explanation of the technologies used in the project.
1. Technologies Used
1.1 Backend: PHP (MVC Model)
PHP is used to handle the backend logic of the e-commerce system.
The website follows the MVC (Model-View-Controller) pattern to separate concerns:
Model: Handles database operations (e.g., fetching products, managing users).
View: Displays the web pages (HTML with embedded PHP for dynamic content).
Controller: Processes user requests, calls the Model, and returns Views.
1.2 Database: MySQL with EAV Model
MySQL is used as the relational database.
The EAV (Entity-Attribute-Value) model is implemented to store product attributes flexibly.
products table stores basic product information (ID, title, price, type).
product_attributes table stores product details dynamically as key-value pairs.
1.3 Frontend: HTML, CSS, JavaScript
HTML: Defines the structure of the e-commerce pages.
CSS: Provides styling to ensure a visually appealing design.
JavaScript: Handles interactive features (e.g., dynamic cart updates, form validation).
1.4 Local Development: XAMPP
XAMPP is used as a local development server, running:
Apache (for PHP scripts)
MySQL (database)
PHPMyAdmin (database management)
1.5 Automated Unit Testing
Unit testing is implemented to ensure the correctness of the PHP code.
PHPUnit is used for:
Testing database queries (e.g., product retrieval, user authentication).
Validating controller logic (e.g., login, cart actions).
Ensuring proper input validation.
2. Website Features
2.1 Admin Panel
Manage Products:
Add, edit, delete, and update products.
Manage Users:
View, edit, and delete users.
Order Management:
Track and manage customer orders.
2.2 User Functionalities
Browse Products: View product listings and details.
Cart Management: Add or remove items from the cart.
Checkout: Proceed to checkout and place an order.
Authentication: Login and signup using a secure system.
مشروع موقع التجارة الإلكترونية: التقنيات والهيكلية
هذا المشروع هو موقع تجارة إلكترونية يتيح للمستخدمين تصفح المنتجات، وإضافتها إلى سلة التسوق، وإزالتها منها، وإتمام عملية الشراء. كما يحتوي على لوحة تحكم للمسؤولين تتيح لهم إدارة المنتجات والمستخدمين من خلال عمليات CRUD. يشمل الموقع نظام تسجيل الدخول والتسجيل للمستخدمين.
١. التقنيات المستخدمة
١.١ الواجهة الخلفية: PHP مع نموذج MVC
يتم استخدام PHP لمعالجة منطق الموقع.
يعتمد الموقع على نموذج MVC (نموذج - عرض - متحكم) لفصل المهام:
النموذج (Model): مسؤول عن العمليات على قاعدة البيانات مثل استرجاع المنتجات وإدارة المستخدمين.
العرض (View): مسؤول عن عرض الصفحات الديناميكية للمستخدمين.
المتحكم (Controller): يتعامل مع طلبات المستخدم، يتفاعل مع النموذج، ويعرض الصفحات المناسبة.
١.٢ قاعدة البيانات: MySQL مع نموذج EAV
قاعدة البيانات MySQL تُستخدم لحفظ بيانات الموقع.
يعتمد نموذج EAV (الكيان - السمة - القيمة) لتخزين مواصفات المنتجات بشكل مرن.
١.٣ الواجهة الأمامية: HTML, CSS, JavaScript
HTML: لإنشاء هيكل الموقع وصفحاته.
CSS: لتنسيق الموقع وجعله أكثر جاذبية.
JavaScript: للتفاعل مع المستخدم مثل تحديث سلة التسوق بشكل ديناميكي.
١.٤ بيئة التطوير المحلية: XAMPP
يتم استخدام XAMPP لتشغيل بيئة التطوير محليًا، ويشمل:
Apache: لخدمة صفحات الويب.
MySQL: لإدارة قاعدة البيانات.
phpMyAdmin: لإدارة الجداول والبيانات بسهولة.
١.٥ الاختبار الآلي (Automated Unit Testing)
يتم استخدام PHPUnit لاختبار:
استعلامات قاعدة البيانات (مثل استرجاع المنتجات والتحقق من تسجيل الدخول).
وظائف المتحكمات (مثل تسجيل المستخدمين وإدارة المنتجات).
التحقق من صحة المدخلات لمنع الأخطاء الأمنية.
٢. ميزات الموقع
٢.١ لوحة تحكم المسؤول (Admin Panel)
إدارة المنتجات: إضافة، تعديل، حذف وتحديث المنتجات.
إدارة المستخدمين: عرض، تعديل، وحذف الحسابات.
إدارة الطلبات: متابعة الطلبات وتحديث حالتها.
٢.٢ ميزات المستخدمين
تصفح المنتجات: عرض المنتجات المتاحة ومواصفاتها.
إدارة سلة التسوق: إضافة المنتجات أو إزالتها.
إتمام الشراء: تنفيذ عملية الدفع وإنهاء الطلب.
نظام التسجيل والدخول: تسجيل مستخدمين جدد وتسجيل الدخول لحساباتهم.