یک برنامه دسکتاپ جامع برای مدیریت عملیات فروشگاه خردهفروشی، ساخته شده با Python و Tkinter با استفاده از الگوی معماری MVC (Model-View-Controller).
- 👥 مدیریت مشتری - عملیات کامل CRUD برای ثبت رکوردهای مشتری
- 👨💼 مدیریت کارمند - مدیریت کارمندان با دسترسی مبتنی بر نقش
- 📦 مدیریت محصول - کاتالوگ محصولات با دستهبندی، برند و موجودی
- 🛒 مدیریت سفارش - پردازش و ردیابی سفارشات
- 💳 پردازش پرداخت - مدیریت پرداخت و ثبت تراکنشها
- 📍 مدیریت تحویل - ردیابی و مدیریت تحویل
- 🏭 مدیریت انبار - کنترل موجودی و مدیریت موجودی
- 💰 ردیابی مالی - تراکنشها و گزارشدهی مالی
- 🏦 مدیریت حساب بانکی - مدیریت چندین حساب بانکی
- 🎨 رابط کاربری گرافیکی مدرن و بصری ساخته شده با Tkinter
- 📊 جداول داده با اسکرولبار عمودی
- 🔍 قابلیتهای جستجو و فیلتر پیشرفته
- ✨ چیدمان دکمههای یکنواخت و تجربه کاربری یکپارچه
- 🔄 عملکرد Select و Refresh در تمام نمایشها
- ✅ اعتبارسنجی ورودی برای تمام فیلدها
- 💾 پایگاه داده SQLite برای ذخیرهسازی داده
- 🔒 احراز هویت امن کاربر
- 📝 سیستم لاگگیری جامع
این پروژه از الگوی معماری MVC (Model-View-Controller) پیروی میکند:
┌─────────────┐
│ View │ لایه رابط کاربری
└──────┬──────┘
│
↓
┌─────────────┐
│ Controller │ لایه منطق کسب و کار
└──────┬──────┘
│
↓
┌─────────────┐
│ Repository │ لایه دسترسی به داده
└──────┬──────┘
│
↓
┌─────────────┐
│ Database │ پایگاه داده SQLite
└─────────────┘
- زبان: Python 3.x
- چارچوب رابط کاربری: Tkinter
- پایگاه داده: SQLite
- معماری: الگوی MVC
- تست: ماژول unittest داخلی
- Python 3.7 یا بالاتر
- pip (مدیر بسته Python)
-
کلون کردن مخزن
git clone https://github.com/yourusername/StoreAppPython.git cd StoreAppPython -
نصب وابستگیها (در صورت وجود)
pip install -r requirements.txt
-
راهاندازی پایگاه داده
# پایگاه داده به صورت خودکار در اولین اجرا ایجاد میشود # یا میتوانید اسکریپت SQL را به صورت دستی اجرا کنید: sqlite3 db/selling_db < db/database_tables.sql
-
اجرای برنامه
python app.py
python app.pyبرنامه با صفحه ورود شروع میشود. از اطلاعات کارمندی خود برای ورود استفاده کنید.
هر ماژول را میتوان به صورت مستقل با اجرای دستورات زیر دسترسی داشت:
python customer_main.py # مدیریت مشتری
python employee_main.py # مدیریت کارمند
python product_main.py # مدیریت محصول
python order_main.py # مدیریت سفارش
python payment_main.py # مدیریت پرداخت
python warehouse_main.py # مدیریت انبار
python bank_main.py # مدیریت بانک- انتخاب - کلیک روی یک ردیف در جدول برای انتخاب و مشاهده جزئیات
- تازهسازی - تازهسازی جدول برای نمایش آخرین دادهها
- ذخیره - افزودن رکورد جدید
- ویرایش - بهروزرسانی رکورد انتخاب شده
- حذف - حذف رکورد انتخاب شده
StoreAppPython/
│
├── app.py # نقطه ورود اصلی برنامه
├── login_view.py # ورود و احراز هویت
│
├── model/ # مدلهای داده
│ ├── customer.py
│ ├── employee.py
│ ├── product.py
│ ├── order.py
│ ├── payment.py
│ └── ...
│
├── view/ # رابط کاربری
│ ├── customer_view.py
│ ├── employee_view.py
│ ├── product_view.py
│ ├── component/ # کامپوننتهای قابل استفاده مجدد UI
│ │ ├── table.py
│ │ └── lable_with_entry.py
│ └── ...
│
├── controller/ # منطق کسب و کار
│ ├── customer_controller.py
│ ├── employee_controller.py
│ └── ...
│
├── service/ # لایه سرویس
│ ├── customer_service.py
│ └── ...
│
├── repository/ # دسترسی به داده
│ ├── customer_repository.py
│ └── ...
│
├── tools/ # ابزارها
│ ├── validators/
│ └── logging.py
│
├── test/ # تستهای واحد
│ ├── customer_test.py
│ └── ...
│
└── db/ # پایگاه داده
├── database_tables.sql
└── selling_db
- Customer - اطلاعات و جزئیات تماس مشتری
- Employee - مدیریت کارمند با نقشها و احراز هویت
- Product - کاتالوگ محصولات با دستهبندی و موجودی
- Order - سفارشات فروش و تراکنشها
- OrderItem - آیتمهای خط سفارش
- Payment - سوابق و روشهای پرداخت
- Delivery - ردیابی تحویل
- Warehouse - مکانهای انبار
- WarehouseTransaction - جابجاییهای موجودی
- FinancialTransaction - سوابق مالی
- Bank - مدیریت حساب بانکی
- Sample - مدیریت محصول نمونه
- ویجت جدول سفارشی با Treeview
- پشتیبانی از اسکرولبار عمودی
- عملکرد انتخاب ردیف
- قابلیت تازهسازی داده
- کامپوننت ورودی قابل استفاده مجدد
- ترکیب برچسب و فیلد ورودی
- پشتیبانی از انواع دادههای مختلف
- پشتیبانی از اعتبارسنجی
ما از مشارکتها استقبال میکنیم! لطفاً این مراحل را دنبال کنید:
- مخزن را Fork کنید
- یک شاخه ویژگی ایجاد کنید (
git checkout -b feature/AmazingFeature) - تغییرات خود را commit کنید (
git commit -m 'Add some AmazingFeature') - به شاخه push کنید (
git push origin feature/AmazingFeature) - یک Pull Request باز کنید
- پیروی از راهنمای سبک PEP 8 برای Python
- افزودن توضیحات برای منطق پیچیده
- نوشتن تستهای واحد برای ویژگیهای جدید
- حفظ یکنواختی الگوی MVC
این پروژه تحت مجوز MIT منتشر شده است - برای جزئیات به فایل LICENSE مراجعه کنید.
از تمام مشارکتکنندگانی که این پروژه را ممکن کردهاند، سپاسگزاری ویژه داریم. برای اطلاعات جزئیتر مشارکتکنندگان به CONTRIBUTION_REPORT.md مراجعه کنید.
برای پشتیبانی، لطفاً یک issue در مخزن GitHub باز کنید یا با تیم توسعه تماس بگیرید.
ساخته شده با ❤️ توسط تیم مدیریت فروشگاه