Skip to content

AhmadMessbah/StoreAppPython

Repository files navigation

🏪 سیستم مدیریت فروشگاه

یک برنامه دسکتاپ جامع برای مدیریت عملیات فروشگاه خرده‌فروشی، ساخته شده با 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)

مراحل راه‌اندازی

  1. کلون کردن مخزن

    git clone https://github.com/yourusername/StoreAppPython.git
    cd StoreAppPython
  2. نصب وابستگی‌ها (در صورت وجود)

    pip install -r requirements.txt
  3. راه‌اندازی پایگاه داده

    # پایگاه داده به صورت خودکار در اولین اجرا ایجاد می‌شود
    # یا می‌توانید اسکریپت SQL را به صورت دستی اجرا کنید:
    sqlite3 db/selling_db < db/database_tables.sql
  4. اجرای برنامه

    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          # مدیریت بانک

عملیات اصلی

  1. انتخاب - کلیک روی یک ردیف در جدول برای انتخاب و مشاهده جزئیات
  2. تازه‌سازی - تازه‌سازی جدول برای نمایش آخرین داده‌ها
  3. ذخیره - افزودن رکورد جدید
  4. ویرایش - به‌روزرسانی رکورد انتخاب شده
  5. حذف - حذف رکورد انتخاب شده

📁 ساختار پروژه

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 - مدیریت محصول نمونه

کامپوننت‌های رابط کاربری

کامپوننت Table

  • ویجت جدول سفارشی با Treeview
  • پشتیبانی از اسکرول‌بار عمودی
  • عملکرد انتخاب ردیف
  • قابلیت تازه‌سازی داده

کامپوننت LabelWithEntry

  • کامپوننت ورودی قابل استفاده مجدد
  • ترکیب برچسب و فیلد ورودی
  • پشتیبانی از انواع داده‌های مختلف
  • پشتیبانی از اعتبارسنجی

👥 مشارکت

ما از مشارکت‌ها استقبال می‌کنیم! لطفاً این مراحل را دنبال کنید:

  1. مخزن را Fork کنید
  2. یک شاخه ویژگی ایجاد کنید (git checkout -b feature/AmazingFeature)
  3. تغییرات خود را commit کنید (git commit -m 'Add some AmazingFeature')
  4. به شاخه push کنید (git push origin feature/AmazingFeature)
  5. یک Pull Request باز کنید

سبک کد

  • پیروی از راهنمای سبک PEP 8 برای Python
  • افزودن توضیحات برای منطق پیچیده
  • نوشتن تست‌های واحد برای ویژگی‌های جدید
  • حفظ یکنواختی الگوی MVC

📄 مجوز

این پروژه تحت مجوز MIT منتشر شده است - برای جزئیات به فایل LICENSE مراجعه کنید.

🙏 قدردانی

از تمام مشارکت‌کنندگانی که این پروژه را ممکن کرده‌اند، سپاسگزاری ویژه داریم. برای اطلاعات جزئی‌تر مشارکت‌کنندگان به CONTRIBUTION_REPORT.md مراجعه کنید.

📞 پشتیبانی

برای پشتیبانی، لطفاً یک issue در مخزن GitHub باز کنید یا با تیم توسعه تماس بگیرید.


ساخته شده با ❤️ توسط تیم مدیریت فروشگاه

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages