فروشگاه اینترنتی
نوع پروژه
فروشگاه اینترنتی
کارفرما
پروژه شخصی
نقش من
طراحی و توسعه کامل وب اپلیکیشن، پیادهسازی بکاند با Django، توسعه فروشگاه، سبد خرید، سفارشها، حساب کاربری، پنل مدیریت اختصاصی و سیستم اعلانهای لحظهای
Django Online Shop
یک فروشگاه اینترنتی کامل با Django 4 که شامل کاتالوگ محصولات، دستهبندیها، سبد خرید، ثبت سفارش، حساب کاربری، پنل مدیریت اختصاصی، گزارشگیری و اعلانهای لحظهای با Django Channels است.
نمای پروژه
تمرکز روی یک نمای اصلی از اجرای پروژه
شروع پروژه
معرفی پروژه
Django Online Shop یک وب اپلیکیشن فروشگاهی کامل است که با Django 4 توسعه داده شده و بخشهای اصلی یک فروشگاه اینترنتی را پوشش میدهد. این پروژه شامل کاتالوگ محصولات، دستهبندیها، توضیحات کامل محصول، تخفیف، امتیازدهی و نظرات کاربران، سبد خرید، ثبت سفارش و مدیریت حساب کاربری است.
در کنار امکانات سمت کاربر، یک پنل مدیریت اختصاصی نیز برای مدیریت بهتر فروشگاه پیادهسازی شده است. این پنل شامل بخشهایی مانند مدیریت سفارشها، مدیریت محصولات و دستهبندیها، گزارشگیری همراه با نمودار، اعلانها و تنظیمات سایت است.
یکی از بخشهای مهم پروژه، سیستم Realtime Notifications است که با استفاده از Django Channels و ساختار ASGI/WebSocket پیادهسازی شده و امکان نمایش اعلانهای زنده برای رویدادهای مهم را فراهم میکند. همچنین پروژه از آپلود رسانهها مانند تصاویر محصولات و آواتار کاربران پشتیبانی میکند.
بخش پرداخت در پروژه بهصورت پیشفرض غیرفعال است و به شکلی طراحی شده که در صورت نیاز، توسعهدهنده بتواند آن را فعال کرده و به یک درگاه پرداخت واقعی متصل کند.
مسئله اصلی
چالش پروژه
چالش اصلی این پروژه، پیادهسازی یک فروشگاه اینترنتی ماژولار و قابل توسعه بود که فقط به نمایش محصول محدود نباشد و بخشهای واقعی یک سیستم فروشگاهی مثل سبد خرید، ثبت سفارش، مدیریت کاربران، پنل ادمین، گزارشگیری و اعلانهای زنده را پوشش دهد.
از طرف دیگر، پروژه باید برای توسعههای بعدی آماده میبود؛ یعنی امکان اتصال درگاه پرداخت، تغییر دیتابیس، اضافه کردن امکانات جدید و مدیریت بهتر بخشهای فروشگاه بدون بههمریختگی ساختار کد وجود داشته باشد.
مسیر اجرا
راه حل اجرا
برای حل این مسئله، پروژه بهصورت ماژولار با اپلیکیشنهای جداگانه Django طراحی شد. بخشهایی مثل products، cart، orders، accounts، notifications و adminpanel هرکدام مسئولیت مشخصی دارند و همین موضوع توسعه و نگهداری پروژه را سادهتر میکند.
برای مدیریت محصولات، مدلهایی برای دستهبندی، محصول، توضیحات غنی، تخفیف، موجودی، تصویر محصول و نظرات کاربران پیادهسازی شد. در بخش سبد خرید نیز امکان افزودن، حذف، تغییر تعداد، محاسبه مجموع قیمت و محاسبه تخفیفها در نظر گرفته شد.
برای سفارشها، مدل Order و OrderItem طراحی شد تا اطلاعات مشتری، آدرس، وضعیت سفارش، وضعیت پرداخت و اقلام سفارش ذخیره شود. همچنین پنل مدیریت اختصاصی برای کنترل سفارشها، محصولات، دستهبندیها، گزارشها و تنظیمات سایت توسعه داده شد.
برای اعلانهای زنده از Django Channels و WebSocket استفاده شد تا بعضی رویدادهای مهم سیستم بدون نیاز به refresh صفحه به کاربر یا مدیر نمایش داده شوند.
دستاورد نهایی
خروجی و نتیجه
خروجی پروژه یک فروشگاه اینترنتی کامل و قابل توسعه است که امکانات اصلی مورد نیاز یک سیستم فروشگاهی را در قالب یک پروژه Django پیادهسازی میکند. این پروژه هم برای نمایش توانایی در توسعه بکاند و معماری Django مناسب است، هم برای ارائه بهعنوان نمونهکار فروشگاهی در سایت شخصی.
وجود پنل مدیریت اختصاصی، سیستم اعلان لحظهای، مدیریت سفارشها، سبد خرید، پروفایل کاربران، نظرات و امتیازدهی محصولات باعث شده پروژه از یک نمونه ساده فروشگاهی فراتر برود و به یک وب اپلیکیشن کاربردیتر نزدیک شود.
زیرساخت اجرا
فناوری های پروژه
این پروژه با مجموعهای از ابزارها و فناوریهایی پیادهسازی شده که برای سرعت توسعه، پایداری و مقیاس مناسب انتخاب شدهاند.
Python
Django 4
Django Channels
ASGI
WebSocket
SQLite
Tailwind CSS
Django Allauth
Django CKEditor
Django Crispy Forms
Django Rosetta
Daphne
Pillow
گام بعدی
لینک های پروژه
برای بررسی اجرای نهایی یا مرور ساختار کد، از مسیرهای زیر وارد خود پروژه یا مخزن آن شوید.