mantimon-tcg/backend
Cal Corum cd3efcb528 Implement ProfilePage and profanity filter for display names (F1-006)
ProfilePage implementation:
- Full profile page with avatar, editable display name, session count
- LinkedAccountCard and DisplayNameEditor components
- useProfile composable wrapping user store operations
- Support for linking/unlinking OAuth providers
- Logout and logout-all-devices functionality

Profanity service with bypass detection:
- Uses better-profanity library for base detection
- Enhanced to catch common bypass attempts:
  - Number suffixes/prefixes (shit123, 69fuck)
  - Leet-speak substitutions (sh1t, f@ck, $hit)
  - Separator characters (s.h.i.t, f-u-c-k)
- Integrated into PATCH /api/users/me endpoint
- 17 unit tests covering all normalization strategies

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 16:06:42 -06:00
..
app Implement ProfilePage and profanity filter for display names (F1-006) 2026-01-30 16:06:42 -06:00
data Simplify card image URLs to use set-based paths 2026-01-27 16:16:51 -06:00
project_plans Add integration tests for WebSocket game flow (TEST-002) 2026-01-30 00:02:40 -06:00
references Switch to testcontainers for automatic test container management 2026-01-28 16:49:11 -06:00
scripts Simplify card image URLs to use set-based paths 2026-01-27 16:16:51 -06:00
tests Implement ProfilePage and profanity filter for display names (F1-006) 2026-01-30 16:06:42 -06:00
.env.example Implement auth composables and starter selection (F1-003, F1-004, F1-005) 2026-01-30 15:36:14 -06:00
.gitignore Add backend foundation with uv, Black, and pre-commit hooks 2026-01-24 00:12:33 -06:00
.python-version Add backend foundation with uv, Black, and pre-commit hooks 2026-01-24 00:12:33 -06:00
alembic.ini Add database infrastructure with SQLAlchemy models and test suite 2026-01-27 10:17:30 -06:00
CLAUDE.md Refactor to dependency injection pattern - no monkey patching 2026-01-28 22:54:57 -06:00
docker-compose.yml Implement Phase 2: Authentication system 2026-01-27 21:49:59 -06:00
PROJECT_PLAN_MASTER.json Mark Phase 4 (Game Service + WebSocket) as complete 2026-01-30 07:35:40 -06:00
pyproject.toml Implement ProfilePage and profanity filter for display names (F1-006) 2026-01-30 16:06:42 -06:00
uv.lock Implement ProfilePage and profanity filter for display names (F1-006) 2026-01-30 16:06:42 -06:00