راهنمای راهاندازی پروژه
راهاندازی محلی برای توسعهدهندگان 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/
داده تست پیشنهادی
- در Admin یک User با role=agent بسازید و AgentProfile برایش ایجاد کنید
- Staff (منشی) جداگانه بسازید
- City / Location / PropertyType / PropertyOwner را ثبت کنید
- با 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 | شِل تعاملی |