1️⃣ Backend — MVP bo‘yicha keyingi modullar
Texnik topshiriq va texstack hujjatlariga qaraganda bizda MVP bo‘yicha modul ketma-ketligi shunday:
✅ Auth (OTP → JWT) — allaqachon boshlangan, custom User ham bor.
🔜 Profiles & Onboarding (student/tutor)
🔜 Catalog (Subjects & Tags)
🔜 Availability (jadval + exceptions)
🔜 Booking (transaction lock + idempotency)
🔜 Payments (adapter layer: Click/Payme → Stripe-like interfeys)
🔜 Messaging (chat) → NestJS WS integratsiyasi
🔜 Video (Jitsi JWT)
🔜 Reviews
🔜 Notifications (email/SMS/push)
🔜 Admin Panel API
2️⃣ Infra / DevOps bo‘yicha navbatdagi ishlar
Celery worker/beat’ni alohida servislarda yoqish (reminder, payouts).
Monitoring (Sentry DSN, Prometheus endpoint, /healthz va /readiness).
Static/media fayllarni S3 yoki Nginx orqali to‘g‘ri serve qilish.
Backup & alerting siyosati.
Whitenoise orqali statiklarni serve qilamiz. Admin CSS/JS qayta deploydan so‘ng yo‘qolib qolmasligi uchun web container ishga tushishidan oldin collectstatic bajarilishi shart.
- Dockerfile allaqachon
python manage.py collectstatic --noinputni default CMD ichida chaqiradi. - Agar docker-compose.prod.yml ichida
command:bilan override qilsangiz,migrate && collectstatic && gunicornzanjirini saqlang.
Bu repo uchun prod compose faylida shunday yozilgan:
command: sh -c "python manage.py migrate --noinput && python manage.py collectstatic --noinput && gunicorn backend.wsgi:application --bind 0.0.0.0:8000 --workers ${WEB_CONCURRENCY:-3} --threads ${WEB_THREADS:-2} --timeout 60"Aks holda adminning stylelari yuklanmay qoladi (staticfiles katalogi bo‘sh bo‘ladi).