feat(web): посадочная страница-хаб на / с переходами в дашборд, каталог, клубы и мастера
#117
Open
opened 2026-06-01 19:22:15 +03:00 by Toutsu
·
0 comments
No Branch/Tag Specified
main
feature/telegram-game-card-fields
feature/issue-136-wizard-format-location
fix/issue-135-wizard-publish-schedule
fix/issue-133-on-conflict-inference
fix/issue-130-no-limit-complete
fix/issue-129-libgssapi
fix/issue-127-wizard-capacity-club
fix/issue-125-test-cleanup
fix/issue-123-no-limit-wizard
feat/issue-112-wizard-refactor
feat/issue-111-game-creation-wizard
fix/issue-110-showcase-500
feat/issue-110-private-club-showcases
codex/feature-issue-108-portfolio
feat/profile-design-system
codex/fix-public-pages-500
feature/issue-40-master-profiles
feature/issue-39-game-catalog
codex/feature/issue-38-public-club-pages
refactor/issue-37-platform-neutral-handlers
codex/fix-template-topic-release
refactor/issue-36-platform-migration
fix/discord-nullable-telegram-columns
fix/discord-dapper-aot-missing
fix/discord-console-logging-deferred
fix/discord-guildinteractionuser-permissions
fix/discord-count-bigint-cast
fix/discord-slash-commands-guild-context
fix/discord-slash-command-registration
feature/issue-35-identity-linking
fix/discord-oauth-diagnostics
feature/issue-34-discord-oauth-dashboard
test/issue-33-regression-tests
chore/issue-32-discord-compose-wiring
codex/issue-31-platform-messenger-scheduler
feature/discord-reschedule-voting
codex/feature-issue-29-discord-join-leave
feature/issue-28-discord-newsession-listsessions
feature/issue-27-discord-session-batch-renderer
feature/issue-26-discord-netcord-gateway
codex/refactor-issue-25-platform-neutral-join-leave
feature/dashboard-design-refresh
feature/issue-58-health-checks
feature/issue-23-platform-identity
fix/issue-60-add-license
feature/issue-57-postgresql-backup
feature/trivy-security-scan
codex/feature/issue-21-telegram-topics
feature/issue-20-rsvp-reminders
feature/issue-15-session-audit-log
feature/issue-19-batch-join-link
fix/navmenu-mobile-overlap
feature/new-logo
issue-47-navmenu-icon-fix
issue-15-session-audit-log
issue-14-attendance-stats
issue-22-neutral-rendering
codex/ftest-telegram-landing-smoke
feat/player-list-kick-waitlist
codex/co-gm-delegation
v3.10.0
v3.9.9
v3.9.8
v3.9.7
v3.9.6
v3.9.5
v3.9.4
v3.9.3
v3.9.2
v3.9.1
v3.9.0
v3.8.0
v3.7.1
v3.7.0
v3.6.0
v3.5.1
v3.5.0
v3.4.0
v3.3.0
v3.2.0
v3.1.1
v3.1.0
v3.0.10
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.8.0
v2.7.2
v2.7.1
v2.7.0
v2.6.0
v2.5.0
v2.4.0
v2.3.0
v2.2.0
v2.1.1
v2.1.0
v2.0.1
v2.0.0
v1.15.1
v1.15.0
v1.14.0
v1.13.0
v1.11.0
v1.10.6
v1.10.5
v1.10.4
v1.10.3
v1.10.2
v1.10.1
v1.10.0
v1.9.9
v1.9.8
v1.9.7
v1.9.6
v1.9.5
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.8.2
v1.8.1
v1.8.0
v1.7.0
v1.6.0
v1.5.0
v1.4.1
v1.4.0
v1.3.0
v1.2.0
v1.1.5
v1.1.4
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.1
v1.0.0
Labels
Clear labels
area:bot
area:data
area:discord
area:infra
area:miniapp
area:platform
area:shared
area:web
in-progress
next-up
pending-approval
platform:discord
platform:multi
platform:telegram
priority:p0
priority:p0
priority:p1
priority:p2
priority:p3
security
type:bug
type:chore
type:feature
type:refactor
type:test
Telegram bot and worker logic
Database schema, migrations and persistence model
Discord bot service and Discord adapter
Infrastructure, runtime and deployment
Telegram Mini App dashboard
Platform-neutral abstractions and adapter boundaries
Shared domain and rendering contracts
Blazor web dashboard
В работе (issue взят агентом)
Recommended immediate backlog
Ждёт согласования плана решения
Discord-specific behavior or adapter work
Cross-platform or platform-neutral work
Telegram-specific behavior or adapter work
Critical priority
Блокирующий приоритет: задача должна быть выполнена до признания решения production-ready
High priority
Medium priority
Lower priority
Security-sensitive work
Bug fix or corrective work
Maintenance and supporting work
New product functionality
Structural change without direct feature growth
Testing and coverage work
Milestone
No items
No Milestone
Версия 3.0 — Platform & Club Expansion
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Toutsu/GmRelayBot#117
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
Сейчас
Home.razor(/) — это сразу дашборд со списком клубов пользователя. Это единственная точка входа, до которой реально доходит обычный пользователь:NavMenu.razorссылки только: Главная (/), Шаблоны (/templates), Профиль (/profile)./, сразу упрётся в редирект на/access-denied— приветствия и понимания «куда я попал и что здесь можно» у него нет вообще.Результат: фичи этапа 3.0 (публичные страницы клубов, каталог игр, витрина мастеров) фактически недоступны — про них знают только те, кто вручную вбил URL.
Цель
Сделать
/полноценной посадочной страницей GM-Relay: пользователь с любой стороны (аноним/участник/ГМ) понимает, куда можно пойти, и попадает туда в один клик. Дашборд остаётся, но перестаёт быть единственной точкой входа.UX
Неавторизованный (
@NotAuthorized)/showcase(доступен анонимам)/clubs(новая индексная страница, см. ниже)/login(отдельная крупная CTA)Авторизованный (
@Authorized)Home.razor/GroupDetails.razor, fantasy RPG):/dashboard(см. раздел про редирект)/showcase/clubs(новая индексная страница)/profile/templates/masters(индекс публичных профилей, см. ниже)Home.razor, но с лимитом 3–6 и кнопкой «Открыть дашборд»).Поведение URL
Home.razorостаётся на/, но перестаёт быть дашбордом. Логика:@Authorized→ рендерит новый хаб.@NotAuthorized→ рендерит приветственную версию./dashboard(новая страницаDashboard.razor, логика копируется из текущегоHome.razor1:1)./редирект НЕ делаем —/теперь и есть хаб. Старые внешние ссылки, если такие есть, обновляем в коде на/dashboard.Технические требования
src/GmRelay.Web/Components/Pages/Landing.razorлибо перепрофилированныйHome.razor(на усмотрение исполнителя, согласовать в плане)./dashboard—src/GmRelay.Web/Components/Pages/Dashboard.razor(вынесенный текущий кодHome.razor)./clubs—src/GmRelay.Web/Components/Pages/PublicClubIndex.razor(илиClubs.razor):is_public = true, без учёта membership текущего юзера).PublicClub.razor.Dashboard.razor./masters—src/GmRelay.Web/Components/Pages/PublicMasterIndex.razor:PublicMasterProfile.razor.IWebGameGroupRepository.GetPublicClubsAsync()— публичные клубы с пагинацией.IPlayerRepository.GetPublicMastersAsync()— мастера с публичными профилями.NavMenu.razorдополнить ссылками (для авторизованных): Каталог, Клубы, Мастера. Бренд-ссылка<a href="">оставляет вести на/(новый хаб).CLAUDE.md/README.mdобновить:v3.5.1→ указать новые маршруты, обновить список страниц.Definition of Done
/:Каталог,Клубы,Войти.Дашборд,Каталог,Клубы,Профиль,Шаблоны,Мастера(последняя — если есть публичные мастера)./dashboard, контент идентичен./clubsотдаёт список публичных клубов с пагинацией./mastersотдаёт сетку публичных мастеров./,/dashboard,/clubs,/masters) покрыты bUnit-тестами:Landing_AsAnonymous_ShowsPublicTilesLanding_AsAuthorized_ShowsPersonalizedTilesDashboard_AsAuthorized_RendersUserGroupsPublicClubIndex_AsAnonymous_ShowsPublicClubsPublicMasterIndex_AsAuthorized_ShowsMastersNavMenu.razorдополнен ссылками; версия вNavMenu.razorсинхронизирована сDirectory.Build.props(pitfall «NavMenu version string»).dotnet test tests/GmRelay.Web.Tests/— все тесты зелёные, новые тесты добавлены.dotnet build— 0 warnings, 0 errors.Связанные issues / PR
/clubsбудет фильтровать, надо согласовать./mastersнужно понимать, кто именно «мастер клуба».Версия
v3.5.1→v3.6.0.План
План реализации (RED-GREEN-REFACTOR, тесты, PR, релиз) согласуется отдельным сообщением после
согласенот пользователя.