راهنمای راه‌اندازی پروژه

راه‌اندازی محلی برای توسعه‌دهندگان Frontend و Backend


پیش‌نیازها
  • Python 3.11+
  • PostgreSQL
  • Git
OTP و کش داشبورد روی Django Cache (LocMem) کار می‌کنند؛ برای توسعه لوکال نصب Redis الزامی نیست.
نصب
git clone <repo-url>
cd SoltaniAutomation
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
pip install -r requirements.txt
فایل .env
SECRET_KEY=change-me
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost
DB_ENGINE=django.db.backends.postgresql
DB_NAME=devdb
DB_USER=devuser
DB_PASSWORD=changeme
DB_HOST=localhost
DB_PORT=5432
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
Migration و Superuser
python manage.py migrate
python manage.py sync_rbac --roles
python manage.py createsuperuser
python manage.py runserver 0.0.0.0:8000

sync_rbac --roles کاتالوگ دسترسی‌ها و نقش‌های پیش‌فرض (منشی، CRM) را می‌سازد. جزئیات: مستندات RBAC.

آدرس‌های مهم
  • Admin: /admin/
  • Docs HTML: /
  • Swagger: /api/schema/swagger-ui/
  • ReDoc: /api/schema/redoc/
داده تست پیشنهادی
  1. در Admin یک User با role=agent بسازید و AgentProfile برایش ایجاد کنید
  2. Staff (منشی) جداگانه بسازید
  3. City / Location / PropertyType / PropertyOwner را ثبت کنید
  4. با OTP لاگین کنید و /properties/create/ را تست کنید
تست OTP
curl -X POST http://127.0.0.1:8000/auth/request-otp/ \
  -H "Content-Type: application/json" \
  -d "{\"phonenumber\":\"09123456789\"}"
# کد OTP را در خروجی ترمینال سرور ببینید
curl -X POST http://127.0.0.1:8000/auth/verify-otp/ \
  -H "Content-Type: application/json" \
  -d "{\"phonenumber\":\"09123456789\",\"otp\":\"XXXXXX\"}"
رفع مشکلات
  • DB connection: سرویس PostgreSQL و مقادیر .env
  • SECRET_KEY: باید در .env ست شده باشد
  • ModuleNotFound: venv فعال + pip install -r
  • 401 روی API: Bearer token را چک کنید
  • لیست خالی برای staff: فقط show_status=ok دیده می‌شود
دستورات پرکاربرد
دستورتوضیح
python manage.py runserverاجرای سرور
python manage.py migrateاعمال migration
python manage.py makemigrationsساخت migration
python manage.py createsuperuserساخت ادمین
python manage.py shellشِل تعاملی