Skip to content

Latest commit

 

History

History
262 lines (201 loc) · 13 KB

README_fa.md

File metadata and controls

262 lines (201 loc) · 13 KB

پیک موتوری

پیک موتوری یک پروژه بک‌اند است که با استفاده از فریمورک Django توسعه یافته و برای مدیریت و هماهنگی فعالیت‌های پیک‌های موتوری طراحی شده است. این سیستم به مدیریت سفارشات، رانندگان، مشتریان، آدرس‌ها و وضعیت‌های مختلف پیک‌های موتوری کمک می‌کند. همچنین، سیستم قابلیت ثبت و پیگیری سفارشات، مدیریت اطلاعات رانندگان و مشتریان، و نظارت بر حضور و غیاب رانندگان را داراست.

پروژه‌های مرتبط

این پروژه بک‌اند به دو اپلیکیشن موبایل متصل است که با استفاده از فریمورک فلاتر توسعه داده شده‌اند. یکی از اپلیکیشن‌ها به کاربران امکان می‌دهد تا سفارشات خود را ثبت کرده و وضعیت آن‌ها را پیگیری کنند. اپلیکیشن دیگر برای رانندگان طراحی شده است تا بتوانند سفارشات را دریافت و مدیریت کنند. برای کسب اطلاعات بیشتر درباره‌ی پروژه‌های فلاتر، لطفاً به لینک‌های زیر مراجعه کنید:

ویژگی‌ها

  • مدیریت سفارشات: امکان ثبت و پیگیری سفارشات، مشاهده وضعیت و جزئیات آن‌ها.
  • مدیریت رانندگان: مدیریت اطلاعات رانندگان، وضعیت‌ها و نوع پیک.
  • مدیریت مشتریان و آدرس‌ها: ثبت و مدیریت اطلاعات مشتریان و آدرس‌های آن‌ها.
  • مدیریت وضعیت‌ها و حضور و غیاب: نظارت بر وضعیت‌های مختلف پیک‌ها و مدیریت حضور و غیاب.
  • اتصال به اپلیکیشن‌های موبایل: قابلیت اتصال به اپلیکیشن‌های موبایل برای تعامل مستقیم با کاربران و رانندگان.

مدل‌ها (جداول)

Delivery

کلاس Delivery برای ذخیره اطلاعات مربوط به رانندگان پیک موتوری استفاده می‌شود. این مدل شامل مشخصاتی از جمله نام، نام خانوادگی، شماره تماس، تاریخ تولد، کد ملی، کد شخصی، وضعیت فعلی، تاریخ عضویت، نوع پیک (با جعبه، بدون جعبه، مسافر)، و شماره پلاک‌های خودرو است.

Customer

کلاس Customer برای ذخیره اطلاعات مشتریان سیستم طراحی شده است. این مدل شامل نام، نام خانوادگی، شماره تماس، جنسیت، شماره اشتراک، وضعیت فعال بودن، تاریخ عضویت و آخرین تاریخ به‌روزرسانی مشتریان است.

CustomerAddresses

کلاس CustomerAddresses برای مدیریت آدرس‌های مشتریان استفاده می‌شود. این مدل شامل کد آدرس، شماره اشتراک مشتری، نام و توضیحات آدرس و وضعیت اصلی بودن آن است.

Orders

کلاس Orders برای ثبت و مدیریت سفارشات پیک موتوری طراحی شده است. این مدل شامل نوع تحویل، نوع مسیر، شماره مسیر، آدرس مبدأ و مقصد، شماره اشتراک، نام و شماره تماس گیرنده، تاریخ و زمان ثبت و تکمیل سفارش، مبلغ سفارش، کد تحویل، وضعیت سفارش، و توضیحات مرتبط با آن است.

CustomerSessions

کلاس CustomerSessions برای ذخیره اطلاعات مربوط به نشست‌های مشتریان استفاده می‌شود. این مدل شامل شماره اشتراک و نشست جاری مشتری است.

DeliverySessions

کلاس DeliverySessions برای مدیریت نشست‌های رانندگان طراحی شده است. این مدل شامل کد شخصی و نشست جاری راننده است.

VerifyCode

کلاس VerifyCode برای تولید و ذخیره کدهای تأیید استفاده می‌شود. این مدل شامل وضعیت استفاده، شماره تماس، کد تأیید، زمان و تاریخ تولید کد و نوع استفاده از کد است.

API_KEYS

کلاس API_KEYS برای مدیریت کلیدهای API طراحی شده است. این مدل شامل کلید API، هش، و مجوزهای اضافه و لیست‌کردن API است.

Station

کلاس Station برای مدیریت ایستگاه‌های پیک موتوری استفاده می‌شود. این مدل شامل کد ایستگاه، نام، کد، توضیحات، تعداد سفارشات و تعداد پیک‌ها است.

AttendanceDelivery

کلاس AttendanceDelivery برای ثبت حضور و غیاب رانندگان پیک موتوری طراحی شده است. این مدل شامل کد تحویل، وضعیت حضور، تاریخ، زمان شروع، مدت زمان مرخصی، و وضعیت پایان است.

Events

کلاس Events برای ثبت و مدیریت رویدادها استفاده می‌شود. این مدل شامل کد، نام، زمان، تاریخ، توضیحات، مهمان‌ها و مکان رویداد است.

RegisterRequest

