⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⠟⢉⡇⢀⡾⠛⠋⢻⡿⠛⣿⣿⣿⣿⣿⣿⣿⣶⣮⡢⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⠏⠀⢸⠃⣸⠁⠀⠀⢸⠃⣰⣿⠏⣻⢿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⠀⠀⣿⠀⣿⠀⠀⠀⠘⢠⣿⣿⣰⣿⣾⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⢻⡄⠀⡇⢰⡏⠀⡄⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣾⡏⢸⣷⠀⡇⢸⡇⠀⡇⠀⢰⣿⣿⣿⣿⣿⣿⡿⢸⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⢾⣿⠃⢸⣿⣰⡇⣿⡇⠀⢿⠀⠈⣿⣿⣿⣿⣿⣿⣅⣸⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢠⠋⣼⡿⠀⢸⣿⣿⣥⣿⣧⠀⢸⠀⠀⣿⣿⣿⢿⣿⠁⠀⣿⣿⣿⣿⢿⣿⣿⡧⠀⠀⠀⠀
⠀⠀⠀⠀⢠⠃⢠⣿⡇⢠⣿⣿⣿⣿⣿⣿⠀⣿⠀⢰⣿⠓⢟⣿⣿⡗⢠⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀
⠀⠀⠀⢠⠃⢀⣾⡿⢠⣿⣿⣿⣿⣿⣿⣿⣷⣿⠀⢸⣿⠃⠸⠿⠃⠀⠀⠈⢠⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀
⠀⠀⢠⠃⢀⣼⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣾⣟⡆⠀⠀⠀⠀⠀⠀⠈⠉⣼⣿⣿⢹⣷⠀⠀⠀⠀
⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣿⣿⣿⠀⣿⣿⠁⠀⠀⠀⠀⠀⠀⠐⢡⣿⣿⡏⣾⠈⣇⠀⠀⠀
⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢠⠃⣿⣿⠀⣿⣿⠀⠀⠀⠀⢀⡤⢤⡶⢻⣿⣿⣹⣿⡆⠸⡄⠀⠀
⣰⣿⣿⣿⣿⣿⡿⣿⣿⣿⡿⢿⠛⠃⣸⠰⣿⣿⢠⣿⠟⣷⣦⣀⣀⣼⣿⠁⠃⣴⣿⢿⣿⢻⡇⠀⢧⠀⠀
⣿⣿⣿⣿⣿⣵⠾⠛⣩⠞⠁⠘⡆⠀⢹⢸⣿⣯⣾⡿⣰⣿⡿⠛⠉⢙⣻⣿⣶⣾⣿⣿⣿⣸⠇⠀⠸⡄⠀
⣿⣿⡿⠭⠥⣴⠖⠋⢀⣠⣶⣶⢿⣄⣸⣿⣿⣿⣿⣿⢹⠏⢸⢻⣿⣿⣿⣿⡿⣿⣿⣿⠟⢻⠀⠀⠀⢇⠀
⣿⡏⠀⠀⣸⣧⣤⢶⡿⠿⣿⣏⢻⡿⣼⣿⣿⣿⡟⣠⠿⣶⣾⣿⣿⣿⣿⣇⣼⣿⣿⠟⠀⢸⡇⠀⠀⢸⠀
⣿⣧⠀⠀⣗⠀⠀⠀⢿⣧⠀⢹⠈⢣⣹⣿⣿⣿⡿⠁⠀⠀⢉⣿⡿⠋⠙⢻⣿⣿⡟⠀⠀⣸⠀⠀⠀⢸⡄
⣿⣿⡆⠀⢿⣾⣆⠀⣼⣿⣇⢘⡇⠐⣿⣯⣿⣯⠃⠀⠀⠰⠿⠋⠀⠀⠀⢸⣿⡟⢀⡆⠀⣿⠀⠀⠀⢸⡇
⣿⣿⣿⡄⠀⠉⠻⣷⣌⠻⣿⣿⣿⡆⣿⣿⣿⣈⡀⠀⠀⠀⠀⠀⠀⠀⢀⣾⡟⣠⣿⡇⣸⣿⡄⠀⠀⣼⠃
⣿⣿⣿⣿⠀⠀⠀⠈⢻⣿⣿⣿⣿⣿⣿⣿⣷⠛⢿⣆⠀⠀⠀⠀⠀⢀⣾⣟⣴⡿⠋⠁⢻⣿⣧⠀⣰⡿⠀
⣿⣿⣿⣿⠃⠀⣀⠀⠀⢻⣿⣿⣿⣿⣿⣿⡿⠀⠈⣿⣷⡀⠀⠀⣠⣿⣿⣿⣯⣤⡄⠀⢸⣿⣿⣶⡿⠁⠀
⣿⣿⣿⡏⠀⠀⢻⣷⣄⡈⢿⣿⣿⣿⣿⣿⣿⣄⢀⣿⣿⠗⠀⣰⣿⣿⣿⣿⣿⣿⣷⡀⢀⣿⣿⣿⠀⠀⠀
⣿⣿⣿⡇⠀⠀⠀⠛⣿⣿⣼⣿⣿⣿⣿⣿⣿⣿⣾⣿⠏⠀⠀⣿⣿⣿⣿⣿⣿⡟⢿⣿⣾⣿⣿⣿⡄⠀⠀
⣿⣿⣿⣿⣄⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⠀⠀⣿⣿⣿⡿⢸⣿⣿⣶⣿⣿⢿⣿⣿⡇⠀⠀
⣿⣿⣿⣿⣝⣿⣆⣀⠀⢠⣌⡉⠛⡿⣿⣿⣿⣿⣧⠀⠀⠀⠀⢹⣿⣿⡇⠈⣿⣿⣮⣿⣿⢸⣿⡟⢹⠀⠀
Live Platform: CertGames.com
iOS App: App Store Link
LinkedIn: CertGames | Developer Profile
SwaggerUI:OPENAPI Docs
© 2025 CertGames | © 2025 AngelaMos Developed and Designed by Carter Perez Last updated - @9/07/25 16:52:00 Privacy Policy Terms of Service
omitting init.py's, and qa files
.
├── backend
│ ├── CertGamesRun.py
│ ├── Makefile
│ ├── TODO.md
│ ├── api
│ │ ├── CertGamesAPI.py
│ │ ├── admin
│ │ │ ├── auth
│ │ │ │ ├── controllers.py
│ │ │ │ ├── routes.py
│ │ │ │ ├── schemas.py
│ │ │ │ └── services.py
│ │ │ ├── domains
│ │ │ │ ├── analytics
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── queries.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── archives
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── audit
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── queries.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── content
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── queries.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── link_user
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── monitoring
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── queries.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── newsletter
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── revenue
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── queries.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── security
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── queries.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── support
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ ├── testing
│ │ │ │ │ ├── controllers.py
│ │ │ │ │ ├── nsdocs.py
│ │ │ │ │ ├── queries.py
│ │ │ │ │ ├── routes.py
│ │ │ │ │ ├── schemas.py
│ │ │ │ │ └── services.py
│ │ │ │ └── users
│ │ │ │ ├── controllers.py
│ │ │ │ ├── nsdocs.py
│ │ │ │ ├── queries.py
│ │ │ │ ├── routes.py
│ │ │ │ ├── schemas.py
│ │ │ │ └── services.py
│ │ │ ├── models
│ │ │ │ ├── analytics
│ │ │ │ │ ├── DatabaseMetrics.py
│ │ │ │ │ ├── EndpointMetrics.py
│ │ │ │ │ ├── ErrorLog.py
│ │ │ │ │ ├── PerformanceMetric.py
│ │ │ │ │ └── WebVital.py
│ │ │ │ ├── audit
│ │ │ │ │ └── AuditLog.py
│ │ │ │ ├── content
│ │ │ │ │ └── DailyMetrics.py
│ │ │ │ ├── monitoring
│ │ │ │ │ ├── AIUsageLog.py
│ │ │ │ │ └── RequestLog.py
│ │ │ │ ├── revenue
│ │ │ │ │ ├── SubscriptionEvent.py
│ │ │ │ │ └── SubscriptionMetrics.py
│ │ │ │ ├── security
│ │ │ │ │ ├── ActiveTokenCount.py
│ │ │ │ │ ├── DataRetention.py
│ │ │ │ │ ├── IPBlocklist.py
│ │ │ │ │ ├── RateLimit.py
│ │ │ │ │ ├── SecurityEvent.py
│ │ │ │ │ └── TokenBlocklist.py
│ │ │ │ ├── testing
│ │ │ │ │ └── TestingMetrics.py
│ │ │ │ └── users
│ │ │ │ ├── AdminUser.py
│ │ │ │ └── UserManagement.py
│ │ │ ├── roles
│ │ │ │ ├── controllers.py
│ │ │ │ ├── models.py
│ │ │ │ ├── permissions.py
│ │ │ │ ├── routes.py
│ │ │ │ ├── schemas.py
│ │ │ │ └── services.py
│ │ │ ├── settings.py
│ │ │ └── utils
│ │ │ ├── decorators
│ │ │ │ ├── response.py
│ │ │ │ └── unified.py
│ │ │ └── middleware
│ │ │ ├── csrf.py
│ │ │ ├── exceptions.py
│ │ │ └── ip_binding.py
│ │ ├── core
│ │ │ ├── auth
│ │ │ │ ├── auth_optional.py
│ │ │ │ ├── auth_required.py
│ │ │ │ ├── jwt_auth.py
│ │ │ │ ├── subscription_required.py
│ │ │ │ └── unified_auth.py
│ │ │ ├── database
│ │ │ │ ├── Base.py
│ │ │ │ └── connection.py
│ │ │ ├── decorators
│ │ │ │ ├── cache.py
│ │ │ │ ├── guards
│ │ │ │ │ ├── pattern_guard.py
│ │ │ │ │ ├── rate_guard.py
│ │ │ │ │ ├── size_guard.py
│ │ │ │ │ └── tracing_guard.py
│ │ │ │ ├── load.py
│ │ │ │ ├── response.py
│ │ │ │ ├── rules.py
│ │ │ │ ├── schema.py
│ │ │ │ ├── secure.py
│ │ │ │ ├── throttle.py
│ │ │ │ └── unified.py
│ │ │ ├── limiters
│ │ │ │ ├── fallback_rate_limiter.py
│ │ │ │ ├── shared_rate_limiter.py
│ │ │ │ └── throttle_helpers.py
│ │ │ ├── services
│ │ │ │ ├── archive
│ │ │ │ │ ├── Archive.py
│ │ │ │ │ └── archive_service.py
│ │ │ │ ├── clients
│ │ │ │ │ ├── atlas_client.py
│ │ │ │ │ └── geo_ip.py
│ │ │ │ ├── logging
│ │ │ │ │ └── audit.py
│ │ │ │ ├── security
│ │ │ │ │ └── security_service.py
│ │ │ │ └── senders
│ │ │ │ ├── admin_sender.py
│ │ │ │ └── email.py
│ │ │ └── validation
│ │ │ ├── exceptions.py
│ │ │ └── validators.py
│ │ ├── domains
│ │ │ ├── account
│ │ │ │ ├── controllers
│ │ │ │ │ ├── auth
│ │ │ │ │ │ ├── me_ctrl.py
│ │ │ │ │ │ ├── refresh_ctrl.py
│ │ │ │ │ │ ├── reset_ctrl.py
│ │ │ │ │ │ └── session_ctrl.py
│ │ │ │ │ ├── oauth
│ │ │ │ │ │ ├── apple_ctrl.py
│ │ │ │ │ │ ├── apple_mobile_ctrl.py
│ │ │ │ │ │ ├── github_ctrl.py
│ │ │ │ │ │ ├── google_ctrl.py
│ │ │ │ │ │ ├── google_mobile_ctrl.py
│ │ │ │ │ │ └── shared_ctrl.py
│ │ │ │ │ ├── settings
│ │ │ │ │ │ └── profile_ctrl.py
│ │ │ │ │ └── subscription
│ │ │ │ │ ├── apple_ctrl.py
│ │ │ │ │ ├── shared_ctrl.py
│ │ │ │ │ └── stripe_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── auth_requirements.py
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ ├── PasswordReset.py
│ │ │ │ │ ├── TempRegistration.py
│ │ │ │ │ └── User.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ ├── auth_docs.py
│ │ │ │ │ ├── oauth_docs.py
│ │ │ │ │ ├── settings_docs.py
│ │ │ │ │ └── subscription_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── auth
│ │ │ │ │ │ ├── me.py
│ │ │ │ │ │ ├── refresh.py
│ │ │ │ │ │ ├── reset.py
│ │ │ │ │ │ └── session.py
│ │ │ │ │ ├── oauth
│ │ │ │ │ │ ├── apple.py
│ │ │ │ │ │ ├── github.py
│ │ │ │ │ │ └── google.py
│ │ │ │ │ ├── settings
│ │ │ │ │ │ └── profile.py
│ │ │ │ │ └── subscription
│ │ │ │ │ ├── apple.py
│ │ │ │ │ ├── shared.py
│ │ │ │ │ └── stripe.py
│ │ │ │ └── services
│ │ │ │ ├── AppleReceiptVerifier.py
│ │ │ │ ├── auth.py
│ │ │ │ ├── oauth.py
│ │ │ │ ├── settings.py
│ │ │ │ └── subscription.py
│ │ │ ├── community
│ │ │ │ ├── controllers
│ │ │ │ │ ├── leaderboard_ctrl.py
│ │ │ │ │ └── support_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ └── SupportThread.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ └── community_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── leaderboard.py
│ │ │ │ │ └── support.py
│ │ │ │ └── services
│ │ │ │ ├── leaderboard_engine.py
│ │ │ │ ├── leaderboard_ops.py
│ │ │ │ └── support_ops.py
│ │ │ ├── content
│ │ │ │ ├── controllers
│ │ │ │ │ └── daily_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ └── Daily.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ └── daily_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ └── daily.py
│ │ │ │ └── services
│ │ │ │ └── daily_ops.py
│ │ │ ├── freemium
│ │ │ │ ├── controllers
│ │ │ │ │ ├── decrement_ctrl.py
│ │ │ │ │ └── limits_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ └── FreemiumUsage.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ └── freemium_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── decrement.py
│ │ │ │ │ └── limits.py
│ │ │ │ └── services
│ │ │ │ └── freemium_ops.py
│ │ │ ├── games
│ │ │ │ ├── controllers
│ │ │ │ │ ├── incident
│ │ │ │ │ │ ├── _default.py
│ │ │ │ │ │ └── incident_ctrl.py
│ │ │ │ │ ├── phishing
│ │ │ │ │ │ ├── _default.py
│ │ │ │ │ │ └── phishing_ctrl.py
│ │ │ │ │ └── threat
│ │ │ │ │ └── threat_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ ├── Incident.py
│ │ │ │ │ ├── Phishing.py
│ │ │ │ │ └── Threat.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ ├── incident_docs.py
│ │ │ │ │ ├── phishing_docs.py
│ │ │ │ │ └── threat_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── incident.py
│ │ │ │ │ ├── phishing.py
│ │ │ │ │ └── threat.py
│ │ │ │ └── services
│ │ │ │ ├── incident
│ │ │ │ │ ├── achievement_engine.py
│ │ │ │ │ ├── completion_engine.py
│ │ │ │ │ └── incident_ops.py
│ │ │ │ ├── phishing
│ │ │ │ │ └── phishing_ops.py
│ │ │ │ └── threat
│ │ │ │ ├── achievement_engine.py
│ │ │ │ ├── completion_engine.py
│ │ │ │ ├── evaluation_engine.py
│ │ │ │ └── threat_ops.py
│ │ │ ├── marketing
│ │ │ │ ├── controllers
│ │ │ │ │ ├── contact_ctrl.py
│ │ │ │ │ └── newsletter_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ ├── Contact.py
│ │ │ │ │ └── Newsletter.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ └── marketing_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── contact.py
│ │ │ │ │ └── newsletter.py
│ │ │ │ └── services
│ │ │ │ ├── contact_ops.py
│ │ │ │ └── newsletter_ops.py
│ │ │ ├── progression
│ │ │ │ ├── controllers
│ │ │ │ │ ├── achievement
│ │ │ │ │ │ ├── catalog_ctrl.py
│ │ │ │ │ │ ├── progress_ctrl.py
│ │ │ │ │ │ └── simulate_ctrl.py
│ │ │ │ │ └── attributes
│ │ │ │ │ ├── coin_ctrl.py
│ │ │ │ │ └── xp_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ └── Achievement.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ └── progression_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── achievement.py
│ │ │ │ │ ├── coin.py
│ │ │ │ │ └── xp.py
│ │ │ │ └── services
│ │ │ │ ├── achieve_engine.py
│ │ │ │ ├── achievement_ops.py
│ │ │ │ ├── counter_ops.py
│ │ │ │ ├── level_ops.py
│ │ │ │ ├── progression_ops.py
│ │ │ │ ├── unlock_engine.py
│ │ │ │ └── xp_engine.py
│ │ │ ├── shop
│ │ │ │ ├── controllers
│ │ │ │ │ ├── catalog_ctrl.py
│ │ │ │ │ ├── equipment_ctrl.py
│ │ │ │ │ ├── inventory_ctrl.py
│ │ │ │ │ └── purchase_ctrl.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ └── Shop.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ └── shop_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── catalog.py
│ │ │ │ │ ├── equipment.py
│ │ │ │ │ ├── inventory.py
│ │ │ │ │ └── purchase.py
│ │ │ │ └── services
│ │ │ │ ├── catalog_ops.py
│ │ │ │ ├── equipment_ops.py
│ │ │ │ └── purchase_ops.py
│ │ │ ├── testing
│ │ │ │ ├── controllers
│ │ │ │ │ ├── analysis
│ │ │ │ │ │ ├── performance.py
│ │ │ │ │ │ ├── progress.py
│ │ │ │ │ │ └── review.py
│ │ │ │ │ ├── discovery
│ │ │ │ │ │ └── catalog.py
│ │ │ │ │ └── session
│ │ │ │ │ ├── actions.py
│ │ │ │ │ └── attempts.py
│ │ │ │ ├── metadata
│ │ │ │ │ └── README.md
│ │ │ │ ├── middleware
│ │ │ │ │ ├── loaders.py
│ │ │ │ │ ├── rules.py
│ │ │ │ │ └── schemas.py
│ │ │ │ ├── models
│ │ │ │ │ └── Test.py
│ │ │ │ ├── nsdocs
│ │ │ │ │ ├── analysis_docs.py
│ │ │ │ │ ├── discovery_docs.py
│ │ │ │ │ └── session_docs.py
│ │ │ │ ├── routes
│ │ │ │ │ ├── actions.py
│ │ │ │ │ ├── analytics.py
│ │ │ │ │ ├── attempts.py
│ │ │ │ │ ├── catalog.py
│ │ │ │ │ └── review.py
│ │ │ │ └── services
│ │ │ │ ├── analysis_ops.py
│ │ │ │ ├── discovery_ops.py
│ │ │ │ ├── reward_ops.py
│ │ │ │ └── session_ops.py
│ │ │ └── tools
│ │ │ ├── controllers
│ │ │ │ ├── analogy_ctrl.py
│ │ │ │ ├── grc_ctrl.py
│ │ │ │ ├── scenario_ctrl.py
│ │ │ │ └── xploit_ctrl.py
│ │ │ ├── metadata
│ │ │ │ └── README.md
│ │ │ ├── middleware
│ │ │ ├── models
│ │ │ ├── nsdocs
│ │ │ │ └── tools_docs.py
│ │ │ ├── routes
│ │ │ │ ├── analogy.py
│ │ │ │ ├── grc.py
│ │ │ │ ├── scenario.py
│ │ │ │ └── xploit.py
│ │ │ └── services
│ │ │ ├── OpenAI.py
│ │ │ ├── analogy_engine.py
│ │ │ ├── grc_engine.py
│ │ │ ├── llm_ops.py
│ │ │ ├── prompts.py
│ │ │ ├── scenario_engine.py
│ │ │ └── xploit_engine.py
│ │ └── tasks
│ │ ├── celery.py
│ │ ├── clean.py
│ │ └── update.py
│ ├── app
│ │ ├── clients
│ │ │ ├── oauth.py
│ │ │ ├── socketio.py
│ │ │ └── webhooks.py
│ │ ├── engine
│ │ │ ├── database.py
│ │ │ ├── extensions.py
│ │ │ ├── manager.py
│ │ │ └── rate_limiting.py
│ │ ├── factory.py
│ │ ├── handlers
│ │ │ ├── error_handlers.py
│ │ │ ├── request_handlers.py
│ │ │ └── socketio.py
│ │ ├── http
│ │ │ ├── cors.py
│ │ │ ├── root.py
│ │ │ └── session.py
│ │ ├── restx
│ │ │ ├── admin_ns.py
│ │ │ ├── api.py
│ │ │ └── ns.py
│ │ ├── static
│ │ │ ├── assets.py
│ │ │ └── swagger-ui
│ │ │ ├── custom-logo.svg
│ │ │ └── custom-theme.css
│ │ └── templates
│ │ └── swagger-ui.html
│ ├── config.py
│ ├── dev-requirements.txt
│ ├── devtools
│ │ ├── data
│ │ │ └── shopItems.js
│ │ ├── migrations
│ │ │ ├── dev
│ │ │ │ └── migrate_achievements_to_v2_dev.py
│ │ │ └── prod
│ │ │ └── migrate_achievements_to_v2_PRODUCTION.py
│ │ ├── pytest
│ │ │ ├── coverage-html/...
│ │ │ └── pylint_duplicate.py
│ │ ├── scripts
│ │ │ ├── collect_database_metrics.py
│ │ │ └── link_admin_to_user.py
│ │ └── seed
│ │ ├── seed_analytics_data.py
│ │ ├── seed_audit_data.py
│ │ ├── seed_content_data.py
│ │ ├── seed_dev_database_users.py
│ │ ├── seed_monitoring_data.py
│ │ ├── seed_newsletter_data.py
│ │ ├── seed_recent_revenue_activity.py
│ │ ├── seed_revenue_data.py
│ │ ├── seed_security_data.py
│ │ ├── seed_shop_items.py
│ │ ├── seed_support_data.py
│ │ └── seed_testing_data.py
│ ├── pyproject.toml
│ ├── requirements.txt
│ ├── run
│ │ ├── Dockerfile.dev
│ │ ├── Dockerfile.prod
│ │ ├── docker-compose.test.yml
│ │ └── uwsgi.ini
│ └── settings.py
│ ├── admin-app
│ │ ├── eslint.config.js
│ │ ├── index.html
│ │ ├── ops
│ │ │ ├── Dockerfile.dev
│ │ │ └── Dockerfile.prod
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── public
│ │ │ ├── avatars/...
│ │ │ └── favicon.ico
│ │ ├── src
│ │ │ ├── App.tsx
│ │ │ ├── assets
│ │ │ │ └── fonts
│ │ │ │ ├── Azonix.otf
│ │ │ │ ├── Inter-VariableFont_opsz,wght.ttf
│ │ │ │ └── JetBrainsMono-VariableFont_wght.ttf
│ │ │ ├── common
│ │ │ │ ├── components
│ │ │ │ │ ├── ErrorBoundary
│ │ │ │ │ │ ├── ErrorBoundary.module.scss
│ │ │ │ │ │ ├── ErrorBoundary.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── LoadingSpinner
│ │ │ │ │ │ ├── LoadingSpinner.module.scss
│ │ │ │ │ │ └── LoadingSpinner.tsx
│ │ │ │ │ ├── ProtectedRoute
│ │ │ │ │ │ └── ProtectedRoute.tsx
│ │ │ │ │ └── UserSearch
│ │ │ │ │ ├── UserSearch.module.scss
│ │ │ │ │ └── UserSearch.tsx
│ │ │ │ └── layouts
│ │ │ │ ├── AdminLayout
│ │ │ │ │ ├── AdminLayout.module.scss
│ │ │ │ │ └── AdminLayout.tsx
│ │ │ │ └── AuthLayout
│ │ │ │ ├── AuthLayout.module.scss
│ │ │ │ └── AuthLayout.tsx
│ │ │ ├── dev
│ │ │ │ ├── ErrorTestPage.module.scss
│ │ │ │ ├── ErrorTestPage.tsx
│ │ │ │ └── index.ts
│ │ │ ├── global.scss
│ │ │ ├── lib
│ │ │ │ ├── api
│ │ │ │ │ ├── axios.config.ts
│ │ │ │ │ ├── query.config.ts
│ │ │ │ │ └── users.api.ts
│ │ │ │ ├── export
│ │ │ │ │ ├── exportService.ts
│ │ │ │ │ ├── exportTypes.ts
│ │ │ │ │ ├── formatters
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── jsonFormatter.ts
│ │ │ │ │ │ └── pdfFormatter.ts
│ │ │ │ │ └── index.ts
│ │ │ │ ├── hooks
│ │ │ │ │ └── useUserInfo.ts
│ │ │ │ ├── router
│ │ │ │ │ └── routes.tsx
│ │ │ │ ├── socket
│ │ │ │ │ ├── socket.client.ts
│ │ │ │ │ ├── socket.hooks.ts
│ │ │ │ │ └── socket.types.ts
│ │ │ │ └── store
│ │ │ │ └── auth.store.ts
│ │ │ ├── main.tsx
│ │ │ ├── modules
│ │ │ │ ├── admin-management
│ │ │ │ │ ├── AdminManagement.module.scss
│ │ │ │ │ ├── AdminManagement.page.tsx
│ │ │ │ │ ├── admin-management.constants.ts
│ │ │ │ │ ├── admin-management.queries.ts
│ │ │ │ │ ├── admin-management.types.ts
│ │ │ │ │ ├── admin-management.utils.ts
│ │ │ │ │ └── components
│ │ │ │ │ ├── activity-logs
│ │ │ │ │ │ ├── ActivityLogFilters.module.scss
│ │ │ │ │ │ ├── ActivityLogFilters.tsx
│ │ │ │ │ │ ├── AdminActivityTimeline.module.scss
│ │ │ │ │ │ ├── AdminActivityTimeline.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── admin-detail
│ │ │ │ │ │ ├── AdminActivityTab.module.scss
│ │ │ │ │ │ ├── AdminActivityTab.tsx
│ │ │ │ │ │ ├── AdminDetailModal.module.scss
│ │ │ │ │ │ ├── AdminDetailModal.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── admin-list
│ │ │ │ │ │ ├── AdminListFilters.module.scss
│ │ │ │ │ │ ├── AdminListFilters.tsx
│ │ │ │ │ │ ├── AdminListTable.module.scss
│ │ │ │ │ │ ├── AdminListTable.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── modals
│ │ │ │ │ │ ├── CreateAdminModal.module.scss
│ │ │ │ │ │ ├── CreateAdminModal.tsx
│ │ │ │ │ │ ├── DeactivateAdminModal.module.scss
│ │ │ │ │ │ ├── DeactivateAdminModal.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── notes-consolidation
│ │ │ │ │ │ ├── ConsolidatedNotesView.module.scss
│ │ │ │ │ │ ├── ConsolidatedNotesView.tsx
│ │ │ │ │ │ ├── NoteCard.module.scss
│ │ │ │ │ │ ├── NoteCard.tsx
│ │ │ │ │ │ ├── NotesFilterPanel.module.scss
│ │ │ │ │ │ ├── NotesFilterPanel.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ └── role-management
│ │ │ │ │ ├── RoleAssignmentModal.module.scss
│ │ │ │ │ ├── RoleAssignmentModal.tsx
│ │ │ │ │ ├── RolePermissionsDisplay.module.scss
│ │ │ │ │ ├── RolePermissionsDisplay.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── analytics
│ │ │ │ │ ├── Analytics.module.scss
│ │ │ │ │ ├── Analytics.page.tsx
│ │ │ │ │ ├── analytics.constants.ts
│ │ │ │ │ ├── analytics.queries.ts
│ │ │ │ │ ├── analytics.types.ts
│ │ │ │ │ ├── analytics.utils.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ ├── DashboardOverview.module.scss
│ │ │ │ │ │ │ ├── DashboardOverview.tsx
│ │ │ │ │ │ │ ├── MetricsCard.module.scss
│ │ │ │ │ │ │ ├── MetricsCard.tsx
│ │ │ │ │ │ │ ├── MetricsGrid.module.scss
│ │ │ │ │ │ │ ├── MetricsGrid.tsx
│ │ │ │ │ │ │ ├── RecentActivity.module.scss
│ │ │ │ │ │ │ ├── RecentActivity.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── database
│ │ │ │ │ │ │ ├── CapacityProjection.module.scss
│ │ │ │ │ │ │ ├── CapacityProjection.tsx
│ │ │ │ │ │ │ ├── DatabaseOverview.module.scss
│ │ │ │ │ │ │ ├── DatabaseOverview.tsx
│ │ │ │ │ │ │ ├── IndexEfficiencyGrid.module.scss
│ │ │ │ │ │ │ ├── IndexEfficiencyGrid.tsx
│ │ │ │ │ │ │ ├── ResourceUsageChart.module.scss
│ │ │ │ │ │ │ ├── ResourceUsageChart.tsx
│ │ │ │ │ │ │ ├── SlowQueriesTable.module.scss
│ │ │ │ │ │ │ ├── SlowQueriesTable.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── endpoints
│ │ │ │ │ │ │ ├── EndpointHealthScore.module.scss
│ │ │ │ │ │ │ ├── EndpointHealthScore.tsx
│ │ │ │ │ │ │ ├── EndpointsOverview.module.scss
│ │ │ │ │ │ │ ├── EndpointsOverview.tsx
│ │ │ │ │ │ │ ├── IncidentManager.module.scss
│ │ │ │ │ │ │ ├── IncidentManager.tsx
│ │ │ │ │ │ │ ├── SlowEndpointsList.module.scss
│ │ │ │ │ │ │ ├── SlowEndpointsList.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── errors
│ │ │ │ │ │ │ ├── ErrorImpactMetrics.module.scss
│ │ │ │ │ │ │ ├── ErrorImpactMetrics.tsx
│ │ │ │ │ │ │ ├── ErrorTrendsChart.module.scss
│ │ │ │ │ │ │ ├── ErrorTrendsChart.tsx
│ │ │ │ │ │ │ ├── ErrorsExport.module.scss
│ │ │ │ │ │ │ ├── ErrorsExportButton.tsx
│ │ │ │ │ │ │ ├── ErrorsOverview.module.scss
│ │ │ │ │ │ │ ├── ErrorsOverview.tsx
│ │ │ │ │ │ │ ├── RecurringErrorsAlert.module.scss
│ │ │ │ │ │ │ ├── RecurringErrorsAlert.tsx
│ │ │ │ │ │ │ ├── UnresolvedErrorsList.module.scss
│ │ │ │ │ │ │ ├── UnresolvedErrorsList.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── web-vitals
│ │ │ │ │ │ ├── PageMetricsTable.module.scss
│ │ │ │ │ │ ├── PageMetricsTable.tsx
│ │ │ │ │ │ ├── VitalsChart.module.scss
│ │ │ │ │ │ ├── VitalsChart.tsx
│ │ │ │ │ │ ├── VitalsGauges.module.scss
│ │ │ │ │ │ ├── VitalsGauges.tsx
│ │ │ │ │ │ ├── WebVitalsOverview.module.scss
│ │ │ │ │ │ ├── WebVitalsOverview.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ └── utils
│ │ │ │ │ └── analyticsExportConfig.ts
│ │ │ │ ├── archives
│ │ │ │ │ ├── Archives.module.scss
│ │ │ │ │ ├── Archives.page.tsx
│ │ │ │ │ ├── archives.constants.ts
│ │ │ │ │ ├── archives.queries.ts
│ │ │ │ │ ├── archives.types.ts
│ │ │ │ │ ├── archives.utils.ts
│ │ │ │ │ └── components
│ │ │ │ │ ├── dashboard
│ │ │ │ │ │ ├── ArchivesActivity.module.scss
│ │ │ │ │ │ ├── ArchivesActivity.tsx
│ │ │ │ │ │ ├── ArchivesDashboard.module.scss
│ │ │ │ │ │ ├── ArchivesDashboard.tsx
│ │ │ │ │ │ ├── ArchivesMetricsCard.module.scss
│ │ │ │ │ │ └── ArchivesMetricsCard.tsx
│ │ │ │ │ ├── restore
│ │ │ │ │ │ ├── RestoreConfirmModal.module.scss
│ │ │ │ │ │ └── RestoreConfirmModal.tsx
│ │ │ │ │ └── search
│ │ │ │ │ ├── ArchiveDetailModal.module.scss
│ │ │ │ │ ├── ArchiveDetailModal.tsx
│ │ │ │ │ ├── ArchiveFilters.module.scss
│ │ │ │ │ ├── ArchiveFilters.tsx
│ │ │ │ │ ├── ArchivesSearch.module.scss
│ │ │ │ │ ├── ArchivesSearch.tsx
│ │ │ │ │ ├── ArchivesTable.module.scss
│ │ │ │ │ └── ArchivesTable.tsx
│ │ │ │ ├── audit
│ │ │ │ │ ├── Audit.module.scss
│ │ │ │ │ ├── Audit.page.tsx
│ │ │ │ │ ├── audit.constants.ts
│ │ │ │ │ ├── audit.queries.ts
│ │ │ │ │ ├── audit.types.ts
│ │ │ │ │ ├── audit.utils.ts
│ │ │ │ │ └── components
│ │ │ │ │ ├── activity
│ │ │ │ │ │ ├── ActivitySessionBreakdown.module.scss
│ │ │ │ │ │ ├── ActivitySessionBreakdown.tsx
│ │ │ │ │ │ ├── AdminActivityAnalysis.module.scss
│ │ │ │ │ │ ├── AdminActivityAnalysis.tsx
│ │ │ │ │ │ ├── UserActivityTab.module.scss
│ │ │ │ │ │ ├── UserActivityTab.tsx
│ │ │ │ │ │ ├── UserActivityTimeline.module.scss
│ │ │ │ │ │ ├── UserActivityTimeline.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── compliance
│ │ │ │ │ │ ├── ComplianceMetrics.module.scss
│ │ │ │ │ │ ├── ComplianceMetrics.tsx
│ │ │ │ │ │ ├── ComplianceReport.module.scss
│ │ │ │ │ │ ├── ComplianceReport.tsx
│ │ │ │ │ │ ├── ComplianceReportsTab.module.scss
│ │ │ │ │ │ ├── ComplianceReportsTab.tsx
│ │ │ │ │ │ ├── ComplianceViolations.module.scss
│ │ │ │ │ │ ├── ComplianceViolations.tsx
│ │ │ │ │ │ ├── DataAccessReport.module.scss
│ │ │ │ │ │ ├── DataAccessReport.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── correlation
│ │ │ │ │ │ ├── CrossDomainCorrelation.module.scss
│ │ │ │ │ │ ├── CrossDomainCorrelation.tsx
│ │ │ │ │ │ ├── IPTracking.module.scss
│ │ │ │ │ │ ├── IPTracking.tsx
│ │ │ │ │ │ ├── SessionCorrelation.module.scss
│ │ │ │ │ │ ├── SessionCorrelation.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── dashboard
│ │ │ │ │ │ ├── ActionBreakdown.module.scss
│ │ │ │ │ │ ├── ActionBreakdown.tsx
│ │ │ │ │ │ ├── ActivityTrend.module.scss
│ │ │ │ │ │ ├── ActivityTrend.tsx
│ │ │ │ │ │ ├── AuditDashboard.module.scss
│ │ │ │ │ │ ├── AuditDashboard.tsx
│ │ │ │ │ │ ├── AuditMetricsCard.module.scss
│ │ │ │ │ │ ├── AuditMetricsCard.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── patterns
│ │ │ │ │ │ ├── ActionPatterns.module.scss
│ │ │ │ │ │ ├── ActionPatterns.tsx
│ │ │ │ │ │ ├── AnomalyDetection.module.scss
│ │ │ │ │ │ ├── AnomalyDetection.tsx
│ │ │ │ │ │ ├── BulkOperations.module.scss
│ │ │ │ │ │ ├── BulkOperations.tsx
│ │ │ │ │ │ ├── PatternAnalysisTab.module.scss
│ │ │ │ │ │ ├── PatternAnalysisTab.tsx
│ │ │ │ │ │ ├── TimingPatterns.module.scss
│ │ │ │ │ │ ├── TimingPatterns.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ └── search
│ │ │ │ │ ├── AuditLogSearch.module.scss
│ │ │ │ │ ├── AuditLogSearch.tsx
│ │ │ │ │ ├── AuditLogTable.module.scss
│ │ │ │ │ ├── AuditLogTable.tsx
│ │ │ │ │ ├── LogDetailsModal.module.scss
│ │ │ │ │ ├── LogDetailsModal.tsx
│ │ │ │ │ ├── SearchFilters.module.scss
│ │ │ │ │ ├── SearchFilters.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── auth
│ │ │ │ │ ├── AuthCallback.page.tsx
│ │ │ │ │ ├── Login.module.scss
│ │ │ │ │ ├── Login.page.tsx
│ │ │ │ │ ├── auth.queries.ts
│ │ │ │ │ ├── auth.schemas.ts
│ │ │ │ │ └── auth.types.ts
│ │ │ │ ├── daily
│ │ │ │ │ ├── Daily.module.scss
│ │ │ │ │ ├── Daily.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── analytics
│ │ │ │ │ │ │ ├── AnalyticsTab.module.scss
│ │ │ │ │ │ │ ├── AnalyticsTab.tsx
│ │ │ │ │ │ │ ├── AnswerDistribution.module.scss
│ │ │ │ │ │ │ ├── AnswerDistribution.tsx
│ │ │ │ │ │ │ ├── DailyActivity.module.scss
│ │ │ │ │ │ │ ├── DailyActivity.tsx
│ │ │ │ │ │ │ ├── UserEngagement.module.scss
│ │ │ │ │ │ │ ├── UserEngagement.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── bulk
│ │ │ │ │ │ │ ├── BulkCreateForm.module.scss
│ │ │ │ │ │ │ ├── BulkCreateForm.tsx
│ │ │ │ │ │ │ ├── BulkOperations.module.scss
│ │ │ │ │ │ │ ├── BulkOperations.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ ├── DailyDashboard.module.scss
│ │ │ │ │ │ │ ├── DailyDashboard.tsx
│ │ │ │ │ │ │ ├── MetricsOverview.module.scss
│ │ │ │ │ │ │ ├── MetricsOverview.tsx
│ │ │ │ │ │ │ ├── QuestionPerformance.module.scss
│ │ │ │ │ │ │ ├── QuestionPerformance.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── insights
│ │ │ │ │ │ │ ├── ComparisonChart.module.scss
│ │ │ │ │ │ │ ├── ComparisonChart.tsx
│ │ │ │ │ │ │ ├── HardestQuestions.module.scss
│ │ │ │ │ │ │ ├── HardestQuestions.tsx
│ │ │ │ │ │ │ ├── InsightsTab.module.scss
│ │ │ │ │ │ │ ├── InsightsTab.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ └── questions
│ │ │ │ │ │ ├── ConfirmDeleteModal.module.scss
│ │ │ │ │ │ ├── ConfirmDeleteModal.tsx
│ │ │ │ │ │ ├── QuestionDetail.module.scss
│ │ │ │ │ │ ├── QuestionDetail.tsx
│ │ │ │ │ │ ├── QuestionForm.module.scss
│ │ │ │ │ │ ├── QuestionForm.tsx
│ │ │ │ │ │ ├── QuestionsList.module.scss
│ │ │ │ │ │ ├── QuestionsList.tsx
│ │ │ │ │ │ ├── QuestionsManagement.module.scss
│ │ │ │ │ │ ├── QuestionsManagement.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── daily.constants.ts
│ │ │ │ │ ├── daily.queries.ts
│ │ │ │ │ ├── daily.types.ts
│ │ │ │ │ └── daily.utils.ts
│ │ │ │ ├── monitoring
│ │ │ │ │ ├── Monitoring.module.scss
│ │ │ │ │ ├── Monitoring.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── ai
│ │ │ │ │ │ │ ├── AIMonitoringTab.module.scss
│ │ │ │ │ │ │ ├── AIMonitoringTab.tsx
│ │ │ │ │ │ │ ├── AIPerformanceMetrics.module.scss
│ │ │ │ │ │ │ ├── AIPerformanceMetrics.tsx
│ │ │ │ │ │ │ ├── AIUsageOverview.module.scss
│ │ │ │ │ │ │ ├── AIUsageOverview.tsx
│ │ │ │ │ │ │ ├── CostBreakdownChart.module.scss
│ │ │ │ │ │ │ ├── CostBreakdownChart.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ ├── MetricsCard.module.scss
│ │ │ │ │ │ │ ├── MetricsCard.tsx
│ │ │ │ │ │ │ ├── MonitoringDashboard.module.scss
│ │ │ │ │ │ │ ├── MonitoringDashboard.tsx
│ │ │ │ │ │ │ ├── SystemHealthScore.module.scss
│ │ │ │ │ │ │ ├── SystemHealthScore.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── health
│ │ │ │ │ │ │ ├── HealthGauges.module.scss
│ │ │ │ │ │ │ ├── HealthGauges.tsx
│ │ │ │ │ │ │ ├── MetricsTimeline.module.scss
│ │ │ │ │ │ │ ├── MetricsTimeline.tsx
│ │ │ │ │ │ │ ├── SystemHealthTab.module.scss
│ │ │ │ │ │ │ ├── SystemHealthTab.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── requests
│ │ │ │ │ │ ├── EndpointStatsChart.module.scss
│ │ │ │ │ │ ├── EndpointStatsChart.tsx
│ │ │ │ │ │ ├── ErrorAnalysisPanel.module.scss
│ │ │ │ │ │ ├── ErrorAnalysisPanel.tsx
│ │ │ │ │ │ ├── RequestMonitoringTab.module.scss
│ │ │ │ │ │ ├── RequestMonitoringTab.tsx
│ │ │ │ │ │ ├── SlowRequestsTable.module.scss
│ │ │ │ │ │ ├── SlowRequestsTable.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── monitoring.constants.ts
│ │ │ │ │ ├── monitoring.queries.ts
│ │ │ │ │ ├── monitoring.types.ts
│ │ │ │ │ └── monitoring.utils.ts
│ │ │ │ ├── newsletter
│ │ │ │ │ ├── Newsletter.module.scss
│ │ │ │ │ ├── Newsletter.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── campaigns
│ │ │ │ │ │ │ ├── CampaignEditor.module.scss
│ │ │ │ │ │ │ ├── CampaignEditor.tsx
│ │ │ │ │ │ │ ├── CampaignList.module.scss
│ │ │ │ │ │ │ ├── CampaignList.tsx
│ │ │ │ │ │ │ ├── CampaignPreview.module.scss
│ │ │ │ │ │ │ ├── CampaignPreview.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ ├── NewsletterDashboard.module.scss
│ │ │ │ │ │ │ ├── NewsletterDashboard.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── public
│ │ │ │ │ │ │ ├── UnsubscribePage.module.scss
│ │ │ │ │ │ │ ├── UnsubscribePage.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── send
│ │ │ │ │ │ │ ├── SendCampaignModal.module.scss
│ │ │ │ │ │ │ ├── SendCampaignModal.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ └── subscribers
│ │ │ │ │ │ ├── SubscriberList.module.scss
│ │ │ │ │ │ ├── SubscriberList.tsx
│ │ │ │ │ │ ├── SubscriberStats.module.scss
│ │ │ │ │ │ ├── SubscriberStats.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── newsletter.constants.ts
│ │ │ │ │ ├── newsletter.queries.ts
│ │ │ │ │ ├── newsletter.types.ts
│ │ │ │ │ └── newsletter.utils.ts
│ │ │ │ ├── overview
│ │ │ │ │ ├── Overview.module.scss
│ │ │ │ │ ├── Overview.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── QuickStats.module.scss
│ │ │ │ │ │ ├── QuickStats.tsx
│ │ │ │ │ │ ├── SystemHealthCard.module.scss
│ │ │ │ │ │ └── SystemHealthCard.tsx
│ │ │ │ │ ├── overview.constants.ts
│ │ │ │ │ ├── overview.queries.ts
│ │ │ │ │ └── overview.types.ts
│ │ │ │ ├── revenue
│ │ │ │ │ ├── Revenue.module.scss
│ │ │ │ │ ├── Revenue.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── cohort
│ │ │ │ │ │ │ ├── CohortRetention.module.scss
│ │ │ │ │ │ │ ├── CohortRetention.tsx
│ │ │ │ │ │ │ ├── RetentionHeatmap.module.scss
│ │ │ │ │ │ │ └── RetentionHeatmap.tsx
│ │ │ │ │ │ ├── conversion
│ │ │ │ │ │ │ ├── ConversionFunnel.module.scss
│ │ │ │ │ │ │ ├── ConversionFunnel.tsx
│ │ │ │ │ │ │ ├── ConversionRates.module.scss
│ │ │ │ │ │ │ ├── ConversionRates.tsx
│ │ │ │ │ │ │ ├── FunnelChart.module.scss
│ │ │ │ │ │ │ ├── FunnelChart.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ ├── MetricsCard.module.scss
│ │ │ │ │ │ │ ├── MetricsCard.tsx
│ │ │ │ │ │ │ ├── RevenueDashboard.module.scss
│ │ │ │ │ │ │ ├── RevenueDashboard.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── events
│ │ │ │ │ │ │ ├── EventsTable.module.scss
│ │ │ │ │ │ │ ├── EventsTable.tsx
│ │ │ │ │ │ │ ├── SubscriptionEvents.module.scss
│ │ │ │ │ │ │ └── SubscriptionEvents.tsx
│ │ │ │ │ │ ├── mrr
│ │ │ │ │ │ │ ├── MRRAnalysis.module.scss
│ │ │ │ │ │ │ ├── MRRAnalysis.tsx
│ │ │ │ │ │ │ ├── MRRBreakdown.module.scss
│ │ │ │ │ │ │ ├── MRRBreakdown.tsx
│ │ │ │ │ │ │ ├── MRRChart.module.scss
│ │ │ │ │ │ │ ├── MRRChart.tsx
│ │ │ │ │ │ │ ├── PlatformBreakdown.module.scss
│ │ │ │ │ │ │ ├── PlatformBreakdown.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ └── trends
│ │ │ │ │ │ ├── RevenueTrends.module.scss
│ │ │ │ │ │ ├── RevenueTrends.tsx
│ │ │ │ │ │ ├── TrendChart.module.scss
│ │ │ │ │ │ ├── TrendChart.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── revenue.constants.ts
│ │ │ │ │ ├── revenue.queries.ts
│ │ │ │ │ ├── revenue.types.ts
│ │ │ │ │ └── revenue.utils.ts
│ │ │ │ ├── security
│ │ │ │ │ ├── Security.module.scss
│ │ │ │ │ ├── Security.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ ├── SecurityDashboard.module.scss
│ │ │ │ │ │ │ ├── SecurityDashboard.tsx
│ │ │ │ │ │ │ ├── SecurityMetricsCard.module.scss
│ │ │ │ │ │ │ ├── SecurityMetricsCard.tsx
│ │ │ │ │ │ │ ├── ThreatOverview.module.scss
│ │ │ │ │ │ │ ├── ThreatOverview.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── events
│ │ │ │ │ │ │ ├── CreateEventModal.module.scss
│ │ │ │ │ │ │ ├── CreateEventModal.tsx
│ │ │ │ │ │ │ ├── EventDetailsModal.module.scss
│ │ │ │ │ │ │ ├── EventDetailsModal.tsx
│ │ │ │ │ │ │ ├── EventsTab.module.scss
│ │ │ │ │ │ │ ├── EventsTab.tsx
│ │ │ │ │ │ │ ├── SecurityEventsList.module.scss
│ │ │ │ │ │ │ ├── SecurityEventsList.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── ip-management
│ │ │ │ │ │ │ ├── BlockIPModal.module.scss
│ │ │ │ │ │ │ ├── BlockIPModal.tsx
│ │ │ │ │ │ │ ├── BlockedIPsList.module.scss
│ │ │ │ │ │ │ ├── BlockedIPsList.tsx
│ │ │ │ │ │ │ ├── BlocklistEffectiveness.module.scss
│ │ │ │ │ │ │ ├── BlocklistEffectiveness.tsx
│ │ │ │ │ │ │ ├── IPManagementTab.module.scss
│ │ │ │ │ │ │ ├── IPManagementTab.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── rate-limiting
│ │ │ │ │ │ │ ├── ClearRateLimitModal.module.scss
│ │ │ │ │ │ │ ├── ClearRateLimitModal.tsx
│ │ │ │ │ │ │ ├── RateLimitingTab.module.scss
│ │ │ │ │ │ │ ├── RateLimitingTab.tsx
│ │ │ │ │ │ │ ├── ViolationDetailsModal.module.scss
│ │ │ │ │ │ │ ├── ViolationDetailsModal.tsx
│ │ │ │ │ │ │ ├── ViolationStatistics.module.scss
│ │ │ │ │ │ │ ├── ViolationStatistics.tsx
│ │ │ │ │ │ │ ├── ViolationsTable.module.scss
│ │ │ │ │ │ │ ├── ViolationsTable.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── threats
│ │ │ │ │ │ │ ├── ActiveThreatsTable.module.scss
│ │ │ │ │ │ │ ├── ActiveThreatsTable.tsx
│ │ │ │ │ │ │ ├── ThreatIntelligence.module.scss
│ │ │ │ │ │ │ ├── ThreatIntelligence.tsx
│ │ │ │ │ │ │ ├── ThreatsTab.module.scss
│ │ │ │ │ │ │ ├── ThreatsTab.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ └── users
│ │ │ │ │ │ ├── SuspiciousUsersTable.module.scss
│ │ │ │ │ │ ├── SuspiciousUsersTable.tsx
│ │ │ │ │ │ ├── TokenAnomalies.module.scss
│ │ │ │ │ │ ├── TokenAnomalies.tsx
│ │ │ │ │ │ ├── UserSecurityTab.module.scss
│ │ │ │ │ │ ├── UserSecurityTab.tsx
│ │ │ │ │ │ └── index.ts
│ │ │ │ │ ├── security.constants.ts
│ │ │ │ │ ├── security.queries.ts
│ │ │ │ │ ├── security.types.ts
│ │ │ │ │ └── utils
│ │ │ │ │ └── iconUtils.tsx
│ │ │ │ ├── support
│ │ │ │ │ ├── Support.module.scss
│ │ │ │ │ ├── Support.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── modals
│ │ │ │ │ │ │ ├── CloseThreadModal.module.scss
│ │ │ │ │ │ │ ├── CloseThreadModal.tsx
│ │ │ │ │ │ │ ├── CreateThreadModal.module.scss
│ │ │ │ │ │ │ ├── CreateThreadModal.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── thread-detail
│ │ │ │ │ │ │ ├── MessageInput.module.scss
│ │ │ │ │ │ │ ├── MessageInput.tsx
│ │ │ │ │ │ │ ├── MessageList.module.scss
│ │ │ │ │ │ │ ├── MessageList.tsx
│ │ │ │ │ │ │ ├── ThreadDetail.module.scss
│ │ │ │ │ │ │ ├── ThreadDetail.tsx
│ │ │ │ │ │ │ ├── ThreadHeader.module.scss
│ │ │ │ │ │ │ ├── ThreadHeader.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ └── thread-list
│ │ │ │ │ │ ├── ThreadList.module.scss
│ │ │ │ │ │ ├── ThreadList.tsx
│ │ │ │ │ │ ├── ThreadListFilters.module.scss
│ │ │ │ │ │ ├── ThreadListFilters.tsx
│ │ │ │ │ │ ├── ThreadListItem.module.scss
│ │ │ │ │ │ ├── ThreadListItem.tsx
│ │ │ │ │ │ ├── ThreadStats.module.scss
│ │ │ │ │ │ └── ThreadStats.tsx
│ │ │ │ │ ├── support.constants.ts
│ │ │ │ │ ├── support.queries.ts
│ │ │ │ │ ├── support.types.ts
│ │ │ │ │ └── support.utils.ts
│ │ │ │ ├── testing
│ │ │ │ │ ├── Testing.module.scss
│ │ │ │ │ ├── Testing.page.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── analytics
│ │ │ │ │ │ │ ├── CategoryStats.module.scss
│ │ │ │ │ │ │ ├── CategoryStats.tsx
│ │ │ │ │ │ │ ├── DailyActivity.module.scss
│ │ │ │ │ │ │ ├── DailyActivity.tsx
│ │ │ │ │ │ │ ├── EngagementMetrics.module.scss
│ │ │ │ │ │ │ ├── EngagementMetrics.tsx
│ │ │ │ │ │ │ ├── PerformanceReport.module.scss
│ │ │ │ │ │ │ ├── PerformanceReport.tsx
│ │ │ │ │ │ │ └── index.ts
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ ├── CategoryBreakdown.module.scss
│ │ │ │ │ │ │ ├── CategoryBreakdown.tsx
│ │ │ │ │ │ │ ├── MetricsOverview.module.scss
│ │ │ │ │ │ │ ├── MetricsOverview.tsx
│ │ │ │ │ │ │ ├── PopularTests.module.scss
│ │ │ │ │ │ │ ├── PopularTests.tsx
│ │ │ │ │ │ │ ├── TestingDashboard.module.scss
│ │ │ │ │ │ │ └── TestingDashboard.tsx
│ │ │ │ │ │ ├── details
│ │ │ │ │ │ │ ├── QuestionsList.tsx
│ │ │ │ │ │ │ ├── TestAnalytics.tsx
│ │ │ │ │ │ │ ├── TestDetails.module.scss
│ │ │ │ │ │ │ └── TestDetails.tsx
│ │ │ │ │ │ ├── management
│ │ │ │ │ │ │ ├── TestActions.module.scss
│ │ │ │ │ │ │ ├── TestActions.tsx
│ │ │ │ │ │ │ ├── TestFilters.module.scss
│ │ │ │ │ │ │ ├── TestFilters.tsx
│ │ │ │ │ │ │ ├── TestTable.module.scss
│ │ │ │ │ │ │ └── TestTable.tsx
│ │ │ │ │ │ └── modals
│ │ │ │ │ │ ├── CreateTestModal.module.scss
│ │ │ │ │ │ ├── CreateTestModal.tsx
│ │ │ │ │ │ ├── DeleteTestModal.module.scss
│ │ │ │ │ │ ├── DeleteTestModal.tsx
│ │ │ │ │ │ ├── EditTestModal.module.scss
│ │ │ │ │ │ └── EditTestModal.tsx
│ │ │ │ │ ├── testing.constants.ts
│ │ │ │ │ ├── testing.queries.ts
│ │ │ │ │ └── testing.types.ts
│ │ │ │ ├── tools
│ │ │ │ │ ├── Tools.module.scss
│ │ │ │ │ ├── Tools.page.tsx
│ │ │ │ │ ├── tools.constants.tsx
│ │ │ │ │ └── tools.types.ts
│ │ │ │ └── users
│ │ │ │ ├── Users.module.scss
│ │ │ │ ├── Users.page.tsx
│ │ │ │ ├── components
│ │ │ │ │ ├── BulkOperationsPanel.module.scss
│ │ │ │ │ ├── BulkOperationsPanel.tsx
│ │ │ │ │ ├── UserCreateModal.module.scss
│ │ │ │ │ ├── UserCreateModal.tsx
│ │ │ │ │ ├── UserDetailModal.module.scss
│ │ │ │ │ ├── UserDetailModal.tsx
│ │ │ │ │ ├── UserDetailTabs
│ │ │ │ │ │ ├── UserAchievementsTab.module.scss
│ │ │ │ │ │ ├── UserAchievementsTab.tsx
│ │ │ │ │ │ ├── UserActivityTab.module.scss
│ │ │ │ │ │ ├── UserActivityTab.tsx
│ │ │ │ │ │ ├── UserAdminTab.module.scss
│ │ │ │ │ │ ├── UserAdminTab.tsx
│ │ │ │ │ │ ├── UserAnalyticsTab.tsx
│ │ │ │ │ │ ├── UserFreemiumTab.module.scss
│ │ │ │ │ │ ├── UserFreemiumTab.tsx
│ │ │ │ │ │ ├── UserGameStatsTab.module.scss
│ │ │ │ │ │ ├── UserGameStatsTab.tsx
│ │ │ │ │ │ ├── UserLocationTab.module.scss
│ │ │ │ │ │ ├── UserLocationTab.tsx
│ │ │ │ │ │ ├── UserManagementTab.module.scss
│ │ │ │ │ │ ├── UserManagementTab.tsx
│ │ │ │ │ │ ├── UserOverviewTab.module.scss
│ │ │ │ │ │ ├── UserOverviewTab.tsx
│ │ │ │ │ │ ├── UserPlatformTab.module.scss
│ │ │ │ │ │ ├── UserPlatformTab.tsx
│ │ │ │ │ │ ├── UserProfileTab.module.scss
│ │ │ │ │ │ ├── UserProfileTab.tsx
│ │ │ │ │ │ ├── UserShopTab.module.scss
│ │ │ │ │ │ ├── UserShopTab.tsx
│ │ │ │ │ │ ├── UserSubscriptionTab.module.scss
│ │ │ │ │ │ ├── UserSubscriptionTab.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ └── tabBase.scss
│ │ │ │ │ ├── UserFilters.module.scss
│ │ │ │ │ ├── UserFilters.tsx
│ │ │ │ │ ├── UserTable.module.scss
│ │ │ │ │ ├── UserTable.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── shop.queries.ts
│ │ │ │ ├── users.queries.ts
│ │ │ │ ├── users.types.ts
│ │ │ │ └── utils
│ │ │ │ ├── avatarUtils.ts
│ │ │ │ └── userExportConfig.ts
│ │ │ ├── styles
│ │ │ │ ├── abstracts
│ │ │ │ │ ├── _fonts.scss
│ │ │ │ │ ├── _functions.scss
│ │ │ │ │ ├── _index.scss
│ │ │ │ │ ├── _mixins.scss
│ │ │ │ │ └── _variables.scss
│ │ │ │ ├── base
│ │ │ │ │ ├── _index.scss
│ │ │ │ │ ├── _reset.scss
│ │ │ │ │ └── _typography.scss
│ │ │ │ ├── index.scss
│ │ │ │ └── utilities
│ │ │ │ └── _index.scss
│ │ │ └── vite-env.d.ts
│ │ ├── stylelint.config.js
│ │ ├── tsconfig.app.json
│ │ ├── tsconfig.json
│ │ ├── tsconfig.node.json
│ │ ├── tsconfig.tsbuildinfo
│ │ └── vite.config.ts