Paper Trading Pope Prop Bets Rankings
All participants start with $100,000 virtual balance
/* Project: Paper Trading Pope Prop Bets Single-page React app cloning bittybot.net/paper-trading layout Tech: React, Tailwind CSS, shadcn/ui, lucide-react, Framer Motion */ // src/App.jsx import React from 'react'; import { Navbar } from './components/Navbar'; import { StatsPanel } from './components/StatsPanel'; import { Leaderboard } from './components/Leaderboard'; import { LimitCommands } from './components/LimitCommands'; import { TradesTable } from './components/TradesTable'; import { Footer } from './components/Footer'; export default function App() { // placeholder state; replace with real data hooks const stats = { prizePool: 0, totalBorrowed: 0, sidelinedCash: 0, totalEquity: 0, netExposure: { long: 0, short: 0 }, netLeverage: { long: 0, short: 0 } }; const leaderboard = []; const limitCommands = []; const openTrades = []; const closedTrades = []; return (
All participants start with $100,000 virtual balance
${data.prizePool}
${data.totalBorrowed}
${data.sidelinedCash}
${data.totalEquity}
Long: ${data.netExposure.long} | Short: ${data.netExposure.short}
Long: {data.netLeverage.long}X | Short: {data.netLeverage.short}X
| Rank | User | Cash | Unrealized PnL | Total Balance | Total PnL | Bets |
|---|---|---|---|---|---|---|
| {row.rank} | {row.user} | ${row.cash} | ${row.unrealized} | ${row.balance} | ${row.pnl} | {row.bets} |
| Limit Price | User | Command |
|---|---|---|
| ${cmd.price} | {cmd.user} | {cmd.command} |
| User | Opened | Open Price | Summary | {closed ? <>Closed | Close Price | PnL | > :Unrealized PnL | }
|---|---|---|---|---|---|---|---|
| {trade.user} | {trade.opened} | ${trade.openPrice} | {trade.summary} | {closed ? <>{trade.closed} | ${trade.closePrice} | ${trade.pnl} | > :${trade.unrealized} | }