[project] name = "django-backend" version = "1.0.0" description = "ThrillWiki Django Backend API" requires-python = ">=3.12" readme = "README.md" dependencies = [ # Core Django (Latest: 5.1.3 - Django 5.2 doesn't exist yet) "Django>=5.1.3", "psycopg[binary]>=3.2.3", # API Framework "django-ninja>=1.3.0", "pydantic>=2.10.6", # Database & ORM utilities "django-model-utils>=5.0.0", "django-guardian>=2.4.0", "django-lifecycle>=1.2.4", "django-fsm>=3.0.0", "django-dirtyfields>=1.9.2", # Async & Background Tasks "celery[redis]>=5.4.0", "django-celery-beat>=2.7.0", "django-celery-results>=2.5.1", "flower>=2.0.1", # Caching & Performance "django-redis>=5.4.0", "django-cacheops>=7.0.2", "hiredis>=2.3.2", # Real-time "channels>=4.2.0", "channels-redis>=4.2.1", "daphne>=4.1.2", # Media & Storage "django-storages[s3]>=1.14.4", "Pillow>=11.0.0", "python-magic>=0.4.27", # Security & Authentication "django-cors-headers>=4.6.0", "django-ratelimit>=4.1.0", "django-otp>=1.5.4", "django-allauth>=65.3.0", "djangorestframework-simplejwt>=5.3.1", "django-defender>=0.9.8", "webauthn>=2.2.0", "qrcode>=8.0", # Validation & Serialization "marshmallow>=3.23.2", # Admin Interface "django-unfold>=0.42.0", "django-import-export>=4.3.3", "tablib[html,xls,xlsx]>=3.7.0", # Utilities "django-extensions>=3.2.3", "django-environ>=0.11.2", "django-filter>=24.3", "python-slugify>=8.0.4", "python-dateutil>=2.9.0", # Monitoring & Logging "sentry-sdk>=2.19.2", "structlog>=24.4.0", # HTTP & External APIs "requests>=2.32.3", "httpx>=0.28.1", # UUID utilities "shortuuid>=1.0.13", # History tracking "django-pghistory>=3.5.0", "django-viewflow>=2.2.13", "django-fsm-2==4.1.0", ] [dependency-groups] dev = [ "pytest>=8.3.4", "pytest-django>=4.9.0", "pytest-cov>=6.0.0", "pytest-asyncio>=0.24.0", "factory-boy>=3.3.1", "faker>=33.1.0", "ipython>=8.31.0", "ipdb>=0.13.13", ]