3.0 KiB
سامانه تیکتینگ فروش
پیادهسازی Django Modular Monolith بر اساس سند نیازمندی همین مخزن. رابط فارسی و RTL است و جریانهای مشتری، کارشناس، دسترسی خصوصی، پیام، فایل، OTP، Magic Link و Notification Outbox را پوشش میدهد.
اجرای محلی
python -m venv .venv
.\.venv\Scripts\python -m pip install -r requirements.txt
.\.venv\Scripts\python manage.py migrate
.\.venv\Scripts\python manage.py bootstrap
.\.venv\Scripts\python manage.py createsuperuser
.\.venv\Scripts\python manage.py runserver
در محیط توسعه SQLite فعال است. OTP در ترمینال با پیشوند [DEV OTP] چاپ میشود. برای تست سریع، شماره 09202202129 با کد ثابت 12345 فقط در تنظیمات Development قابل ورود است؛ تنظیمات Production این میانبر را غیرفعال نگه میدارند. برای ایجاد کارشناس، User با account_type=STAFF و StaffProfile بسازید و او را عضو گروه Sales Expert یا Sales Manager کنید.
اجرای Production با Docker
Copy-Item .env.example .env
docker volume create customer_ticket_static
docker volume create customer_ticket_media
docker volume create customer_ticket_seed
docker compose up --build
قبل از استقرار مقادیر secret و host در .env را تغییر دهید. TLS و proxy اپلیکیشن توسط Traefik خود Coolify مدیریت میشود. migration، bootstrap و collectstatic هنگام شروع web به شکل خودکار اجرا میشوند. Nginx فقط static را سرو میکند و فایلهای آپلودی خصوصی پس از کنترل مجوز مستقیماً توسط Django تحویل داده میشوند.
راهنمای کامل تنظیم Coolify، volumeها، PostgreSQL خارجی و worker در docs/DEPLOYMENT_COOLIFY.md است. راهنمای انتقال خودکار تمام دادههای پایدار SQLite به PostgreSQL در docs/PRODUCTION_SEED.md است.
تست
.\.venv\Scripts\python -m pytest -q
قواعد کلیدی در apps/tickets/policies.py متمرکز شدهاند و عملیات حساس در apps/tickets/services.py تراکنشی هستند.
Environment files
- Direct development with
config.settings.devautomatically loads.env.local. - Production with
config.settings.prodcan load.env; Docker Compose also injects that file into its services. - Set
DJANGO_ENV_FILEin the process environment to select another file, such as/etc/customer-ticket/server.env. - Existing process variables always take precedence over values in dotenv files.
- Copy
.env.local.exampleto.env.localfor a safe local starting point; real dotenv files are excluded from Git and Docker images.