close out the docs: current counts, the live-streak caveat for demo accounts, CACHE_URL as it really behaves

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-24 07:47:29 +03:30
parent 81348cee5a
commit fbdb9495ee
2 changed files with 6 additions and 4 deletions

View File

@@ -17,7 +17,7 @@ python manage.py test accounts # single app
python manage.py test accounts.tests.SomeTestCase.test_something # single test python manage.py test accounts.tests.SomeTestCase.test_something # single test
``` ```
Local dev requires `DJANGO_DEBUG=1` (enables Swagger auth via `DEV_MASTER_OTP`/`devOtp` in responses). `DEBUG` defaults to `False`. Production also requires `DJANGO_SECRET_KEY`, `DJANGO_ALLOWED_HOSTS` (comma-separated), and `CACHE_URL` (Redis — required whenever `DEBUG=False` since rate limiting needs a shared cache; raises `ImproperlyConfigured` otherwise). Local dev requires `DJANGO_DEBUG=1` (enables Swagger auth via `DEV_MASTER_OTP`/`devOtp` in responses). `DEBUG` defaults to `False`. Production also requires `DJANGO_SECRET_KEY`, `DJANGO_ALLOWED_HOSTS` (comma-separated), and ideally `CACHE_URL` (Redis). Without it the app still boots on per-process `LocMemCache` and `/api/health` warns — throttles and admin-driven cache invalidation are then per worker. On the server it is still unset (left to the server admin, 2026-09-24).
No pytest; uses Django's built-in test runner. No linter/formatter configured. No pytest; uses Django's built-in test runner. No linter/formatter configured.
@@ -373,7 +373,7 @@ anyone who can read this repo can forge a token for any user.**
## وضعیت فعلی (۲۰۲۶-۰۹-۲۴) — این را اول بخوان ## وضعیت فعلی (۲۰۲۶-۰۹-۲۴) — این را اول بخوان
سرور روی `96f0204` است (سرویس واقعاً ری‌استارت شد)، **۵۳۰ تست سبز**. آن روز کلِ سرور روی `81348ce` به بعد است (سرویس واقعاً ری‌استارت شد)، **۵۳۰ تست سبز**، ۶۰ اندپوینت. **پروژه در این تاریخ بسته شد**؛ فایل‌های تحویل (گزارشِ ۲۲، راهنمای ارائه، zipِ بک‌اند) در `~/Desktop/گزارشات Tadrisino/گزارش-۲۲/` به‌روزند. آن روز کلِ
فرانت (`MathApp_frontend`، upstream `main` = `d223336`) صفحه‌به‌صفحه با API زنده فرانت (`MathApp_frontend`، upstream `main` = `d223336`) صفحه‌به‌صفحه با API زنده
تطبیق داده شد و هرچه سمتِ بک‌اند کم بود ساخته شد. کارهای ماندهٔ فرانت در تطبیق داده شد و هرچه سمتِ بک‌اند کم بود ساخته شد. کارهای ماندهٔ فرانت در
`~/Desktop/کارهای-فرانت-تدریسینو.html` برای تیمِ فرانت فرستاده شد. `~/Desktop/کارهای-فرانت-تدریسینو.html` برای تیمِ فرانت فرستاده شد.
@@ -390,6 +390,8 @@ anyone who can read this repo can forge a token for any user.**
gthread ۳×۸ و timeoutِ ۱۲۰ (قبلاً سه چتِ هم‌زمانِ دستیار کلِ API را قفل می‌کرد)، gthread ۳×۸ و timeoutِ ۱۲۰ (قبلاً سه چتِ هم‌زمانِ دستیار کلِ API را قفل می‌کرد)،
`Cache-Control: private, no-store` روی همهٔ `/api/`، بازگشت از زرین‌پال به خودِ اپ، `Cache-Control: private, no-store` روی همهٔ `/api/`، بازگشت از زرین‌پال به خودِ اپ،
refresh token برای مهمان، `PATCH /api/notifications/read-all`. refresh token برای مهمان، `PATCH /api/notifications/read-all`.
- **استریکِ حساب‌های دمو از ۲۰۲۶-۰۹-۲۵ صفر نشان داده می‌شود** (آخرین روزِ فعالشان ۰۹-۲۳ است) و لیدربردِ هفتگی بعد از ۰۹-۳۰ از آن‌ها خالی می‌شود؛ این رفتارِ درستِ استریکِ زنده است، نه باگ.
- **سرور هنوز روی کلیدِ `django-insecure-…` است** (۲۰۲۶-۰۹-۲۴ دوباره تأیید شد، فقط به‌صورتِ بولین).
- **دستِ ما نیست**: GapGPT کلِ جواب را ~۵ ثانیه نگه می‌دارد و بعد یک‌جا می‌فرستد. - **دستِ ما نیست**: GapGPT کلِ جواب را ~۵ ثانیه نگه می‌دارد و بعد یک‌جا می‌فرستد.
`CACHE_URL` (Redis db1) به تصمیمِ صاحبِ پروژه به ادمینِ سرور سپرده شد. پورتِ ۸۰ِ `CACHE_URL` (Redis db1) به تصمیمِ صاحبِ پروژه به ادمینِ سرور سپرده شد. پورتِ ۸۰ِ
سرور بدونِ آروان هم جواب می‌دهد (کارِ ادمین). سرور بدونِ آروان هم جواب می‌دهد (کارِ ادمین).

View File

@@ -12,8 +12,8 @@
| **وضعیت** | روی پروداکشن، در حالِ سرویس‌دهی | | **وضعیت** | روی پروداکشن، در حالِ سرویس‌دهی |
| **آدرسِ زنده** | `https://api.math.tadrisino2.ir` · [سلامت](https://api.math.tadrisino2.ir/api/health) | | **آدرسِ زنده** | `https://api.math.tadrisino2.ir` · [سلامت](https://api.math.tadrisino2.ir/api/health) |
| **استک** | Python 3.11+ · Django 5.2 · DRF · SQLite · Qdrant (RAG) | | **استک** | Python 3.11+ · Django 5.2 · DRF · SQLite · Qdrant (RAG) |
| **API** | ۵۶ اندپوینت · مستنداتِ زنده در `/api/docs/` | | **API** | ۶۰ اندپوینت · مستنداتِ زنده در `/api/docs/` |
| **تست** | ۴۸۹ تست، همه سبز (`python manage.py test`) | | **تست** | ۵۳۰ تست، همه سبز (`python manage.py test`) |
| **محتوا** | ۸ پایه · ۵۸ فصل · ۲۶۳ نود · ۲٬۶۱۷ درس · ۲٬۴۶۳ سوال | | **محتوا** | ۸ پایه · ۵۸ فصل · ۲۶۳ نود · ۲٬۶۱۷ درس · ۲٬۴۶۳ سوال |
--- ---