Skip to content

Public self-serve creation is intentionally disabled

Visitors can view isolated demo sessions, but they cannot create their own public sessions yet.

Before public creation is exposed, FanSports still needs cleanup execution, reset safety, rate limiting, abuse controls, and session-owned weekly simulation validation. This page remains preview/read-only for public-demo creation.

Public demo reset is intentionally disabled

Reset needs session ownership, weekly snapshot safety, and cleanup validation before launch.

A visitor reset must only affect records linked to that demo_session_id. It must not touch the canonical internal QA card, shared campaign data, or unrelated public demo sessions.

Public launch blockers

The isolated proof is working, but public self-serve demo creation is not launch-ready yet.

Visitors can view the internal isolated demo proof. They should not create, reset, finalize, or mutate their own sessions until these blockers are complete.

  1. Session cleanup execution

    Delete/expire only records owned by demo_session_id.

  2. Session reset safety

    Restore lineups, weekly rows, swaps, trades, and leaderboard state without touching canonical QA data.

  3. Session-owned week finalization

    Finalize weekly snapshots for session-owned cards only.

  4. Rate limiting and abuse controls

    Prevent anonymous session spam and repeated reset/finalize abuse.

  5. Public creation UX gate

    Expose visitor creation only after cleanup, reset, and scoring safety pass.

Safe to try now

Explore the isolated proof session without changing data.

These links are read-only. Public creation, reset execution, week finalization, and cleanup execution are intentionally disabled.

Session/Card/Leaderboard

Safe to view

Public creation

Disabled

Reset/finalization

Disabled

Cleanup execution

Disabled

Demo setup

Create a demo fundraiser preview

Data Readiness

Demo Data Source

ready

2025 hydrated NFL data

Use the already-hydrated 2025 NFL data to replay realistic rosters, weeks, scoring periods, and leaderboards through production logic.

Source

hydrated_nfl

Year

2025

Can Create Demo

Yes

player pool weekly stats scoring replay leaderboard replay roster generation

Database Tracker

Demo schema requirements

These fields and tables are required before demo creation writes to the production database.

demo_audit_events

Audits demo previews, create attempts, readiness checks, safety checks, scoring-period resolution, lifecycle actions, and cleanup previews.

demo_audit_event_idevent_typedemo_batch_iddemo_session_idactor_user_idriskentity_type

demo_lifecycle_events

Audits demo activation, pause, resume, reset, expire, archive, and delete actions.

demo_lifecycle_event_iddemo_session_iddemo_batch_idaction_typesource_statustarget_statusactor_user_id

demo_invites

Stores invite-only demo access tokens for prospects, investors, staff training, and sales walkthroughs.

demo_invite_iddemo_session_iddemo_batch_idinvite_token_hashemailaccess_modemax_uses

demo_data_sources

Tracks hydrated, synthetic, and replay data sources available to demo campaigns.

demo_data_source_idsourcedata_yearstatusrecommendedcapabilities_jsondescription

demo_record_metadata

Tracks every production-shaped demo record by batch/session for safe cleanup.

demo_record_iddemo_batch_iddemo_session_identity_typeentity_iddemo_purposedemo_access_mode

demo_sessions

Represents a public, invite-only, staff, investor, or sales demo run.

demo_session_iddemo_batch_idpreset_idstatusaccess_modecreated_by_user_idcreated_by_type

campaign_clocks

Allows real, manual, and simulated campaign time without changing scoring logic.

campaign_clock_idfundraiser_idcampaign_time_modedemo_data_sourcedemo_data_yearsimulation_profilesimulation_started_at

Production table demo fields

is_demodemo_batch_iddemo_session_iddemo_purposedemo_expires_atdemo_delete_after_at

Indexes to create

INDEX demo_audit_events_batch_idx (demo_batch_id)INDEX demo_audit_events_session_idx (demo_session_id)INDEX demo_audit_events_event_type_idx (event_type)INDEX demo_lifecycle_events_session_idx (demo_session_id)INDEX demo_lifecycle_events_batch_idx (demo_batch_id)INDEX demo_invites_session_idx (demo_session_id)UNIQUE demo_invites_token_hash_uidx (invite_token_hash)UNIQUE demo_data_sources_source_year_uidx (source, data_year)INDEX demo_record_metadata_demo_batch_id_idx (demo_batch_id)INDEX demo_record_metadata_entity_idx (entity_type, entity_id)INDEX demo_sessions_status_expires_idx (status, expires_at)INDEX campaign_clocks_fundraiser_id_idx (fundraiser_id)