Add secret management guide, client-side performance monitoring, and search accessibility enhancements

- Introduced a comprehensive Secret Management Guide detailing best practices, secret classification, development setup, production management, rotation procedures, and emergency protocols.
- Implemented a client-side performance monitoring script to track various metrics including page load performance, paint metrics, layout shifts, and memory usage.
- Enhanced search accessibility with keyboard navigation support for search results, ensuring compliance with WCAG standards and improving user experience.
This commit is contained in:
pacnpal
2025-12-23 16:41:42 -05:00
parent ae31e889d7
commit edcd8f2076
155 changed files with 22046 additions and 4645 deletions

View File

@@ -1,70 +1,36 @@
[tool.poetry]
name = "thrillwiki"
[project]
name = "thrillwiki-workspace"
version = "0.1.0"
description = "A Django + React application using reactivated.io"
authors = ["Your Name <your.email@example.com>"]
packages = [{include = "thrillwiki", from = "backend"}]
description = "ThrillWiki - The Ultimate Theme Park Database"
requires-python = ">=3.13"
readme = "docs/README.md"
[tool.poetry.dependencies]
python = "^3.11"
Django = "^5.0"
djangorestframework = "^3.14.0"
django-cors-headers = "^4.3.1"
django-fsm = "^2.8.1"
django-fsm-log = "^3.1.0"
[tool.poetry.group.dev.dependencies]
black = "^25.1.0"
isort = "^6.0.0"
mypy = "^1.8.0"
[tool.uv.workspace]
members = ["backend"]
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.reactivated]
django_project = "thrillwiki"
django_settings = "thrillwiki.settings"
# =============================================================================
# Ruff Configuration (shared across workspace)
# =============================================================================
[project]
name = "thrillwiki"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
"Django>=5.0",
"djangorestframework>=3.14.0",
"django-cors-headers>=4.3.1",
"django-allauth>=0.60.1",
"django-oauth-toolkit>=3.0.1",
"dj-rest-auth>=7.0.0",
"pyjwt>=2.10.1",
"psycopg2-binary>=2.9.9",
"dj-database-url>=2.3.0",
"requests>=2.32.3",
"django-webpack-loader>=3.1.1",
"python-dotenv>=1.0.1",
"Pillow>=10.2.0",
"django-cleanup>=8.0.0",
"django-filter>=23.5",
"django-htmx>=1.17.2",
"whitenoise>=6.6.0",
"pycountry>=24.6.1",
"black>=24.1.0",
"flake8>=7.1.1",
"pytest>=8.3.4",
"pytest-django>=4.9.0",
"channels>=4.2.0",
"channels-redis>=4.2.1",
"daphne>=4.1.2",
"django-simple-history>=3.5.0",
"django-tailwind-cli>=2.21.1",
"playwright>=1.41.0",
"pytest-playwright>=0.4.3",
"django-pghistory>=3.5.2",
"django-htmx-autocomplete>=1.0.5",
"coverage>=7.9.1",
"poetry>=2.1.3",
"reactivated>=0.47.5",
"django-fsm>=2.8.1",
"django-fsm-log>=3.1.0",
]
[tool.ruff]
line-length = 120
target-version = "py313"
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B", "C4", "SIM"]
ignore = ["E501"]
[tool.ruff.lint.isort]
known-first-party = ["apps", "config", "thrillwiki"]
# =============================================================================
# Black Configuration (shared across workspace)
# =============================================================================
[tool.black]
line-length = 120
target-version = ["py313"]