کلاس RegisterRequest برای مدیریت درخواست‌های ثبت‌نام رانندگان طراحی شده است. این مدل شامل کد، نام، کد ملی، نام پدر، شماره تماس، آدرس، وضعیت نظام وظیفه، و زمان ثبت‌نام است.

پیش‌نیازها

برای اجرای این پروژه نیاز به نصب نرم‌افزارها و ابزارهای زیر دارید:

وابستگی‌های پروژه

پکیج‌های زیر در این پروژه استفاده شده‌اند:

  • Django==5.0.1
  • django-jalali==6.0.1
  • djangorestframework==3.14.0
  • jdatetime==5.0.0

نصب و راه‌اندازی

برای راه‌اندازی پروژه، مراحل زیر را دنبال کنید:

  1. این مخزن را کلون کنید:

    git clone https://github.com/Bestsenator/Bike-Delivery.git
  2. وارد دایرکتوری پروژه شوید:

    cd Bike-Delivery
  3. یک محیط مجازی پایتون ایجاد کنید:

    python -m venv venv
  4. محیط مجازی را فعال کنید:

    • در سیستم‌عامل ویندوز:
      venv\Scripts\activate
    • در سیستم‌عامل مک یا لینوکس:
      source venv/bin/activate
  5. وابستگی‌های پروژه را نصب کنید:

    pip install -r requ.txt
  6. فایل .env را براساس نمونه .env.example تنظیم کنید.

  7. مهاجرت‌های پایگاه داده را اعمال کنید:

    python manage.py migrate
  8. سرور را اجرا کنید:

    python manage.py runserver
  9. پروژه اکنون در http://localhost:8000 در دسترس است.

API Endpoints

لیستی از توابع موجود در API:

  • POST /Orders_list/ - دریافت لیست سفارشات بر اساس کدهای تحویل، مشتری، وضعیت یا بازه زمانی مشخص شده
  • POST /create_api/ - ایجاد یک کلید API جدید و ذخیره آن
  • GET /list_api/ - دریافت لیست کلیدهای API موجود
  • POST /checkSession/ - بررسی وضعیت نشست کاربر و فعال بودن حساب کاربری
  • POST /getPhone/ - ارسال کد تأیید به شماره تلفن ثبت شده
  • POST /verifyPhone/ - تأیید کد ارسال شده به شماره تلفن و ایجاد نشست کاربر
  • POST /customerRegistration/ - ثبت‌نام مشتری جدید و ایجاد نشست برای آن
  • POST /infoCustomer/ - دریافت اطلاعات مشتری بر اساس شماره اشتراک
  • POST /editInfoCustomer/ - ویرایش اطلاعات مشتری بر اساس شماره اشتراک.
  • POST /getListAddr/ - دریافت لیست آدرس‌های ثبت شده برای یک مشتری بر اساس شماره اشتراک.
  • POST /addCustomerAddr/ - افزودن آدرس جدید برای مشتری. در صورتی که هیچ آدرسی برای مشتری وجود نداشته باشد، آدرس جدید به عنوان آدرس اصلی ثبت می‌شود.
  • POST /deleteCustomerAddr/ - حذف آدرس مشخص شده بر اساس شماره اشتراک و کد آدرس.
  • POST /editCustomerAddr/ - ویرایش اطلاعات آدرس مشتری بر اساس شماره اشتراک و کد آدرس.
  • GET /getListStations/ - دریافت لیست ایستگاه‌ها.
  • POST /Orders_list/ - دریافت لیست سفارشات بر اساس کدهای تحویل، مشتری، وضعیت یا بازه زمانی مشخص شده.
  • POST /orderRegistration/ - ثبت سفارش جدید برای مشتری.
  • POST /getStatusOrder/ - دریافت وضعیت سفارش بر اساس کد سفارش.
  • POST /cancelOrder/ - لغو سفارش بر اساس کد سفارش. سفارشاتی که وضعیت آنها از "در انتظار پذیرش" تغییر کرده باشد، قابل لغو نیستند.
  • POST /getLikeOrder/ - ثبت یا ویرایش امتیاز و توضیحات مشتری برای یک سفارش بر اساس کد سفارش.

ساختار پروژه

Bike-Delivery/
├── config/
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── api/
│   ├── migrations/
│   ├── models.py
│   ├── serializers.py
│   ├── views.py
│   └── urls.py
├── dashboard/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── calculator/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── attendanceDelivery/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── index/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── funcs/
│   ├── checkStatus.py
│   ├── auth.py
│   ├── auth_api.py
│   ├── cookies.py
│   ├── phone.py
│   ├── sms.py
│   └── hash.py
├── home/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── hourlyLeave/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── listDeliveries/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── listUsers/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── reports/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── support/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── workCalendar/
│   ├── migrations/
│   ├── models.py
│   ├── views.py
│   └── urls.py
├── static/
├── templates/
├── manage.py
├── db.sqlite3
├── README.md
├── README_fa.md
├── README_en.md
└── requ.txt

مشارکت

اگر مایل به مشارکت در این پروژه هستید، می‌توانید:

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

تشکر ویژه

Ali Najafzadeh

تشکر ویژه از برنامه‌نویس اپلیکیشن فلاتر که با تلاش و مهارت خود این اپلیکیشن را توسعه داده و به این پروژه بک‌اند متصل کرده است. بدون زحمات او، امکان ایجاد این سیستم یکپارچه فراهم نمی‌شد.