This document turns the public TTKQ desktop and mobile sites into a functional baseline that product, design, engineering and QA can work from together. It is a structured analysis of the reference site plus the target requirements for building it — not a system audit performed with admin access, and not a pixel-level design hand-off.
Evidence was captured on 5 September 2026 from a logged-out desktop browser at
1440 × 1000 and a mobile browser at 390 × 844. Live content and scores were dynamic samples used
only to confirm structure; they are not sports facts. The source site routes to www
or m by User-Agent.
| Tier | What it asserts | What it does not assert |
|---|---|---|
| Verified | Actually rendered or actually operated. | That it works signed in, or for other roles. |
| Code-evidenced | The public route, component, validation or string exists. | That the account works or the back office is complete. |
| Access anomaly | What this capture observed. | A persistent defect — it needs stable reproduction first. |
| Proposed | Target behaviour so the module is buildable and testable. | Anything about the source site. Proposed field names are not its API contract. |
No account was registered. No SMS, message or comment was sent. No installer was downloaded. The native app internals, the operations back office, hidden rollouts and other permission levels were not reached — no claim of zero omissions is made for those areas.
Section 01
Product goals, scope and roles
The core path is: find a match or an anchor → check the score and match data → enter the stream → follow or set a reminder → chat and come back. Video, replays and news carry the hours when nothing is live.
The mobile site also contains a complete friends-and-groups path. That should be reviewed as an independent social subsystem — not treated as "a chat input box in the live room".
| Role | Visible capability | Verification boundary |
|---|---|---|
| Guest | Browse home, scores, fixtures, data and content; enter a room and read public messages | Some interactions trigger sign-in; guest posting was not conclusively verified |
| Registered user | Profile and security, follows and reminders, DMs, friends, groups, feedback | Code-evidenced; needs a legitimate test account to accept |
| Anchor | Anchor profile, schedule, room identity and interaction | Public profile seen; the broadcast console was never reached |
| Group admin / owner | Announcements, muting, members, group settings | Public client-side role code only |
| Operations | Content and data, recommendations, permission configuration | Proposed target; no evidence from the source back office |
Priority
P0 — navigation, home, match scores, live basics, authentication, error handling. P1 — data analysis, follows and reminders, content, profile and feedback. P2 — the full friends-and-groups system, tournament specials, tags and broadcast.
Priority sets iteration order only; it does not remove a module from scope. If chat is the product's main value, M27–M33 should move forward as a block.
Section 02
Module coverage
| ID | Module | Evidence | Sources |
|---|---|---|---|
| M01 | Global navigation and site frame | Verified | D01 H01 S01 |
| M02 | Home recommendations and promo slots | Verified | D01 H01 |
| M03 | All live streams and today's picks | Verified | D02 H02 |
| M04 | Live room and playback | Interface only | D03 H03 S02 |
| M05 | Room chat and DM entry | Partly verified | D03 H03 S02 |
| M06 | Live match data and commentary | Verified | D03 H03 S02 |
| M07 | Odds and movement history | Verified | D03 H03 S02 |
| M08 | Pre-match analysis and head-to-head | Code-evidenced | H03 S03 |
| M09 | Line-ups and player statistics | Code-evidenced | S03 |
| M10 | Football score centre | Verified | D04 H04 |
| M11 | Basketball score centre | Verified | D05 H04 |
| M12 | Score filters and display settings | Verified | D04 H04 S03 |
| M13 | Match favourites and pinning | Rules proposed | D04 D05 H04 |
| M14 | Fixtures and match reminders | Submission unverified | D06 H05 S01 |
| M15 | League data and standings | Desktop anomaly | D07 H06 S03 |
| M16 | Tournament specials | Entry falls back | S01 S03 |
| M17 | Short video and video detail | Detail unverified | D08 H07 S01 S03 |
| M18 | Replays and external sources | Partly visible | D09 H08 S01 |
| M19 | News, articles and comments | Detail failed | D10 H09 S03 |
| M20 | Site-wide search | Verified | H10 S03 |
| M21 | Anchor directory and profile | Verified | D01 H03 S03 |
| M22 | Sign in, register, recover | Not submitted | D11 H11 S01 S03 |
| M23 | Profile, avatar, bio, QR | Code-evidenced | S01 S03 |
| M24 | Account security | Code-evidenced | S01 S03 |
| M25 | My follows and reminders | Code-evidenced | S01 S03 |
| M26 | Feedback and history | Code-evidenced | S01 S03 |
| M27 | Message list and contacts | Code-evidenced | H11 S03 |
| M28 | Friend search and requests | Code-evidenced | S03 |
| M29 | Direct messages | Code-evidenced | S03 |
| M30 | Group discovery and creation | Code-evidenced | S03 |
| M31 | Group messages and roles | Code-evidenced | S03 |
| M32 | Group profile and lifecycle | Code-evidenced | S03 |
| M33 | Contact tags and broadcast | Code-evidenced | S03 |
| M34 | App download and install | Not installed | D12 H12 S03 |
| M35 | About, terms, privacy | Partly verified | D13 D14 S01 S03 |
| M36 | Platform operations | Proposed | A01 |
| M37 | Scan and QR recognition | Code-evidenced | S03 |
Section 03
Cross-cutting business rules
Ten rules that apply to every module. Most production bugs in a product of this shape come from breaking one of them.
1/2/3/99 and the match sport types 1 football / 2 basketball / 8 other are different enumerations and must never be mixed. Display names are for display, never for joining.returnTo and any draft. Sign-out or token expiry clears private data while public content stays reachable.Section 04
Requirements by module
Each module lists its evidence tier, purpose, numbered functional requirements
(-F), proposed data fields, required state coverage, and acceptance
scenarios (-AC). The IDs are citable — use them in tickets and test cases.
Global navigation and site frame
VerifiedDesktop header and footer, mobile primary navigation, cross-platform hand-off and global back.
Proposed fields
route · deviceType · activeNav · isLoggedIn · redirectTarget · featureFlags
State coverage
- default
- active
- hover
- expanded
- signed in
- signed out
- dead route
Acceptance
Home recommendations and promotional slots
VerifiedLive discovery and routing into other modules.
Proposed fields
bannerId · image · target · matchId · roomId · anchorId · cover · nickname · heat · sportType · startAt · score
State coverage
- has recommendations
- none
- image loading
- image failed
- anchor offline
- match ended
- promo dismissed
Acceptance
All live streams and today's picks
VerifiedThe full and per-category live directory.
/lives/1, /2, /3, /99 map to All, Football, Basketball and Other; mobile picks have the same filters. These directory type values are not the sport type values used on the detail page.Proposed fields
directoryType · roomId · anchorId · matchId · cover · title · heat · liveState · cursor
State coverage
- loading
- has streams
- empty category
- ended
- paging failed
- no more
Acceptance
Live room and playback
Interface verified · playback unverifiedThe match-and-anchor room container, the player, and everything attached to it.
<video> element was detected on desktop or mobile in this capture, so playback, line switching, quality selection and casting cannot be claimed as verified. Generic player strings in the public bundle do not prove those features are enabled.Proposed fields
sportType · matchId · anchorId · roomId · liveState · streamSources · poster · heat · matchStatus · startAt
State coverage
- not started
- connecting
- playing
- paused
- buffering
- ended
- no source
- expired source
- network failure
- format unsupported
Acceptance
Room chat and the anchor DM entry point
Partly verified · sending unverifiedPublic room chat, system notices, join notifications and the route into direct messages.
messageId; on reconnect, backfill by sequence.Proposed fields
messageId · roomId · senderId · role · displayName · messageType · content · sentAt · sequence · sendState · muteState
State coverage
- guest
- can post
- muted
- connecting
- reconnecting
- sending
- failed
- recalled
- unsupported type
Acceptance
Live match data and text commentary
Verified & code-evidencedFootball statistics, basketball period statistics, and the event feed.
Proposed fields
score · periodScores · eventId · eventType · minute · teamSide · player · statistics · updatedAt
State coverage
- pre-match
- in play
- half time
- finished
- stale data
- no statistics
- abnormal termination
Acceptance
Odds and movement history
Verified & code-evidencedOdds display only. No betting transactions.
Proposed fields
companyId · marketType · initial · current · line · homeValue · drawValue · awayValue · changedAt · isClosed
State coverage
- has data
- no bookmakers
- suspended
- changed
- stale
- history failed
Acceptance
Pre-match analysis and head-to-head
Tabs verified · detail code-evidencedStandings, recent form, head-to-head, absences and upcoming fixtures.
Proposed fields
teamId · range · venueScope · leagueIds · historyMatches · injuries · nextMatches · sampleSize · rates
State coverage
- has sample
- insufficient sample
- no meetings
- no absence data
- filter empty
- load failed
Acceptance
Football line-ups and basketball player statistics
Code-evidencedMatch line-up detail and the player statistics sub-page.
Proposed fields
matchId · teamSide · formation · playerId · shirtNo · isStarter · minutes · points · rebounds · assists · shooting
State coverage
- unannounced
- starting XI published
- in play
- statistics final
- partially missing
Acceptance
Football score centre
VerifiedLive scores, finished results, upcoming fixtures, and favourites.
Proposed fields
matchId · league · kickoff · status · minute · teams · score · halfScore · corners · cards · streamAvailable · anchorCount · isPinned · isFavorite
State coverage
- live
- finished
- upcoming
- favourite
- pinned
- no stream
- cancelled
- no fixtures
Acceptance
matchId renders identically in live, detail and favourites. An unstarted match never shows 0–0 as if it had kicked off.Basketball score centre
VerifiedPeriods, differential, totals and the basketball score directory.
Proposed fields
period · clock · quarterScores · overtimeScores · halfScores · totalScore · difference · combinedTotal · odds
State coverage
- pre-match
- each period
- between periods
- overtime
- finished
- interrupted
- data missing
Acceptance
Score filters and display settings
Verified & code-evidencedCompetition scope, name-display mode, and which information columns show.
Proposed fields
leagueIds · preset · nameMode · showCards · showCorners · showRanking · showHomeAway · hiddenCount
State coverage
- default
- changed, unconfirmed
- applied
- all selected
- none selected
- cancelled
Acceptance
Match favourites and pinning
Partly verified · rules proposedFavouriting a match, and pinning it within the current list.
Proposed fields
userOrDeviceId · matchId · isFavorite · isPinned · createdAt
State coverage
- not favourited
- favourited
- pinned
- removing
- empty favourites
- match invalid
Acceptance
Fixtures and match reminders
Verified · reminder submission unverifiedFinding matches and anchors by sport category and date.
Proposed fields
date · sportCategory · matchId · kickoff · status · anchorList · appointmentState · remindAt
State coverage
- upcoming
- in play
- finished
- rescheduled
- reminder set
- no reminder
- no anchors
- date collapsed
Acceptance
matchId on its reminder; a cancelled match sends no kick-off reminder.League data and standings
Mobile verified · desktop load anomalyFootball and basketball leagues, seasons, standings and player rankings.
/data rendered only an empty league-data container. This PRD defines the target from the verified mobile behaviour; the desktop layout is a proposed adaptation, not a reconstruction of the source desktop page.Proposed fields
leagueId · sportType · seasonId · stage · rankingType · teamRankRows · playerRankRows · rulesVersion
State coverage
- loading
- season has no data
- complete table
- points deduction
- tie
- component load failed
Acceptance
wins × 3 + draws over the supplied value.Tournament specials such as the World Cup
Code exists · desktop entry falls backTournament specials, opened by configuration.
/world and mobile /pages/world/index exist, but desktop access returned to the home page in this capture. It cannot be marked as currently operating.Proposed fields
tournamentId · season · group · stage · bracketSlot · winnerId · ranking
State coverage
- closed
- build-up
- group stage
- knockout
- slot TBD
- finished
Acceptance
Short video and video detail
Mobile list verified · detail unverifiedShort-video categories, cards and playback detail.
/videos rendered a c_video-web shell with no content; /video/:id and the mobile playback route exist. An empty desktop shell must not be written up as a working video list.Proposed fields
videoId · category · cover · title · author · duration · playCount · source · playbackState
State coverage
- list loading
- empty category
- has results
- video unavailable
- playback failed
- completed
Acceptance
Replays, highlights and external sources
Desktop verified · mobile partly visibleThe replay directory for finished matches, and links to their sources.
/playback categorises All plus NBA, CBA, CSL, Premier League, La Liga, Bundesliga, Ligue 1 and Serie A. The list carries time, title, both sides and the result, a replay or highlights entry, and pagination./pages/playback/info exists. Target: support multiple segments, sources and highlight reels per match.Proposed fields
replayId · matchId · category · result · segments · provider · externalUrl · page
State coverage
- has replay
- not yet uploaded
- multiple segments
- source dead
- external page restricted
Acceptance
News list, article detail and comments
Mobile list verified · detail failed to loadSports news categories, recommendations, articles and comments.
Proposed fields
articleId · category · title · author · publishedAt · cover · bodyBlocks · commentId · parentId · replyCount
State coverage
- list
- loading
- article unavailable
- detail error
- no comments
- comments closed
- submitting
- in review
Acceptance
Site-wide search
Mobile verifiedSearching teams, anchors, live streams and fixtures.
Proposed fields
keyword · resultType · anchorResults · liveResults · scheduleResults · hotWords · cursor
State coverage
- initial
- typing
- searching
- results
- no results
- failed
Acceptance
Anchor directory and profile
Verified & code-evidencedFeatured anchors, following, broadcast schedule and the DM entry point.
Proposed fields
anchorId · nickname · avatar · bio · accountCode · fans · heat · followState · liveRoom · schedules
State coverage
- live
- offline
- following
- not following
- no schedule
- profile unavailable
Acceptance
Sign in, register and password recovery
Forms verified · submission not executedPassword sign-in, SMS sign-in, registration, recovery and the result screens.
Proposed fields
loginMethod · phoneOrAccount · nickname · password · confirmPassword · code · verificationTicket · agreementVersion · returnTo
State coverage
- empty
- format error
- captcha challenge
- sending
- countdown
- verification failed
- signed in
- registered
- reset
Acceptance
Profile, avatar, bio and personal QR
Code-evidenced · needs signed-in re-verificationEditing the profile: avatar, nickname, bio and personal code.
remaining_days.Proposed fields
userId · accountCode · avatar · nickname · bio · signature · phoneMasked · nicknameChangeLimit · qrPayload
State coverage
- viewing
- editing
- cooldown, locked
- uploading
- failed
- saved
- sign-out confirm
Acceptance
Account security: phone and password changes
Code-evidencedChanging the bound phone number, changing the password, and re-authentication.
Proposed fields
oldPhoneMasked · newPhone · smsCode · oldPassword · newPassword · confirmPassword · reauthState
State coverage
- bound
- verifying
- wrong code
- number taken
- changed
- session invalidated
Acceptance
My follows and my reminders
Code-evidencedManaging personal relationships and reminders.
Proposed fields
userId · anchorId · followedAt · matchId · appointmentId · reminderState · pagination
State coverage
- empty
- has follows
- live
- offline
- has reminders
- cancelled
- finished
- load failed
Acceptance
Feedback and feedback history
Code-evidencedCollecting feedback, image upload, contact details and history.
Proposed fields
feedbackId · content · attachments · contact · submittedAt · page
State coverage
- editing
- uploading
- over limit
- empty
- submitting
- success
- history empty
- failed
Acceptance
Message list and contacts
Code-evidenced · sign-in entry verifiedThe mobile chat entry point and contact organisation.
/pages/message/index and /chat — and the code contains an add-anchor request. Confirm by account capability whether they are still official entries. Do not build two parallel conversation systems.Proposed fields
conversationId · type · peerId · title · avatar · lastMessage · unreadCount · mentioned · muted · lastAt · connectionState
State coverage
- signed out
- connecting
- online
- reconnecting
- no conversations
- unread
- muted
Acceptance
Finding friends, requests and profiles
Code-evidencedAdding friends, reviewing requests, remarks and relationship management.
Proposed fields
peerId · accountCode · relationship · applicationId · verificationText · remark · tags · online
State coverage
- not friends
- request sent
- pending
- declined
- added
- no results
Acceptance
Direct messages and message actions
Code-evidencedFriend DMs, quoting, recall and media messages.
Proposed fields
conversationId · messageId · clientMessageId · sender · recipient · payload · quoteId · readAt · revokedAt
State coverage
- sending
- delivered
- read
- failed
- quoted
- recalled
- attachment unsupported
Acceptance
clientMessageId; an unsent voice note is never auto-uploaded.Group discovery, creation and joining
Code-evidencedThe group list, creation, invite codes and joining.
Proposed fields
groupId · name · avatar · selectedMemberIds · canCreate · joinPolicy · inviteCode · expiresAt
State coverage
- no permission
- selecting members
- creating
- created
- pending review
- joined
- code expired
Acceptance
Group messages and role management
Code-evidencedGroup chat, mentions, announcements and member role actions.
canMentionAll.Proposed fields
groupId · memberId · role · permissions · muteUntil · mentionIds · announcement · messageId
State coverage
- member
- admin
- owner
- muted
- removed
- group dissolved
- permission changed
Acceptance
Group profile, notifications, leaving and dissolving
Code-evidencedGroup information, membership changes, notifications and lifecycle.
Proposed fields
groupProfile · memberCount · announcement · selfNickname · isAllMuted · doNotDisturb · groupState
State coverage
- editing
- insufficient permission
- saving
- all muted
- leave confirm
- dissolve confirm
- dissolved
Acceptance
Contact tags and broadcast history
Code-evidencedTag management, member organisation, sending and history.
Proposed fields
tagId · tagName · memberIds · sendJobId · recipientSnapshot · content · perRecipientResult · sentAt
State coverage
- no tags
- editing
- selecting friends
- awaiting confirmation
- sending
- partial success
- complete
Acceptance
App download and install guidance
Entry verified · not downloaded or installedThe download page, QR codes, platform routing, add-to-home-screen and install help.
/pages/common/download, /app, an iOS tutorial and a store redirect page all exist, adapting after browser and OS detection.Proposed fields
platform · version · packageUrl · manifestUrl · qrUrl · channel · installationMethod · downloadEvent
State coverage
- iOS
- Android
- desktop QR
- restricted browser
- link dead
- copy succeeded / failed
Acceptance
About, terms, privacy and generic content pages
Partly verified & code-evidencedAbout, terms of service, privacy, generic web content and error pages.
/privacy route exists.common/news style content routes. Terms links from registration and sign-in must return to the form with its fields preserved.Proposed fields
documentId · version · title · effectiveAt · content · acceptedAt · targetUrl
State coverage
- normal
- version updated
- load failed
- document withdrawn
- external link restricted
Acceptance
Platform operations and supporting capability
Proposed · source back office not accessedThe operations and back-office boundary needed to make the front end real.
Proposed fields
operatorId · role · configVersion · contentStatus · publishAt · auditLog · providerMapping
State coverage
- draft
- pending publish
- published
- withdrawn
- rolled back
- data anomaly
Acceptance
Scan and QR recognition
Public route code-evidencedPersonal codes, group codes and the general scan entry point.
Proposed fields
scanType · payload · targetId · codeVersion · expiresAt · permissionState
State coverage
- awaiting permission
- scanning
- recognised
- invalid
- expired
- permission denied
- unsupported
Acceptance
Section 05
Key data objects and boundaries
| Object | Minimum fields | Consistency requirement |
|---|---|---|
| Match | id sport league teams kickoff status score periods updatedAt | Many rooms share one match; the score has a single source of truth |
| Room | id anchorId matchId state sources heat | A match-and-anchor pairing; source validity can change |
| Anchor | id accountCode avatar name bio followState nextSchedule | Going offline never deletes the profile |
| Ranking | leagueId season stage type rows rulesVersion | Leagues and seasons stay isolated; rules and table share a version |
| OddsSnapshot | matchId companyId marketType initial current line updatedAt | Opening and current share a market and a source; suspension is a state |
| Article / Video / Replay | id type category source title media state publishedAt | Content types stay separate; a replay source may be external |
| User | id accountCode phoneMasked nickname avatar limits | The client never stores a password; disclose private fields minimally |
| Relationship | userId targetId targetType state version | Following an anchor, favouriting a match and friendship are different types |
| Appointment | id userId matchId remindAt relationState deliveryState | A saved relationship is not a delivered reminder |
| Message | id clientId conversationId sender payload status sequence | Idempotent; the read cursor advances monotonically |
| Group | id profile roles permissions joinPolicy state | Server permissions take effect immediately on change |
| TagSendJob | id tagId recipientsSnapshot content results | Per-recipient results; resending requires a new intent |
| Feedback | id userId content attachments contact createdAt | A failed upload can never become a valid attachment |
| Document / Config | id version effectiveAt state | Agreement versions and operational publishes are traceable |
Field values and lengths need integration testing except where explicitly evidenced. Count string lengths in Unicode characters or grapheme clusters — an emoji in a name must never be cut at a UTF-16 half. Transport user IDs, match IDs and article IDs as strings so large integers do not lose precision.
Section 06
API and realtime design guidance
Contracts here are defined by capability. They do not copy the source site's service domains or guess at its private API.
Public queries: home recommendations, live list, fixtures and scores, match detail, league standings, content list and detail, search. Authenticated writes: SMS challenge, sign-in and registration, relationship changes, reminders, feedback, comments, messages and group administration.
Queries return data, a cursor or pageInfo,
serverTime and dataVersion. Errors return a stable
code, a readable message, a retryable flag and
fieldErrors where relevant.
Uploads validate identity and attachment conditions first, obtain a short-lived upload authorisation, then submit the resulting attachment ID. A permanent storage key must never reach the client.
Realtime splits into match-data and conversation subscriptions, reconnecting with the last
sequence. Switching match unbinds the old subscription; a backgrounded page
reduces non-essential refreshes; on recovery, take a snapshot first and then backfill the delta.
Push failure may degrade to polling, but the polling interval is a design parameter —
do not claim the source site uses a specific number of seconds.
Performance acceptance environment
A 390px mobile device, ordinary 4G, a same-region service node, 100 sample scores and 100 sample messages. Targets: first usable content within 3 seconds, ordinary interaction feedback within 200 milliseconds. Video start is measured separately as first-frame latency and failure rate, and must be reviewed against real sources and network conditions. These are targets, not measured results.
Section 07
Quality and exception acceptance matrix
| Category | Must cover | Expected result |
|---|---|---|
| Data loading | First load, load more, empty list, timeout, 5xx, partial failure | Stable skeleton; errors offer retry; one module's failure never takes the site down |
| Network | Offline, weak signal, reconnect, out-of-order responses | Keep the last data and mark it stale — never fake live |
| Permissions | Guest, user, admin, group owner, expired token | Front and back end agree; no data exposed beyond permission |
| Match states | Pre-match, in play, half time, overtime, finished, postponed, cancelled, abandoned | One consistent status mapping; unknown scores use a placeholder |
| Content | Image 404, no video source, dead article, dead external link | Degrade readably with a real way back or retry |
| Forms | Whitespace, emoji, over-length, invalid phone, mismatched password, double submit | Field errors appear in place; drafts survive |
| Notifications | Reminder saved but delivery failed, do-not-disturb, @mention, multi-device read sync | States stay independent and diagnosable |
| Devices | 360, 390, 430, 768, 1024, 1440, 1920px; orientation; keyboard | Nothing covered or overlapping; horizontal scroll boundaries are explicit |
| Undo | Cancel a filter, unfollow, leave a group, dissolve a group | Ordinary drafts are cancellable; destructive actions state their consequence |
| Long sessions | 30 minutes of continuous browsing; 1,000 accumulated messages | List performance holds; resources and subscriptions are released |
| Caching | Switching league, season, anchor, account | No stale rules, stale profile or another person's messages |
| Accessibility | Keyboard, focus, screen reader, high contrast, reduced motion | Controls are named; state carries text or shape beyond color |
Section 08
Analytics definitions
| Event | Required properties | Definition |
|---|---|---|
| page_view | pageId moduleId device referrer | The route rendered successfully; error pages are logged separately |
| filter_apply | moduleId filters resultCount | Recorded on confirm — not once per checkbox |
| room_enter | matchId roomId anchorId source | Entering a room. Not the same as playback starting |
| play_start / play_error | roomId sourceId firstFrameMs errorCode | A start counts only after the first frame; no source counts as an error |
| follow / appointment | targetId operation result | Separate intent, success and failure |
| search_submit | keywordLength category resultCount | Avoid storing full keywords containing personal identifiers in the analytics layer |
| message_send | conversationType payloadType result latency | Never send private message bodies into general behavioural analytics |
| content_open | contentId contentType provider | External replays and in-site video are counted separately |
| download_click | platform channel placement | A click only. It is not an install |
| form_error | formId field errorCode | Never collect password or verification-code values |
| group_action | action role result | Management auditing stays separate from product analytics |
Section 09
Open gaps to close before launch
Nine items that this capture could not resolve. Each must be closed before any "one-to-one rebuild" acceptance.
Signed-in permissions
No test account was provided, so profile edits, follow and reminder persistence, message sending, comments, and group and tag operations were not exercised. Three permission levels are needed: ordinary user, group admin, group owner. The user should sign in on the site themselves — credentials do not belong in this document.
The playback path
A player container was observed but no successful start was confirmed. A stable, licensed test stream is needed to verify first frame, audio-video sync, reconnection and full screen. Casting, picture-in-picture and download strings found in the player library are not evidence those features ship.
Desktop content components
/data, /videos and /news rendered only shells this time, while the mobile data and content lists worked. The proposed desktop styling is an adaptation and must be re-checked once those components load.
Article detail
Mobile article 208644 returned a page-load failure. Body and comment detail were reconstructed from public component code and are not presented as verified.
Data consistency
Replay 2694 listed a home score of 72 while its detail showed 0. Switching to the NBA once left CSL rules on screen. Both are defect leads from the capture and need stable reproduction before a fix.
Hidden and legacy routes
/world currently falls back to home. Mobile legacy message, chat/info and generic content pages have code but their entry points and roles are not fully verified. They stay as coverage items — not automatically as shipping menu entries.
Business parameters
Match time display strategy, reminder lead time and channel, message recall window, group member cap, mute duration and tag broadcast limits all need decisions from product and the server team.
Profile field differences
Desktop's 200-character bio versus mobile's 60-character signature must be unified or explicitly split into two fields. Verification-code length and phone-region policy need the same treatment.
Native app and back office
There is no access evidence for the native app or the operations back office. M36 is supporting design guidance. The existence of an install entry does not imply the native feature set.
Section 10
Route coverage and sources
104
desktop or mobile paths and patterns were registered, all of them mapped to modules in this
PRD. Aliases, compatibility entries and content templates mean the route count differs from the
module count — route count is not a count of verified pages.
The full list ships as ttkq-route-coverage.csv.
| ID | Source | What it evidences |
|---|---|---|
| D01 | Desktop home | Carousel, featured matches, anchors, sections, download overlay |
| D02 | Desktop all live | Categories and cards |
| D03 | Desktop live room sample | Room, chat, follow, odds, basketball statistics |
| D04 | Desktop football scores | Table, filters, display settings, legend |
| D05 | Desktop basketball scores | Period table and odds |
| D06 | Desktop fixtures | Categories, dates, anchors, reminder entry |
| D07 | Desktop data | Shell only — league-data did not render |
| D08 | Desktop video | Shell only — c_video-web did not render |
| D09 | Desktop replays | Directory and detail /cba/2694, external sources |
| D10 | Desktop news | Shell only — c_news-list-web did not render |
| D11 | Desktop account dialog | Sign-in, SMS, registration and recovery fields |
| D12 | Desktop download | iOS and Android entries; nothing downloaded |
| D13 | About | Service positioning |
| D14 | Disclaimer | Terms and privacy body |
| H01 | Mobile home | Mobile UA, search, recommendations, five-item tab bar |
| H02 | Mobile picks | All, football, basketball, other |
| H03 | Mobile live room | Seven tabs, odds, analysis, anchor profile; playback unverified |
| H04 | Mobile scores | Date strip and match list |
| H05 | Mobile fixtures | Grouped by date, anchor list |
| H06 | Mobile data | Leagues, seasons, football and basketball rankings |
| H07 | Mobile video | Categories, author, play count |
| H08 | Mobile replays | Categories shown; sample list empty |
| H09 | Mobile news | List normal; article 208644 detail failed to load |
| H10 | Mobile search | Hot terms, search tabs, no-results state |
| H11 | Mobile sign-in | Where the chat entry routes |
| H12 | Mobile download route | Public entry and code; no install performed |
| S01 | Desktop routes and account code | Plus the public chunks it references: userinfo, users, userfollow, userappointment, userfeedback |
| S02 | Desktop live code | Realtime data, odds, chat, follow |
| S03 | Mobile routes and chunk index | 65 public page chunks with their paths |
| C01 | Desktop shared stylesheet | Brand color, container, navigation, dialog |
| C02 | Desktop home stylesheet | Home flex container, cards and spacing |
| A01 | Target implementation guidance | Engineering requirements derived from the observed front end — not back-office evidence |